线性同余方程组,模板了。但要注意读完数据才跳出循环啊#include #include #include #include using namespace std;void exgcd(__int64 a,__int64 b,__int64 &d,__int64 &xx,__int64 &yy){ ...
分类:
其他好文 时间:
2014-08-29 17:37:38
阅读次数:
162
01完全背包问题。
主要是求有多少种组合。二维dp做的人多了,这里使用一维dp就可以了。
一维的转换方程:dp[j] = dp[j-i] + dp[j];其中i代表重量,j代表当前背包容量。
意思就是dp[j-i] 代表j-i背包重量的时候最多的组合数,那么如果到了背包容量为j的时候,就是可以把第i个物品装进背包,那么就有dp[j-i]种装法,
如果没有i物品之前,那么容量为j的...
分类:
其他好文 时间:
2014-08-29 13:11:27
阅读次数:
142
这个专题充分暴露了不认真思考的缺点,总是感觉差不多就下手。
对于A题目,以为是强连通分量缩点。但实际上是求桥。
并考虑:1.重边 2.权重为0则初始值不能赋值为0,当选取权重为0的边答案为1 3.没有答案。
对于B题目,起初想得很复杂,以为是动态规划,一直在思考转移方程。但其实DFS就可以,但漏掉了形成正方形的另一个条件,底边平行。
对于C题目,这里又出现了漏洞(直接DFS不用考虑这些)...
分类:
其他好文 时间:
2014-08-29 09:29:27
阅读次数:
220
使用元编程和模板递归技术,既可以使最原始的递归方程具备惊人的快速高效。template class metafib {public: static const long long fib=metafib::fib+metafib::fib;};template class metafib {p...
分类:
其他好文 时间:
2014-08-27 20:11:08
阅读次数:
163
胡乱写一下,竟然是一次同余方程的内容。设a=n-m; b=L; d=x-y; 得ax+by=d然后,根定理,方程有解必须gcd(a,b)|d。确定有解后,两边除以gcd(a,b); 此时gcd(a',b')=1;使用EXGCD求出为1的解后再乘上d/gcd(a,b)。但要求最小解,就尽可能的把ax的...
分类:
其他好文 时间:
2014-08-27 16:05:17
阅读次数:
163
题目大概都是这样的:
设有N堆沙子排成一排,其编号为1,2,3,…,N(N
dp的方程很显然:
区间DP dp[i][j]=min(dp[i][k]+dp[k+1][j]+cost[i][j]) i
复杂度 N^3
这同时也是一个四边形优化DP的标准形式,对于i到j段的最优值s[i][j]满足: s[i][j-1]
可以减小枚举范围,复杂度N^2...
分类:
其他好文 时间:
2014-08-27 13:04:07
阅读次数:
272
题目地址:http://codeforces.com/contest/461/problem/B
题目大意:给一棵树,每个点为白色或黑色,切断一些边,使得每个连通块有且仅有一个黑点,问划分方案数。
算法讨论:TreeDP。f[x][0..1]表示x所在连通块有0/1个黑点。设y为x的儿子,则DP方程为f[x][1]=f[x][1]*f[y][0]+f[x][1]*f[y][1]+f[x][0]...
分类:
移动开发 时间:
2014-08-27 09:25:57
阅读次数:
287
题目:uva607 - Scheduling Lectures(递推)
题目大意:有N个主题,每个主题都有个讲课的时间。然后给定每节课的时间,并且要求一门课只能被选一次,并且选两门课以上的要选连续的。这样子每节课都有个真实的上课时间。根据这个和预期的上课时间求每节课的badness。要求在课最少的情况下。badness的和最小。
解题思路:这题不难想到状态转移方程dp【i】【j...
分类:
其他好文 时间:
2014-08-26 15:29:46
阅读次数:
218
Ax+By+C=0,给你A,B,C求x,y#include#include#includeusing namespace std;long long INF = 5 * 1e18;void gcd(long long a, long long b, long long& d,long long& x...
分类:
其他好文 时间:
2014-08-26 13:13:16
阅读次数:
136
水题裸数字三角形,稍微升级从下游往上推设dp[i][j]表示到达(i,j)时所能得到的最大分数目标dp[1][j]中的最大值方程:dp[i][j] = a[i][j]+max(dp[i+1][j-1],dp[i+1][j],dp[i+1][j+1])特殊情况加特判即可 1 #include 2 #....
分类:
其他好文 时间:
2014-08-26 00:20:05
阅读次数:
284