题解:
如果没有后加的边,那么 ans=∏ni=2dians = \prod_{i=2}^n di ,可以回忆构建树形数据的普遍方法——点 ii 连一条 [1,i-1] 的边即可。
然后后加边了以后,有且仅有一些方案会形成环是错误方案。
拓扑图DP就好啦~, f(i)f(i) 表示从 yy 到 ii 时的方案。
发现对于一条 y→iy \rightarrow i 的路径,再加上一条 i→y...
分类:
其他好文 时间:
2015-04-29 09:55:42
阅读次数:
129
动态规划
01背包
问题描述
求解思路
代码实现
放入哪些物品
代码动态规划我在上一篇博客里已经讲了一点动态规划了,传送门:算法学习 - 动态规划(DP问题)(C++)这里说一下,遇到动态规划应该如何去想,才能找到解决办法。最主要的其实是要找状态转移的方程,例如上一篇博客里面,找的就是当前两条生产线的第i个station的最短时间和上一时刻的时间关系。minTime(station[1][i]) =...
分类:
编程语言 时间:
2015-04-28 22:54:46
阅读次数:
256
挨个偷屋里的钱,相邻的房屋不能被偷,问最大偷得的钱是多少,采用动态规划,publicclassSolution{publicintrob(int[]nums){intl=nums.length;if(l==0)return0;int[][]record=newint[2][l];for(inti=0;i<l;i++){record[0][i]=0;record[1][i]=0;}inttou=0;intnulltou=0;for(i..
分类:
其他好文 时间:
2015-04-28 18:59:22
阅读次数:
110
K - Jury Compromise
Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u
Submit Status Practice POJ 1015
Description
In Frobnia, a far-away country, the verdicts in court trials ...
分类:
其他好文 时间:
2015-04-28 18:30:08
阅读次数:
172
Problem DescriptionBefore ACM can do anything, a budget must be prepared and the necessary financial support obtained. The main income for this action...
分类:
其他好文 时间:
2015-04-28 17:39:16
阅读次数:
149
题目:
许多程序会大量使用字符串。对于不同的字符串,我们希望能够有办法判断其相似程序。我们定义一套操作方法来把两个不相同的字符串变得相同,具体的操作方法为:
1.修改一个字符(如把“a”替换为“b”);
2.增加一个字符(如把“abdd”变为“aebdd”);
3.删除一个字符(如把“travelling”变为“traveling”);
比如,对于“abcdefg”和“abc...
分类:
其他好文 时间:
2015-04-28 16:19:39
阅读次数:
129
这道题,咋一看很像Fibonacci数列,使用递归或者改进的动态规划来解决。但是仔细一看,(1 2 using namespace std; 3 int main() 4 { 5 int a,b,i; 6 long long f[55],n; 7 while(cin>>a>...
分类:
其他好文 时间:
2015-04-28 16:01:33
阅读次数:
175
题目:
有一个没有排序,元素个数为2N的正整数数组。要求把它分割为元素个数为N的两个数组,并使两个子数组的和最接近。
基本思想:
假设数组A[1..2N]所有元素的和是SUM。模仿动态规划解0-1背包问题的策略,令S(k, i)表示前k个元素中任意i个元素的和的集合。
显然:
S(k, 1) = {A[i] | 1
S(k, k) = {A[1]+A[2]+…+A[k]}
...
分类:
编程语言 时间:
2015-04-28 14:16:04
阅读次数:
135
题目:给你n个正方体,每个面有一种颜色,他们按照重量递增的方式排列着,现在要求把他们排成一个塔,
每层一个正方体,要求每个正方体上面的正方体的重量全都小于他,还要保证接触的面上的颜色相同,
问最高能摆放多少层,答案不唯一。
分析:dp,动态规划,lis。最大不下降子序列,已经排好序,满足接触的面颜色相同即可。
定义状态...
分类:
其他好文 时间:
2015-04-28 14:12:10
阅读次数:
126
简单的完全背包。
将三种物品的价格可以理解成既是价值,又是重量。
简单动态规划
AC代码:
#include
#include
using namespace std;
int dp[10005];
int a[3] = {150, 200, 350};
int b[3] = {150, 200, 350};
int max(int x, int y)
{
return x >...
分类:
其他好文 时间:
2015-04-28 09:37:58
阅读次数:
120