随笔分类 -  dp

摘要:这是一道最经典的基于连通性的状态压缩dp。f[i][j][s]表示轮廓线到i,j格的时候,轮廓线上状态为s的方案数。用一个四进制数表示s:0表示该位置没有插头,1表示该位置的插头必须拐弯,2表示这个插头不必须被延长,3表示该插头必须被延长。具体转移请见程序:#include<iostream>#include<cstring>#include<cstdio>using namespace std;typedef long long LLint;const LLint MAXN=110;const LLint HASHSIZE=3000009;const LL 阅读全文
posted @ 2013-04-18 15:38 Return_0 阅读(264) 评论(0) 推荐(0)
摘要:一个密码是由大小写字母与数字组成的序列。计算长度为N且含有至少L个小写字母,U个大写字母,D个数字的密码个数。(1<=N<=200000,0<=L,U,D<=n)。答案模1,000,000,009【输入格式】第1行:1个整数N第2行:1个整数L第3行:1个整数U第4行:1个整数D【输出格式】第1行:1个整数,表示答案。本弱在考试时遇到这个题的时候,果断N^2骗分,正解神马的完全不知道。听了大神讲了之后,发现这个题的解法真是太精妙了。首先,我们应该先把数字单独分离出来计算,把小写和大写字母放在一起比较容易处理。如果数字有x个,那么方案数就有f[N-x]*26^(N-X)* 阅读全文
posted @ 2013-03-18 20:38 Return_0 阅读(157) 评论(0) 推荐(0)
摘要:【题目描述】城市有N个公交车站,排列在一条长为N-1公里的直线上,从左到右依次编号为1到N,相邻公交车站间的距离均为1公里。按以下规则设计线路:1.设共有K辆公交车,则1到K号车站作为始发站,N-K+1到N号车站作为终点站。2.每个车站必须被一辆且仅一辆公交车经停(始发站和终点站也算被经停)。3.公交车只能从编号较小的车站驶向编号较大的车站。4.一辆公交车经停的相邻两个车站间的距离不得超过P公里。注意“经停”是指经过并停车,因经过不一定会停车,故经停与经过是两个不同的概念。现在想知道有多少种满足要求的方案。只需求出答案对30031取模的结果。【输入格式】只有一行,其中包含用空格隔开的三个正整数 阅读全文
posted @ 2013-03-18 10:03 Return_0 阅读(213) 评论(0) 推荐(0)