摘要:
Gym 101205D 题意:f[0] = "0", f[1] = "1",接下来f[i] = f[i-1] + f[i-2],相当于字符串拼接。然后给出一个n和一个串s,问f[n]里面有多少个s。 思路:在int范围内的f[n]是n=31的时候,但是匹配的s的长度只有1e5,这时候n=27刚好大于 阅读全文
摘要:
http://lx.lanqiao.cn/problem.page?gpid=T294 题意:中文题意。 思路:1、一开始想的是,乘号就相当于隔板,把隔板插入到序列当中,同一个隔板的就是使用加法运算,然后求最大值。也没有证明这个想法的正确性就蒙头写了。然后第一个数据就错了,还是挺良心的可以看第一个数 阅读全文
摘要:
http://poj.org/problem?id=2778 题意:有m个病毒DNA,问构造一个长度为n的不带病毒DNA的字符串可以有多少种。 思路:看到这题有点懵,想了挺久题解的思路。 使用AC自动机判断总共有哪些状态,和哪些状态是不可取的。 然后构造出矩阵mat,mat[i][j]代表从状态i走 阅读全文
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=3065 题意:中文题意。 思路:直接插入然后用一个数组记录id和cnt,因为n只有1000,可以开一个数组判断第几个字符串出现过的次数,然后输出就好了。 坑点:多组输入!!!然后因为new出来的空间要自己释放,因此 阅读全文
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=2896 题意:中文题意。 思路:AC自动机模板题。主要在于字符有128种,输出还要排序和去重! 注意是“total”不是“totol”!!!因为这个Debug了好久。 还有结点是new的,不然MLE。 主要用来测试 阅读全文
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=5616 题意:有n个物品,每个重量为w[i],有一个天平,你可以把物品放在天平的左边或者右边,接下来m个询问,问是否能用这些物品称出x的重量。 思路:如果只能放一边,那就是很简单的背包DP,现在考虑要放在左右两边, 阅读全文
摘要:
http://poj.org/problem?id=2887 题意:给出一个字符串,还有n个询问,第一种询问是给出一个位置p和字符c,要在位置p的前面插入c(如果p超过字符串长度,自动插在最后),第二种询问是给出一个位置p,查找第p个位置的字符(p保证合法)。 思路:暴力分块。一开始建成块之后,每次 阅读全文
摘要:
http://codeforces.com/gym/101246/problem/G 题意:有一个n个点m条边的有向图,现在可以修改某一条有向边使得其为无向边,问修改哪些边可以使得修改后的强连通分量的点数最多,输出。 思路: 要使得修改边后的强连通分量的点数最多,假设当前修改的边的入点为u,出点为v 阅读全文
摘要:
http://codeforces.com/gym/101246/problem/H 题意:在二维平面上有n个点,从最左下角的点出发,每次走只能走在当前的点的右上角的点(xj > xi, yj > yi)。问在走了最长路径的前提下有哪些点是可能被走到的,哪些点是必须被走到的。 思路:比赛的时候以为是 阅读全文
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=1561 题意:有n个点,容量为m,每个点有一个价值,还给出n条边,代表选第i个点之前必须先选ai,问最多的价值能取多少。 思路:每个点的花费是1,价值为w[i],然后直接按照树型背包写就行了。 还是老套路。 dp[ 阅读全文
摘要:
http://codeforces.com/gym/100502/attachments 题意:有n个点,容量为tol,接下来n个关系,表示选了第i个点,那么第xi个点就必须被选。问最多可以选多少个点使得不超过容量tol。 思路:由题目样例可得,边可能出现自环的情况,这个时候这条边其实没用。然后因为 阅读全文
摘要:
http://codeforces.com/gym/100502/attachments 题意:有n个地点,m条边,每条边有一个边权,0代表两个顶点都染成白色,2代表两个顶点都染成黑色,1代表两个顶点可能尚未染色,但是之后必须一个染成白色一个染成黑色。问是否有可能让这个图成功染色,如果可能输出染成黑 阅读全文
摘要:
http://www.spoj.com/problems/STC02/en/ 题意:给出一个长度为n的字符串,问其中有多少个子串s可以使得s = s按位取反+翻转。 例如样例:11001011. 10可以,因为取反 = 01,翻转 = 10. 所以算一个。 思路:可以看成是回文串,使用Manache 阅读全文
摘要:
http://codeforces.com/contest/782/problem/B 题意:有n个人,每个人有一个位置和速度,现在要让这n个人都走到同一个位置,问最少需要的时间是多少。 思路:看上去很像二分搜索啊!枚举距离,判断是否有更少的时间,然后发现时间不随着距离单调增减,想起前两天被三分虐了 阅读全文
摘要:
http://codeforces.com/contest/782/problem/C 题意:给一棵树染最少的颜色,使得相邻距离为2的点都是不同的颜色,问最少是多少种颜色并输出每个点的颜色。 思路:比赛的时候没想到是找度最大的一个点并+1就是总颜色数,一直想怎么构造。 最后的总颜色数是度最大的一个点 阅读全文