NYOJ 好题总结
NYOJ中文题适合绝大多数的算法爱好者
亲切的网页氛围让我感到非常的舒服
GMFTBY
for all
展开
-
NYOJ 118 次小生成树
1.Question:描述南将军率领着许多部队,它们分别驻扎在N个不同的城市里,这些城市分别编号1~N,由于交通不太便利,南将军准备修路。现在已经知道哪些城市之间可以修路,如果修路,花费是多少。现在,军师小工已经找到了一种修路的方案,能够使各个城市都联通起来,而且花费最少。但是,南将军说,这个修路方案所拼成的图案很不吉利,想让小工计算一下是否存在另外一种方案原创 2016-12-03 14:38:23 · 836 阅读 · 0 评论 -
NYOJ14——贪心
1.题目描述:会场安排问题时间限制:3000 ms | 内存限制:65535 KB难度:4描述学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办。小刘的工作就是安排学校小礼堂的活动,每个时间最多安排一个活动。现在小刘有一些活动计划的时间表,他想尽可能的安排更多的活动,请问他该如何安排。输入第原创 2016-08-31 17:57:43 · 298 阅读 · 0 评论 -
NYOJ1129-很新颖的DFS
1.题目描述:Salvation时间限制:1000 ms | 内存限制:65535 KB难度:3描述 神秘瀑布镇是一个神秘的地方,那里有吸血鬼,狼人,巫师,二重身。 Klaus(吸血鬼祖先) 为了利用 Elena 的血液发展他的混血大军(吸血鬼&狼人),也来到了神秘瀑布镇。Stefan 因为深爱着 Elena ,于原创 2016-09-08 10:31:17 · 419 阅读 · 0 评论 -
NYOJ801-哈夫曼编码(贪心AC)
1.题目描述:Haffman编码时间限制:1000 ms | 内存限制:65535 KB难度:3描述哈弗曼编码大家一定很熟悉吧(不熟悉也没关系,自己查去。。。)。现在给你一串字符以及它们所对应的权值,让你构造哈弗曼树,从而确定每个字符的哈弗曼编码。当然,这里有一些小规定:1.规定哈弗曼树的左子树编码为0,右子树编码为1;2原创 2016-09-08 15:50:18 · 971 阅读 · 0 评论 -
NYOJ1100-BFS+优先队列
1.题目描述:WAJUEJI which home strong!时间限制:1000 ms | 内存限制:65535 KB难度:2描述在一个山沟里,姐弟俩同时考上了大学。但由于家里拮据,所以这并不是什么好消息。父亲对孩子说:我就是砸锅卖铁也要把你们姐俩供出来。 当时的姐姐已经决定放弃上学的机会。 没想到第二天天还没亮,弟弟就偷偷带著几件破原创 2016-09-08 21:18:40 · 621 阅读 · 0 评论 -
NYOJ252-动态规划水
Question:给出定义01串,01串中不存在11这种子串,求长度为n的01串中满足定义的要求的01串的个数是多少Solution:思考之后,发现其实是标准的斐波那契数列首先定义状态:DP[i]:长度为i的01串中满足条件的01串的个数是多少状态转移方程:DP[i]=DP[i-1]+DP[i-2]这么理解:1.当前的第i位是1的时候,为原创 2016-09-11 21:50:35 · 391 阅读 · 0 评论 -
NYOJ18-动态规划水
Question:经典的数塔问题,我们经典的额dp求解思路Solution1:从上往下定义状态:DP[I][j]在第i层的第j位置处,我们的路径上的最优的价值状态转移方程:DP[i][j]=max(DP[i-1][j],DP[i-1][j-1])+map[i][j]Code1:#include"iostream"#include"cstdio"#include"原创 2016-09-11 22:30:57 · 359 阅读 · 0 评论 -
NYOJ214-LIS优化
Question:标准的LIS问题,最长公共子序列求最长的子序列的长度Solution:本题考得不是我们朴素的O(n*2)的动态规划的思路,本题考查的是LIS的O(n*lgn)的优化思路在大数据10 0000的数据量下,朴素的动态规划明显超时Code1:#include"iostream"#include"cstdio"#include"cstring"#de原创 2016-09-12 10:06:17 · 492 阅读 · 0 评论 -
NYOJ995-经典DP
Question:输入:n,v分别代表硬币系统中的面值的种类数目和要凑的零钱的总数之后n个数字代表硬币系统输出:如果可以通过该硬币系统找零,请求出最少需要的硬币个数,否则输出最好的情况下,我们还剩下多少的硬币没有找(最小值)Solution:经典的动态规划思想定义状态:DP[i]代表找i零钱需要的最少的硬币的个数,如果不能找的话,DP[i]就是-1原创 2016-09-12 13:11:43 · 468 阅读 · 0 评论 -
NYOJ17-LIS优化
Question:求单调递增的LIS的优化方法,不要朴素的,会超时Solution:定义状态:dp[i]:长度为i的最长单调递增子序列的最后一个元素(保证这个元素是最小的,贪心的思路)状态转移方程:这个比较难写,我从原理的角度出发,解释一下我们这里会发现,定义的这个状态一定是一个递增的序列,也就是说,我们在查找的额时候完全可以利用二分查找来优化我们的时间复杂度,二分查找原创 2016-09-15 11:46:39 · 524 阅读 · 0 评论 -
NYOJ 44 & 104 - 最大连续子串和(矩阵最大子矩阵和)
1.NYOJ44-最大连续子串和两种解法:1.归并:(运行时间比DP长O(n*lgn),但是耗用内存小,好吧,其实dp不用开很大内存,O(1)的dp也可以解决,总体来说,dp更好一些)无非三种情况,最大连续子串在mid左边,最大连续子串在mid右边,最大连续子串横跨左边和右边递归调用即可Code:#include"iostream"#include"cstdio"原创 2016-09-15 14:39:45 · 400 阅读 · 0 评论 -
NYOJ983-首尾相连的最大子数组和(升级版子数组和)
Question:本体是最大子数组和的升级版,我们这里允许数组首尾相接,那么这里面就会涉及到更多地知识点Solution:首先,我们定义的状态和状态转移方程不变定义状态:dp[i]:以第i位作为结尾的最大子数组和(连续的子数组)状态转移方程:if dp[i-1]else dp[i]=dp[i-1]+data[i]在本题中我们加入了一些处理的技巧,首先,既原创 2016-09-16 14:07:17 · 354 阅读 · 0 评论 -
NYOJ - 138 节约内存 哈希
1.Question:在某一国度里流行着一种游戏。游戏规则为:现有一堆球中,每个球上都有一个整数编号i(0<=i<=100000000),编号可重复,还有一个空箱子,现在有两种动作:一种是"ADD",表示向空箱子里放m(0<m<=100)个球,另一种是"QUERY”,表示说出M(0<M<=100)个随机整数ki(0<=ki<=100000100),分别判断编号为ki 的球是否在这个空箱子中原创 2016-11-04 12:46:29 · 489 阅读 · 0 评论 -
NYOJ - 42 - 并查集+半欧拉图
1.Question:描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来。规定,所有的边都只能画一次,不能重复画。 输入第一行只有一个正整数N(N每组测试数据的第一行有两个正整数P,Q(P随后的Q行,每行有两个正整数A,B(0输出如果存在符合条件的连线,则输出"Yes",如果不存在符合条件的连线,输原创 2016-11-23 23:15:51 · 412 阅读 · 0 评论 -
NYOJ 99 - 欧拉图 单词拼接
1.Question:描述给你一些单词,请你判断能否把它们首尾串起来串成一串。前一个单词的结尾应该与下一个单词的道字母相同。如alohadogarachnidgophertigerrat 可以拼接成:aloha.arachnid.dog.gopher.rat.tiger原创 2016-11-26 16:35:51 · 664 阅读 · 0 评论