算法
暂无简介
请在beep声后留言
Genuine knowledge comes from practice.
展开
-
Dungeon Master POJ - 2251
You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is composed of unit cubes which may or may not be filled with rock. It takes one minute to move one unit north, sout...原创 2019-04-16 16:34:29 · 146 阅读 · 0 评论 -
简单数论
素数筛法暴力枚举求素数O(n*n^(1/2))枚举每个数,判断是否有正整数能整除这个数for(int i=2;i<=n;i++){ bool composite=0; //composite合数标记 for(int j=2;j*j<=i;j++) //从2遍历到n,找出从2到n的所有素数,j只需要检查到根号i,因为一个合数composite必然...原创 2019-04-30 17:54:46 · 703 阅读 · 0 评论 -
How Many Tables HDU - 1213(图论,并查集)
ProblemToday is Ignatius' birthday. He invites a lot of friends. Now it's dinner time. Ignatius wants to know how many tables he needs at least. You have to notice that not all the friends know ea...原创 2019-05-14 16:52:56 · 135 阅读 · 0 评论 -
畅通工程 HDU - 1863(图论,并查集,Kruskal算法)
Problem省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需要的最低成本。Input测试输入包含若干测试用例。每个测试用例的第1行给出评估的道路条数 N、村庄数目M ( < 100 );随后的...原创 2019-05-14 17:25:38 · 173 阅读 · 0 评论 -
最短路径问题 (Dijkstra算法)HDU - 3790
Problem给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。Input输入n,m,点的编号是1~n,然后是m行,每行4个数 a,b,d,p,表示a和b之间有一条边,且其长度为d,花费为p。最后一行是两个数 s,t;起点s,终点。n和m为0时输入结束。(1<n<=1...原创 2019-05-14 17:53:53 · 1165 阅读 · 0 评论 -
KMP算法
主要思路:比较两个字符串,主字符串S,用i来标记比较的位置,模式串T,用j来标志比较的位置。当遇到不匹配的字符时,i不回溯,只改变j的位置。显然j应该回退到不需要与主串S重复比较的位置才是高效的,即S[i-j]~S[i]=T[0]~T[j]。要知道j具体要回退到什么地方需要利用next表。next表中存储的是主字符串S[0~k]区间的前缀集合与后缀集合交集中最长元素的长度。比如"a...原创 2019-06-07 21:00:46 · 128 阅读 · 0 评论 -
Fence Repair POJ - 3253
Farmer John wants to repair a small length of the fence around the pasture. He measures the fence and finds that he needsN(1 ≤N≤ 20,000) planks of wood, each having some integer lengthLi(1 ≤Li...原创 2019-06-07 21:21:36 · 171 阅读 · 2 评论 -
Ride to School POJ - 1922
思路:Charles在某个时刻T遇到一个速度比他更大的人,说明他已经骑了T秒了,他在最后必定是和速度最快的一个人以同一速度同时到达学校,所以只要在骑行过程中找出最大速度即可,他到学校所要花的时间就是遇到这个速度最大的人的时刻T1加上以最大速度骑行到学校需要花的时间T2之和。C++代码:#include <iostream>#include<queue>#i...原创 2019-06-07 21:44:11 · 101 阅读 · 0 评论 -
Sort it HDU - 2689(求逆序对)
思路:用归并排序的方法,先将数组向下拆分成一个数为一个单位为止,然后再向上合并成有序数组,直到合并成一个完整的有序数组。由于每两个需要进行合并的数组S1和S2都已经是有序的,当S1[i]>S2[j]时,说明S1[i+1~m]都大于S2[j],所以有m-i+1个逆序对,而S[i+1~m]同样也大于S2[j]之前的所有数,但是随着j的每次移动(仅当S1[i]>S2[j]时,j会发生移动...原创 2019-06-08 21:30:23 · 229 阅读 · 0 评论 -
coins HDU - 3348
思路:最多能使用多少硬币不好求,就转化成最少使用多少个硬币的问题。首先,尽可能地使用面值最大的硬币,由于已经将硬币面值按从小到大的顺序存进数组,所以只需从数组尾部遍历穷举,p/b[i]求出需要用掉所剩硬币中面值最大的那种硬币多少个,再取p/b[i]与a[i](该面值的硬币还有多少枚)中的较小值m,(若把该面值的硬币全部花完,p/b[i]==a[i]),然后统计总共花了多少枚硬币的变量cnt+=...原创 2019-06-08 22:31:38 · 180 阅读 · 0 评论 -
Prime Ring Problem HDU - 1016
思路:需要用到dfs,从1开始,依次检查每一个没有被用过的数字是否与当前数字之和为质数,当递归次数达到n-1,并且第一个数和最后最后一个数的和也是质数,就退出递归输出结果;若递归次数还未达到n-1,但找到一个能和当前数字加起来是质数的数,就标记该数已经访问过,并进入下一层递归;如果遍历所有数都没有找到这样一个数,即当前递归已经执行完了,自动返回上一层递归,并把该层填的数的访问标志置为0,意味...原创 2019-06-09 10:25:48 · 75 阅读 · 0 评论 -
Catch That Cow POJ - 3278
思路:每到达一个位置有3种选择,分别是步行(+1)、步行(-1)、传送(*2),所以要用广度优先搜索bfs,把所有符合条件即的下一步路线(即不会在下一步就产生越界的路线)都加入到队列中作为候选。首先考虑一种特殊情况,即n>=k,此时只能后退,所以花费的时间为n-k;若n<k,则需要使用bfs来找出一条耗时最少的方案。Farmer John has been informed o...原创 2019-06-09 14:10:32 · 91 阅读 · 0 评论 -
Sudoku Killer HDU - 1426
思路:这道题要用dfs,逐个检验可以填在?处的数字,若有冲突则尝试下一个数,每层递归从1~9逐个尝试,若没有找到符合条件的数可以填在?处,说明上一层递归填写的数字是错误的,应置访问标志sudoku[i][j]=0。若找到符合条件的,则进入下一层递归,直到times=cnt,即已解决的?号个数等于所有?的个数。比较特别的是,在检测?所在的3*3区域是否有重复数字的时候,用到了qm[n].x...原创 2019-06-09 15:01:24 · 147 阅读 · 0 评论 -
Oil Deposits HDU - 1241
思路:找到一个'@'即一个油田,往米字8个方向继续探测,直到再也找不到相邻油田,才使计数变量cnt+1。遍历地图上所有单元,直到再没有'@'。(找到一个油田就要把'@'改为'*'才不会重复搜索)。The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. Geo...原创 2019-06-09 15:33:44 · 417 阅读 · 0 评论 -
Longest Ordered Subsequence POJ - 2533(动态规划)
A numeric sequence ofaiis ordered ifa1<a2< ... <aN. Let the subsequence of the given numeric sequence (a1,a2, ...,aN) be any sequence (ai1,ai2, ...,aiK), where 1 <=i1<i...原创 2019-06-09 18:31:41 · 96 阅读 · 0 评论 -
Bone Collector HDU - 2602(0/1背包)
Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to collect varies of bones , such as dog’s , cow’s , also he went to the grave …The bone collecto...原创 2019-06-09 19:44:50 · 104 阅读 · 0 评论 -
最少拦截系统 HDU - 1257
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹.怎么办呢?多搞几套系统呗!你说说倒蛮容易,成本呢?成本是个大问题啊.所以俺就到这里来求救了,请帮助计算一下最少需要多少套拦截系...原创 2019-06-09 19:59:05 · 203 阅读 · 2 评论 -
Common Subsequence POJ - 1458(最长公共子序列)
A subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = < x1, x2, ..., xm > another sequence Z = < z1, z2, ..., zk > is a...原创 2019-06-09 20:31:08 · 152 阅读 · 0 评论 -
今年暑假不AC HDU - 2037(区间调度)
“今年暑假不AC?”“是的。”“那你干什么呢?”“看世界杯呀,笨蛋!”“@#$%^&*%...”确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视了。作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看一些其它的节目,比如新闻联播、非常6+7、超级女生,以及王小丫的《开心辞典》等等,假设你已经知道了所有你喜欢看...原创 2019-11-11 20:38:57 · 107 阅读 · 0 评论