计算机科学与技术硕士,专注计算机视觉(目标检测、深度学习),关注Linux环境下各算法配置。
1.概述 vim:编辑器之神。轻巧而强大的感觉 emacs:神一般的编辑器。编辑功能之外有更多命令,“是操作系统而不是编辑器” 其它编辑器: sublime?看上去不过是vim上加了一堆插件 leafpad:windowns过度到linux的小白适用,因为类似于windows下的notepad,编码又处理的很好(win下保存的ansi打开也不乱码,哈) 2.
win7(64位)下vs2010+opencv2.4.3的配置 参数:vs2010Express或vs2010Ultimate,opencv2.4.3,win7系统(64位) 参考:http://www.
win下:用putty.exe英文版 linux下:用命令: ssh -l username -p xxx hostname其中xxx表示端口(port), username是用户名【httpd.conf】学习:1.
这里介绍几种常见系统的u盘的安装方式:1.xp/vista/win7(ghost) 2.ubuntu(wubi/ubuntu_server) 3.Fedora 4.Archlinux 本人菜鸟一个,写的不对之处请指出,谢谢!1.xp/vista/win7(ghost)|1|准备大一点的u盘,下载pe的制作工具并安装。
View Code 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define DEBUG 8 int min(int a, int ...
题意:给出一个单词text,仅仅由小写字母组成,并给出若干个单词word[i],用word[i]去拼接出text,问有多少种方法 分析:典型的Trie的题目。第一次看训练指南的时候套用刘汝佳的模板结果wa(显然我不会用),后来发现很多人都是用指针写的,大部分Trie的题目用指针就能ac,索性自己写...
题意:给定一个矩阵,每个元素可正可负,求最大子矩阵使得其所有元素和最大。给定的矩阵是环形的,即:第一列和最后一列是相连接的,第一行和最后一行也是相连接的。 分析:构造前缀和。O(n4)的效率不是很满意,期待更快的算法 View Code 1 #include 2 #includ...
题意:题目是中文的:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=16216 分析:这道题目作为模板题其实值得多练习几次的。用树状数组来写: View Code 1 #include 2 #include...
题意:有n个任务,每个任务有三个参数r、d、w表示在[r,d]时间段内必须执行的工作量为w。处理器的工作速度可以变化,问执行中最大速度的最小值。 分析:题目显然提示了要用二分。 代码: View Code 1 #include 2 #include 3 #include...
题意:有n个垃圾,第i个垃圾坐标为(xi,yi)。有一个机器人按照编号从小到大哦捡起所有的垃圾并扔进垃圾桶,垃圾桶再远点。机器人手中垃圾总重量不能超过C,两点之间的距离为曼哈顿距离,求机器人行走的最短总路程 分析:d[i]=min{d[j]+dist2origin(j+1)+dist(j+1,i)+dist2origin(i)|j0) printf("\n"); 38 } 39 return 0; 40 } 今天感觉做题目不很在状态,直接看了训练指南上的分析。
题意:给你一个n个点m条边的无向无环图,在尽量少的节点上放灯,使得所有边都被照亮,每盏灯将照亮以他为一个端点的所有边,在灯的总数最小的前提下,被两盏灯同时照亮的边数应当尽量大。 分析:d(i,j)表示i的父节点放灯的状态为j(1表示放,0不放),以i为根的树的最小x值 x=Ma+c, a表...
每天刷6题的目标看来还是有点难啊~先找一道以前A掉的题目充数吧~不过个人觉得这题用SPFA真的不错的~(因为网络流我还不会o(╯□╰)o) 题意:有A,B两个人要越狱,A成功地从监狱到达火车站时B立即出发,两个人的路线不能有重合(可以重合点,不可以重合边),需要两个人路径和最短,求最短路径和。
题意:题意很费解,大意是有N台电脑,每台电脑有N(N
题意:经典的取石子游戏是这样的:有一堆石子,A、B两个人轮流取,每次取一颗,只能从边上取,每个石子有相应的价值,A、B两人都想使得自己的价值最多,两个人足够聪明,问最后价值分别是多少 本题则是可以取多颗,但仍然只能从一侧取得 分析:状态转移方程 best[i][j]=sum[i][j]-min...
题意:有两个长度分别为p+1和q+1的序列,每个序列中的各个元素互不相同,且都是1~n2之间的整数,两个序列的第一个元素都是1,问A和B的最长公共子序列的长度 分析:由于在同一个序列中元素互不相同,可以转化LCS问题为LIS问题,使用了“置换的思想”,有点类似于“离散化”,然后用stl的lower...
题意:n个人报数,编号从1到n,第一次报m的人出列,以后每数k个数删除一次,问最后出列的人在最开始的时候编号是多少 分析:约瑟环问题的变形,链表的方法不行,会tle。 其实原题可以认为是第一次删除编号m,然后处理一个规模为n-1的子问题 考虑这样一个问题:n个人(编号0~(n-1)),从0开始报数,报到m-1的退出,剩下的人继续从0开始报数。
题意:有6种石头,价值分别是1,2,3,4,5,6 每种有若干,作为输入数据。问能否把这些石头按照价值均分? 分析:多重背包问题。 代码: View Code 1 #include 2 #include 3 #include 4 using namespace...
题意:给出n枚硬币,每个硬币有自己的面值,将这些硬币均分,有时无法均分,求分出来的两份硬币的最小差值 分析:统计总面值然后用总面值的一半作为背包容量,01背包。 代码: View Code 1 #include 2 #include 3 #include 4 #i...
题意:HM先生喜欢吃汉堡,有两种汉堡,每种无限多个,吃完第一种的汉堡一个需要m时间,第二种需要n时间,HM先生饭量很大可以不停的吃,给定一个时间t,在t时间段内希望HM先生吃尽量多的汉堡,并且空余出来的时间要尽量少 分析:是一个只有两种元素的完全背包问题。
题意:公园在(1,1)点,火车站在(n,m)点,你需要从公园走到火车站,前进时只能距离车站越来越近不能往回走~路上有些地方有障碍(unsafe)不能走,问总的路线有多少。 简单的dp,不过dp我是写成函数而不是简答的数组,用a[i][j]=0表示可以走,a[i][j]=1表示不能走。
经典问题了,题意我就不叙述了(题目是中文的~) 分析:dp[i][j]表示在第i行第j个位置上能取得的最大和,那么要从最后一行开始算起,到塔顶结束:dp[i][j] = a[i][j]+max(dp[i+1][j], dp[i+1][j+1]), 边界条件是dp[n][j] = a[n][j]; ...
题意:手中的硬币币值有1,5,10,25,50共5种,给定一个面值n,问把n兑换成硬币的方案总数是多少。 分析:先打表,再输入输出。动态规划的简单题目,设dp[i]表示面值为i的情况下能兑换的种类,那么dp[i]=sigma(dp[i-v[j]]), j=0..4, v[j]={1,5,10,25,50};也就是,如果i大于v[j],说明能够用dp[i-v[j]]的方案再加上一枚面值为v[j]的硬币作为面值i的方案,不过这只是方案中硬币的数量多了一枚,题目中只是问方案数量,那么此时两者在方案数量上等价,那么方案总数上加上这一种情况就可以了。
题意:给定n个大写字母组成的字符串,选择尽量多的串,使得每个大写字母都能出现偶数次。 分析:暴力枚举O(2n)不行。 采用密码学中的中途相遇攻击原理,用stl的map实现:先取得前一半的判断结果然后后一般在前一半的基础上判断 代码: View Code 1 #pragma warn...
题意:给出一个三维的由单位立方体组成的长方体,每个单位立方体有一个值,求这个大的长方体的一个子长方体,使得构成它的单位立方体对应的值之和最大。 分析:这是经典问题从一维延伸到三维的情况。画图后就能解决~构造前缀和a[i][j][k]表示以它为右下角的立方体和,然后枚举,复杂度O(n6),这道题目肯定能过。
题意:给出平面上的n个点,找一个矩形,使得边界上包含尽量多的点。 代码: View Code 1 #include 2 #include 3 #include 4 #define DEBUG 5 using namespace std; 6 struct Z...
题意:斐波那契素数的概念:任取斐波那契数列中的某一项Fi,对于所有小于Fi的斐波那契数,如果Fi都和它互为质数,那么Fi是斐波那契素数。输入n,输出第n个斐波那契素数。 分析:黑书上有这题的详细分析,大意是说从第5项开始下标为素数的斐波那契数一定是斐波那契素数。
题意:给出一个a*b的网格,在网格上取不共线的三点构成三角形,求三角形总数。 分析:就是一一道简单的组合数计算题目,设总结点数为n,则取三个节点的个数为C(n,3),然后减去横向、竖向、斜向的三点共线的个数即可,斜线三点共线等价于所枚举的矩形的长宽成倍数关系,即gcd不为1 代码: View...
题意:给定一个m*n的矩阵,其中一些个字是空地(F),其他是障碍(R)。找出一个全部由F组成的面积最大的矩阵,输出其面积的3倍。 分析:简单暴力枚举,O(m3*n3),肯定不行。对于某一块F,设up[i][j]表示其上方的空地个数(就像一条悬线),zl[i][j]表示悬线能往左边走到的边界线的坐标...
题意:有n个正整数组成一个序列,给定整数S,求长度最短的连续序列,使得他们的和大于等于S 分析:设输入的序列为A[i], i=1..n, 构造前缀数组B[j], j=1..n, B[j]=B[j-1]+A[j], 规定B[0]=0, 当B[j]-B[i-1]>=s的时候i增加,直至B[j]-B[i...
题意:给你一个矩形照相机,还有n个流星的初始位置和速度,求能找到流星最多的时刻,注意,在相机边界上的点不会被照到。 分析:相机的边界是固定的,只需要判断每一颗流星是否在照相机的区域内出现过,如果出现过,记录其出现的时间区间[ai,bi],那么问题转化为求一个时间t使得此时有最多的区间经过这个点...
题意:有一个老式计算器,只能保存最多n位数,如果结果超出n位,则保留前n位。现在输入一个n和一个k,k表示一个数字,然后不停的求k的平方并令k=k*k,发现会出现循环的结果,求所有结果种最大的一个。 分析:暴力模拟可以过的,但有更好的算法。
题意:给定n个整数,求Ai-Aj的最大值(i
题意:题目说输入一些年龄,在1-100之间,然后把它们排序后输出。但是限制条件是输入文件约25MB,内存限制是2MB,不能全都读入后再排序。 分析:数字比较小,可以用计数排序,即用一个数组保存每个年龄出现的个数即可。
题意:有n个人围城一个圈,其中第i个人想要ri个不同的礼物,相邻的两个人可以聊天,炫耀自己的礼物,如果两个相邻的人拥有同一种礼物,则双方都会很不高兴。问:医用需要多少种礼物才能满足所有人的需要?假设每种礼物有无穷多个,不相邻的两个人不会一起聊天。
题意:有f+1个人来分N个圆形派,每个人能得到的必须是一整块派,而不是几块拼在一起,且面积要相同,求每个人最多能得到多大面积的派 分析:对于每个人分到的派的大小,其上界是面积最大的派,下界可以取得0,在两者之间用二分的方法做就可以了,二分的判定是,给定一个面积x,每个派能分成[pi*r*r/x]份...
题意:你有b元钱,想要组装一台电脑,给出n个配件的各自的种类、品质因子和价格,要求每种类型的派件各买一个,总价格不超过b,且“品质最差配件”的品质因子应该尽量大 (题目保证有解),输出配件最小品质因子的最大值 分析:既然题目保证有解,那么每种配件都选品质最差的是一个极端,每种都选品质最好有是一个极端,在两个极端之间二分就可以得到答案。
题目:给定两个只含大写字母的等长字符串,问两者之间是否存在一一映射 分析:考察一一映射的概念,将两个字符串分别作字母统计,再按字母出现个递增的顺序排序(排列的是每个字母出现的个数),如果排序后结果一样那么两者是一一映射 1 #include 2 #include 3 #incl...
题意就不说了,简单的二分就可以了,应当是算法初学者的一个Hello world程序吧! 只是建议用乘法去做,不要用除法去求解~注意输入的终止符是负数 1 #include 2 #include 3 using namespace std; 4 int main(){ 5...
题意:给出n个数,请按照他们绝对值的递增顺序排序,且相邻元素不能有相同符号(必须一个大于0,一个小于0),问这样操作后最多有多少个元素 分析:先调用sort排序然后逐个判断相邻两个元素的乘积是否小于0.
题意:给你一个m行n列的举行巧克力切成mn个1*1的方块,问需要切多少刀?每一刀只能沿着直线切,不能用一刀同时切割两块巧克力。 分析:简单计算后发现ans=m*n-1 1 #include 2 #include 3 #define zz 4 using namespace ...
题意:有一块草坪,长为l,宽为w,再起中心线的不同位置处装有n个点状的喷水装置。每个喷水装置i可以将以它为中心,半径为ri的圆形区域润湿,请选择尽量少的喷水装置,把整个草坪全部润湿。 分析:对于直径小于宽度的喷水装置其实可以忽略,剩下的问题转换成了最小区间覆盖问题,即:用最少数量的区间去覆盖给定的...
题意:输入两个字符串s和t,判断是否可以从t种删除0个或多个字符(其他字符不变),得到字符串s,比如abcde可以得到bce,单数无法得到dc 分析:简单模拟即可 1 #include 2 #include 3 #include 4 #define zz 5 usin...
题意给定n个正整数,你的任务是把他们连接成一个最大的整数,比如,123,124,56,90有24种连接方法,最大的结果是9056124123 分析:自己写比较函数cmp(s, t), 比较s+t 与t+s的大小即可。
#pragma warning(disable:4786) #include #include #include #include #include #define zzz using namespace std; int min(int a, int b){ retu...
题意:给出一个a*b的网格,在网格上取不共线的三点构成三角形,求三角形总数。分析:就是一一道简单的组合数计算题目,设总结点数为n,则取三个节点的个数为C(n,3),然后减去横向、竖向、斜向的三点共线的个数即可,斜线三点共线等价于所枚举的矩形的长宽成倍数关系,即gcd不为1 代码如下: #incl...
题意:任取斐波那契数列中一项f[i],若对于所有j 解法:这题的理论分析在黑书上有,结论是从第五项开始下标为素数的斐波那契数都是斐波那契素数 #include #include const int MAXN = 250010;; int prime[25010]; bool ...
Description You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations.
Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营 地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。
题意:有n个节点,初始时每个节点的父节点都不存在,你的任务是执行一次I操作和E操作,格式如下:I u v:把节点u的父节点设为v,距离为|u-v|除以1000的余数。输入保证之星指令前没有父节点E u:询问u到根节点的距离 题意显然是要用并查集 #include #include #in...
题意:有一些简单化合物,每个化合物都由两种元素组成,每个元素用一个大写字母组成,你是一个装箱工人,从实验员那里按照顺序依次把一些简单化合物装到车上,但是这里存在一个安全隐患,如果车上存在k个简单化合物,正好包含k中元素,那么他们将组成一个易爆易燃的化合物,为了安全起见,每当你拿到一个化合物的时候,如果他和已装车的化合物形成易爆化合物,你就应当拒绝装车,否则就应该装车,编程输出有多少个没有装车的化合物。