C++学习【原创】tyvj1258 圣诞树
(2012-08-22 19:41:20)
标签:
前驱题意换行符方程圣诞树it |
分类: 动态规划 |
题目:http://www.tyvj.cn/Problem_Show.asp?id=1258
题意:中文题,题意就不讲了。
分析;一道经典的DP题。如果你是C或C++选手,你只能用字符串读入数据,为什么呢?因为每一行并没有告诉你有几个数字,只是让你通过换行符来判断每一层的状态。此题输入特别坑人,假如你TLE在第1和第3个点,那是因为数据的末尾有可能会有换行或空格,所以要读到EOF才能结束。
dp的思路应该是很明显,方程也很好写,对于第i层,它有可能是由输入的数据来决定前驱状态,所以方程就为:dp[i]=max(dp[i],dp[j]+tree[i]);
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <string>
#include <map>
#include <algorithm>
#include <vector>
using namespace std;
int tree[105],dp[105];
vector <int> Pre[105];
int main()
{
}