找最长的其实是很裸的状态压缩DP,棘手的地方是要统计数量,其实只要再来一个数组存就好。不过代码比较长,细节要注意的地方毕较多,wa了很多发,还是要仔细啊用递推和记忆化搜索分别写了一遍#include #include #include #include #include #include #incl...
分类:
其他好文 时间:
2014-07-25 13:52:51
阅读次数:
265
开始变量竟然输反了#include
#include
int dp[1002];
struct none
{
int vo;
int value;
}a[1002];
int max(int a,int b)
{return a>b?a:b;}
int main()
{
int N,V,T,i,j;
scanf("%d",&T);
while(T--)
{
sc...
分类:
其他好文 时间:
2014-07-25 11:28:01
阅读次数:
203
Square Country
大意: 买一块边长为 a 的正方形地需要的钱数是 a^2, 现在输入N为钱的数目,求最少购买地的块数可以凑够N。
思路:DP,由背包思想推出来的dp[i] = min(dp[i], dp[j-i*i]+1); 方块都是由正方形组成的,所以是i*i,循环的时候也是i*i。
#include
#define min(a, b)...
分类:
其他好文 时间:
2014-07-25 11:06:21
阅读次数:
195
前言本文翻译自TopCoder上的一篇文章:Dynamic Programming: From novice to advanced,并非严格逐字逐句翻译,其中加入了自己的一些理解。水平有限,还望指摘。前言_我们遇到的问题中,有很大一部分可以用动态规划(简称DP)来解。 解决这类问题可以很大地提升你...
分类:
其他好文 时间:
2014-07-25 02:34:54
阅读次数:
284
题意:1-9每个字母需要消耗ai升油漆,问你用油漆最多刻意画多大的数字解题思路:首先我们要贪心,可以知道我最优是先使我们位数尽可能长,然后才是就是位数长的情况下使得从最高位开始尽可能大。所以要取满足最长位最小的那个数,方便我们DP解题代码: 1 // File Name: 349b.cpp 2 //...
分类:
其他好文 时间:
2014-07-25 02:23:34
阅读次数:
200
A nudnik photographer
大意:
对1到N这些数进行排列,1必须要在最左边,相邻的两个数之间的差值不能超过2,问有多少种排列的方法。
思路:
对座位进行DP,当第一个是1,第二个是2的时候,组合为dp[i-1];当第一个是1,第二个是3的时候,第三个也确定了是2,组合为dp[i-3];还有最后一种情况是1357……8642。
所以...
分类:
其他好文 时间:
2014-07-24 23:33:53
阅读次数:
215
滑雪
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 75626
Accepted: 28028
难得一见的中文题 题意就不多做解释 求最长路径
简单点的动规 唯一的麻烦就是没告诉你起点和终点 没关系 直接一个个暴搜反正数据不大。。。
转移方程 ...
分类:
其他好文 时间:
2014-07-24 23:31:33
阅读次数:
244
递归的边界条件写的多了……没必要写呢么多的。。
不明白可共同探讨~
#include
#include
#include
using namespace std;
long long dp(int kk,int pos)
{
int n=kk;int temp=(int)pow(2,n);
// printf("%d %d\n",kk,pos);
if(kk==0&&...
分类:
其他好文 时间:
2014-07-24 23:17:03
阅读次数:
368
A:DZY Loves Sequences
一开始看错题了。。sad。
题目很简单,做法也很简单。DP一下就好了。
dp[i][0]:到当前位置,没有任何数改变,得到的长度。
dp[i][1]:到当前位置,改变了一个数,得到的长度
不过需要正向求一遍,然后反向求一遍。
#include
#include
#include
#include
#include
using namespac...
分类:
其他好文 时间:
2014-07-24 23:12:33
阅读次数:
216
题意:电脑记录了某一时刻每个赛车的前面和后面个有多少辆车(多个车并排时在别的车那只算一辆),问最少有多少个不合理的数据。分析:看到n=n肯定不行,加上自己就超过n了。否则这个车肯定在(a+1,n-b)这段区间内,所以这段区间内的车子数(cnt[][]记录)++,如果车子数大于区间长度,就不再加了。搞...
分类:
其他好文 时间:
2014-07-24 22:53:23
阅读次数:
168