随笔分类 - 算法学习笔记
摘要:这个题第一眼以为只是一个简单的序列型DP问题,于是快速的写下了下面的代码。#include using namespace std; /* 看着只是简单的序列DP..不知道有没有坑 DP[k]表示的是有前k个活动可以选择时的答案 */ struct state{ int health;//体力...
阅读全文
摘要:这个题很多地方暗示了DP的路径。我们处理时,dp[i][j]可以认为是从i坐标到j坐标的序列达到回文效果需要的最小代价,以此向外扩展,最终得到dp[0][M-1]就是结果。我们要注意到处理dp[i][j]时,我们需要知道 dp(i+1,j-1)的结果,所以i必须降序,j必须升序,才能保证在计算dp(...
阅读全文
摘要:我们发现这个题里每一种“移动套餐”用的次数只有0,1,2,3 是有效的,4和0是一样的。所以我们开一个数组rot[10]来记录这9个套餐分别用了多少次。字典序的处理和我们的枚举顺序息息相关。我们从 000000000 到 333333333 来枚举的话,第一个符合条件的结果当然就是所有答案中字典序最...
阅读全文
摘要:很简单 不用太考虑效率 虽然每次都要重新排序注意vector的使用,非常便利。还有一个技巧就是用一个have型bool数组来记录是否存在。#include #include #include using namespace std;bool have[1000] = {0};vector v; //...
阅读全文
摘要:思想来自:http://blog.pureisle.net/archives/475.html主要思想是用1和0来表示是否被填,然后根据两行之间的状态关系来构建DP方程。1.首先初始化第一行 计算第一行可以被横着填的方案数。此时cnt是1 所以其实合法的dp[1][j]都是12.然后开始构建第二行至...
阅读全文
摘要:#include #include #include using namespace std;struct person{ int data; int id;};int l[1001],r[1001];//存储编号为i的左边的编号和右边的编号int data[1001];//存储编号为i...
阅读全文
摘要:枚举法就好了,推理很麻烦,感觉也做不出来。创造一个结构体,一个是真实的数,一个是花费的牙签数。构建一位数,两位数,三位数即可。#include #include using namespace std;//从0到9耗费的牙签数int cost[10]={6,2,5,5,4,5,6,3,7,6};st...
阅读全文
摘要:典型的BFS,找到起点直接进行搜搜即可。要注意的就是层数的处理。坐标到id的转换。还有就是要尽早判断是否达到终点。代码注释很详细,最后面两个函数是一开始写的 用抽取邻接矩阵+Dijkstra 来算的,很麻烦 头脑一热的结果。。#include #include #include using name...
阅读全文
摘要:状态压缩,当我们的状态太多时可以考虑用bit来存储,用二进制来表示集合,用&来取交集,用^来异或。DP过程很简单,遍历所有情况取最短路径就行,因为最短哈密顿回路本身就是一个NPC问题,效率不高。#include #include using namespace std;//最短哈密顿回路问题 NP完...
阅读全文
摘要:虽然DLX可以提高效率....但是对于NPC问题也不用太追求效率了,而且还只有一个测试点。所以 只要DFS不断的填入,直到空格全部被填满;要注意的是DFS中全局变量的更新和恢复。至于存储的方法,只要考虑每一行每一列每一个小块的不重复即可。#include #include using namespa...
阅读全文
摘要:Description赫萝最喜欢吃蜂蜜腌渍的桃子。然而她能够得到的桃子有限,因此赫萝必须精打细算。赫萝在b天内可以得到a个桃子,每天赫萝至少吃一个桃子,她想知道她在a天内有多少种吃桃子的方法。吃桃子的顺序并不重要,也就是说赫萝认为“第一天吃一个桃子第二天吃两个桃子”和“第一天吃两个桃子第二天吃一个桃...
阅读全文
摘要:Description丁姐和二哥一样养了很多猴子,每只猴子脖子上都挂着一个数字号码牌(数字可能重复但是不重要),一天他和这些猴子完游戏。一开始时有n只猴子围成一圈,猴子的号码牌按顺序为1~n。从当前猴子开始1~k报数,报到k后可能由两种操作:①报到k的猴子从圈中出去,由刚刚退出的猴子的下一只猴子再开...
阅读全文
摘要:1371. 期末打分Description马上要到期末,助教们准备开始打分,然而毕设DDL要到了,助教只好请丁姐来帮忙。众所周知丁姐大一就把毕设做完了,这时候肯定空的跟狗一样。翁阿姨让丁姐统计分数落在区间[a,b]内的学生人数,由于学生很多,丁姐很懒,他决定把这个任务交给你。Input Format...
阅读全文
摘要:Description给出一个总字符个数大小不超过1,000,000的字典(这个字典的单词顺序不为字典序)和不超过1000个长度不超过1000的前缀,输出字典中匹配该前缀,字典序为K_i的单词在字典中的位置。所有单词都为小写字母。Input Format第一行: 两个整数N,M,分别表示字典中的单词...
阅读全文
摘要:Description有一些同学在练习匀速跑,他们起点和速度各不相同,但约定好练习相同的时间。请根据给出的同学的初始位置和速度,计算至少需要多少条跑道才能保证同学之间互相不会相撞。在任何一个时间点两个不同的同学处在相同的位置均视为相撞。Input Format第一行:两个整数N和T。N (1 #in...
阅读全文
摘要:Description小M超级喜欢滑雪~~ 滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当小M滑到坡底,便不得不再次走上坡或者等待升降机来载你。小M想知道滑雪场中最长底的滑坡。滑雪场由一个二维数组给出。数组的每个数字代表点距离水平面的相对距离。下面是一个例子1 2 3 4 5...
阅读全文
摘要:Description话说二哥当年学习数据结构的时候遇到了那道猴子报数的题目,其实这就是经典的约瑟夫问题。可是当年的二哥还是个毛头小子,只会用模拟的方法,而其他同学却使用了一些令二哥完全摸不到头脑的方法。……二哥一怒之下改了题目……话说当年花果山的猴子要选大王,选举办法如下:所有猴子按1-M编号围坐...
阅读全文
摘要:1034. 二哥的金链Description一个阳光明媚的周末,二哥出去游山玩水,然而粗心的二哥在路上把钱包弄丢了。傍晚时分二哥来到了一家小旅店,他翻便全身的口袋也没翻着多少钱,而他身上唯一值钱的就是一条漂亮的金链。这条金链散发着奇异的光泽,据说戴上它能保佑考试门门不挂,RP++。好心的老板很同情二...
阅读全文
摘要:---恢复内容开始---1250. BestSubsequenceDescriptionLL有n个妹子,他给妹子们编号排成一排。据说今天天气大好,LL要去春游了,他决定要选定至少F个妹子一起去玩。 为了让妹子们开心,他决定选连续一段的妹子们。然后LL有个特殊的癖好,他喜欢体重比较厉害一些的妹子。那你...
阅读全文
摘要:Description成为LL冠军的人气偶像丁姐最近比较烦,许多商业活动找上门来。因为每次商业活动给的毛爷爷都一样,所以丁姐希望能够尽可能多的参加这些活动。然而,商业活动的起止时间并不由丁姐说了算,因此丁姐想写一个程序,求出他最多能够参加的商业活动的数量。Input Format第一行一个数n,表示...
阅读全文

浙公网安备 33010602011771号