10 2013 档案
摘要:最近手感有点差,所以做点水题来锻炼一下信心。下周的南京区域赛估计就是我的退役赛了,bless all。Revenge of FibonacciTime Limit: 10000/5000 MS (Java/Others)Memory Limit: 204800/204800 K (Java/Others)Total Submission(s): 1582Accepted Submission(s): 356Problem DescriptionThe well-known Fibonacci sequence is defined as following:Here we regard n a
阅读全文
摘要:题目:给出n个串,问最多能够选出多少个串,使得前面串是后面串的子串(按照输入顺序)分析: 其实这题是这题SPOJ 7758. Growing Strings AC自动机DP的进阶版本,主题思想差不多。 对于这题来说,需要离线操作。dp转移也是很显然。 但是由于数据比较大,所以普通的沿着fail指针往上走,逐步更新答案会TLE。 考虑把fail指针反向,由于ac自动机的每个节点均有唯一的fail指针,若是沿着fail指针往上走,显然都会走到root,所以反向之后显然是一棵树,不妨称之为fail树。fail树有什么特点呢?可以画个图试试,如果儿子节点出现过,那么他的祖先显然也会出现! 因...
阅读全文
摘要:Growing Strings题目:给出n个字符串,问最多能够选出多少个串组成序列,并满足前一个字符串是后一个字符串的子串。分析: AC自动机经典水题。。。 考虑每个节点结尾时,他能够选出最多的串 = max{ 父节点选出 , fail节点选出}+以该节点为结尾的单词个数#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;type..
阅读全文
摘要:107EDarts题目:给出n个矩形,问落在n个矩形交的部分的概率分析:裸的多边形面积并。代码略。。
阅读全文
摘要:题目:伐木工人用电锯伐木,一共需要砍n棵树,每棵树的高度为a[i],每次砍伐只能砍1单位高度,之后需要对电锯进行充电,费用为当前砍掉的树中最大id的b[id]值。a[1] = 1 , b[n] = 0,a[i]b[i+1]。问砍完所有的树的最小费用。分析:由于b[n] = 0 , 所以很容易弄出一个O(n^2)的状态转移方程。dp[1] = 0;for(int i=2;i#include #include #include #include #include #include #include #include #include #include #include using namespac
阅读全文