算法
锐萌瑞
这个作者很懒,什么都没留下…
展开
-
动态规划阶段总结
1、Maximum Subarray,最大连续子序列class Solution {public:int maxSubArray(vector<int>& nums) {int n=nums.size();int dp[n]={0};dp[0]=nums[0];int maxum=nums[0];for(int i=1;i<n;i++){dp[i]=max(dp[i-1]+nums[i],nums[i]);maxum=max(maxum,dp原创 2020-07-16 23:22:24 · 554 阅读 · 0 评论 -
图论(4)-floyd(最短路径)
Problem Description在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗? Input输入包括多组数据。每组数据第一行是两个整数N、M(N输入保证至少存在1条商店到赛场的路线。 Out原创 2017-03-06 21:18:23 · 225 阅读 · 0 评论 -
Floyd简述-坐在马桶上看算法
坐在马桶上看算法:只有五行的Floyd最短路算法此算法由Robert W. Floyd(罗伯特·弗洛伊德)于1962年发表在“Communications of the ACM”上。同年Stephen Warshall(史蒂芬·沃舍尔)也独立发表了这个算法。Robert W.Floyd这个牛人是朵奇葩,他原本在芝加哥大学读的文学,但是因为当时美国经济不太景气,找工作比较困难,无奈之下到西屋转载 2017-03-06 21:16:39 · 548 阅读 · 0 评论 -
素数环-prinme ring problem(BFS)
Problem DescriptionA ring is composeof n circles as shown in diagram. Put natural number 1, 2, ..., n into eachcircle separately, and the sum of numbers in two adjacent circles should be aprime.原创 2017-03-11 10:17:03 · 373 阅读 · 0 评论 -
BFS(2)-非常可乐
题目:Problem Description大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为。因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且一定要喝的和seeyou一样多。但seeyou的手中只有两个杯子,它们的容量分别是N 毫升和M 毫升 可乐的体积为S (S<101)毫升 (正好装满一瓶) ,它们三个原创 2017-03-10 20:22:24 · 235 阅读 · 0 评论 -
BFS(1)-胜利大逃亡
题目描述: Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会.魔王住在一个城堡里,城堡是一个A*B*C的立方体,可以被表示成A个B*C的矩阵,刚开始Ignatius被关在(0,0,0)的位置,离开城堡的门在(A-1,B-1,C-1)的位置,现在知道魔王将在T分钟后回到城堡,Ignatius每分钟能从一个坐标走到相邻的六个坐标中的其中一个.现在给你城堡的地图,原创 2017-03-10 11:29:25 · 243 阅读 · 0 评论 -
图论(6)-Legal or Not(拓扑排序)
Legal or NotTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5152 Accepted Submission(s): 2360Problem Description ACM-DIY is a large QQ原创 2017-03-07 17:08:03 · 314 阅读 · 0 评论 -
图论(5)-Dijstra算法
Floyd算法时间复杂度为O(N^3),所以在大部分机试题时间允许范围内,它要求解图的大小不大于200个结点,若超过可能因为效率不高而被判超时,Floyd算法完成后。图中所以结点之间的最短路径都可以被确定,即全源最短路径问题。Dijkstra算法只能求出某特定结点到其他所有结点的最短路径长度,即单源最短路径问题。Problem Description在每年的校赛里,所有进入原创 2017-03-07 10:22:25 · 347 阅读 · 0 评论 -
图论(5)-more is better
题目描述:Mr Wang wants some boys to help him with a project. Because the project is rather complex, the more boys come, the better it will be. Of course there are certain requirements.Mr Wang selected原创 2017-03-06 21:21:48 · 174 阅读 · 0 评论 -
图论(3)-Freckles
DescriptionIn an episode of the Dick Van Dyke show, little Richie connects the freckles on his Dad's back to form a picture of the Liberty Bell. Alas, one of the freckles turns out to be a scar, s原创 2017-03-06 18:58:07 · 219 阅读 · 0 评论 -
图论(2)-还是畅通工程(最小生成树)
某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。输入:测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( 当N为0时,输入结束,该用例不被处理。 输出:原创 2017-03-06 16:28:26 · 228 阅读 · 0 评论 -
图论(1)-畅通工程
题目描述:某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?输入:测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( 注意:两个城市之间可以有多条道路相通,也就是原创 2017-03-05 21:45:54 · 477 阅读 · 0 评论 -
1068. Find More Coins (30)
1068. Find More Coins (30)时间限制150 ms内存限制65536 kB代码长度限制16000 B判题程序Standard作者CHEN, YueEva loves to collect coins from all over t原创 2017-03-16 20:38:29 · 293 阅读 · 0 评论 -
采药-背包问题(加上改编)
题目描述:辰辰是个很有潜能、天资聪颖的孩子,他的梦想是称为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草原创 2017-03-12 10:49:17 · 400 阅读 · 0 评论 -
迷宫问题修改-保存路径输出
迷宫问题Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 10318 Accepted: 6124Description定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,原创 2017-03-13 23:59:58 · 343 阅读 · 0 评论 -
Piggy-Bank-完全背包问题
Piggy-BankTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2940 Accepted Submission(s): 1452Problem DescriptionBefore ACM ca原创 2017-03-12 15:53:31 · 2386 阅读 · 3 评论 -
字典序算法
我们先看一个例子。示例: 1 2 3的全排列如下:1 2 3 , 1 3 2 , 2 1 3 , 2 3 1 , 3 1 2 , 3 2 1我们这里是通过字典序法找出来的。那么什么是字典序法呢?从上面的全排列也可以看出来了,从左往右依次增大,对这就是字典序法。可是如何用算法来实现字典序法全排列呢?我们再来看一段文字描述:(用字转载 2017-03-17 23:44:41 · 386 阅读 · 0 评论 -
常见的排序算法的复杂度问题
转载 2017-03-12 11:13:33 · 246 阅读 · 0 评论 -
最短路径-上海交大机试
题目描述:N个城市,标号从0到N-1,M条道路,第K条道路(K从0开始)的长度为2^K,求编号为0的城市到其他城市的最短距离输入:第一行两个正整数N(2接下来M行两个整数,表示相连的两个城市的编号输出:N-1行,表示0号城市到其他城市的最短路,如果无法到达,输出-1,数值太大的以MOD 100000 的结果输出。样例输入:4 4原创 2017-03-13 17:17:18 · 1093 阅读 · 1 评论 -
Temple of bone-BFS
题目描述:The doggie found a bone in an ancient maze, which fascinated him a lot. However, when he picked it up, the maze began to shake, and the doggie could feel the ground sinking. He realized that原创 2017-03-13 21:42:01 · 258 阅读 · 0 评论 -
不容易系列之一(错排公式)
Problem Description大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了!做好“一件”事情尚且不易,若想永远成功而总从不失败,那更是难上加难了,就像花钱总是比挣钱容易的道理一样。话虽这样说,我还是要告诉大家,要想失败到一定程度也是不容易的。比如,我高中的时候,就有一个神奇的女生,在英语考试的时候,竟然把40个单项选择题全部做错了!大家都学过概率论,应该原创 2017-03-11 10:53:35 · 478 阅读 · 0 评论 -
Greedy Tino-动态规划
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1194 Accepted Submission(s): 393Problem Description Tino wrote a long long sto原创 2017-03-16 17:02:49 · 463 阅读 · 0 评论 -
搬寝室-动态规划(转化为背包问题)
Problem Description搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆,因为n是一个小于2000的整数,实在是太多了,于是xhd决定随便搬2*k件过去就行了.但还是会很累,因为2*k也不小是一个不大于n的整数.幸运的是xhd根据多年的搬东西的经验发现每搬一次的疲劳度原创 2017-03-16 10:10:20 · 378 阅读 · 0 评论 -
最佳加法表达式-动态规划
题目描述:有一个由1到9的n个数字的数字串,问如果将m个加号插入到这个数字中,在各种可能中形成的表达式中,最小的那个表达式的值是多少?思路:添加完加号后,表达式最后一个加号在最后的第i个数字后面,表达式最小值等于前面m-1个加号所能形成的最小值加上i+1到最后那个数字所组成的数的值代码如下:#include #include #include #include #i原创 2017-03-13 11:59:11 · 2040 阅读 · 0 评论 -
珍惜现在,感恩生活-多重背包问题
悼念512汶川大地震遇难同胞——珍惜现在,感恩生活Problem Description 急!灾区的食物依然短缺! 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买。 请问:你用有限的资金最多能采购多少公斤粮食呢? Input 输入数据首先包含一个正整数C原创 2017-03-12 17:07:28 · 359 阅读 · 0 评论 -
动态规划入门
很特别的一个动态规划入门教程今天在网上看到一个讲动态规划的文章,是以01背包为例的,这文章和书上的讲解非常不一样,令我眼前一亮,于是转载一下下~~~(说明一下,本人非常痛恨教材公式定理漫天飞,实际的讲解却讲得非常枯涩难懂,这种中国式的教育已经延绵了几千年了,现在中国的教材还是这个样子,讲清楚些明白些就那么难么?高中有个老师讲的一句话一直觉得很有道理:“教得会天才不是真本事,能把转载 2017-03-05 11:03:37 · 241 阅读 · 0 评论 -
动态规划(3)-最长公共子序列
思路:maxlen[i][j]用了记录:s1左边i个字符形成的子串,与s2左边形成的子串的最大公共子序列由于数组从0开始,所以str[i-1]表示左边i个字符的最后一个字符,同理ansstr[i-1]!=ans[j-1]时,maxlen[i][j]显然不会比maxlen[i-1][j]和maxlen[i][j-1]两者的任何一个小,反证法也不会比他们大,只会等于两者间最大的那一个#in原创 2017-03-04 16:13:31 · 243 阅读 · 0 评论 -
动态规划(2)-最长递增子序列
给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱)。例如:给定一个长度为6的数组A{5, 6, 7, 1, 2, 8},则其最长的单调递增子序列为{5,6,7,8},长度为4.#include#include#include#includeusing namespace std;int sum;int zuichang(int str[]){ int原创 2017-03-03 22:13:21 · 358 阅读 · 0 评论 -
动态规划(1)数字三角形
Description73 88 1 02 7 4 44 5 2 6 5(Figure 1)Figure 1 shows a number triangle. Write a program that calculates the highest sum of numbers passed on a route that st转载 2017-03-03 15:53:53 · 258 阅读 · 0 评论 -
枚举应用(1)-熄灯问题
一个由按钮组成的矩阵,其中每行有6个按钮,共5行。每个按钮的位置上有一盏灯。当按下一个按钮后,该按钮以及周围位置(上边、下边、左边、右边)的灯都会改变一次。即,如果灯原来是点亮的,就会被熄灭;如果灯原来是熄灭的,则会被点亮。在矩阵角上的按钮改变3盏灯的状态;在矩阵边上的按钮改变4盏灯的状态;其他的按钮改变5盏灯的状态。 所以在5x6的矩阵中,左边矩阵中用X标记的按钮表示被按下,右边的原创 2017-03-03 11:46:05 · 739 阅读 · 0 评论