![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DP
K3_14
这个作者很懒,什么都没留下…
展开
-
Sumsets POJ - 2229
如果i为奇数:肯定有一个1,把dp[i-1]的每一种情况加一个1就得到dp[i],所以dp[i]=dp[i-1]如果i为偶数:(有两种情况) 如果有1,至少有两个,则dp[i-2]的每一种情况加两个1,就得到i, 如果没有1,则把分解式中的每一项除2,则得到dp[i/2],原创 2017-03-04 20:35:37 · 234 阅读 · 0 评论 -
算法训练 数字三角形
最基础的dp题#include #include using namespace std;int n,t;int a[110][110],dp[2][110];int main(){ scanf ("%d",&n); for (int i=1;i<=n;i++) { for (int j=1;j<=i;j++) scanf ("%d",&a[i][j]);原创 2017-03-18 07:19:43 · 233 阅读 · 0 评论 -
算法训练 未名湖边的烦恼
两种方法:1.递归#include #include using namespace std;int m,n;int f(int m,int n) { if (m<n) return 0; if (n==0) return 1; return f(m-1,n)+f(m,n-1);}int main(){ scanf ("%d%d",&m,&n); printf ("原创 2017-03-18 07:55:34 · 389 阅读 · 0 评论 -
Cow Bowling POJ - 3176
数字三角形问题#include #include using namespace std;int n,t;int a[355][355],dp[2][355];int main(){ while (~scanf ("%d",&n)) { for (int i=1;i<=n;i++) { for (int j=1;j<=i;j++) scanf ("%d",原创 2017-03-04 23:12:10 · 253 阅读 · 0 评论 -
蓝桥 生命之树
在X森林里,上帝创建了生命之树。他给每棵树的每个节点(叶子也称为一个节点)上,都标了一个整数,代表这个点的和谐值。上帝要在这棵树内选出一个非空节点集S,使得对于S中的任意两个点a,b,都存在一个点列 {a, v1, v2, ..., vk, b} 使得这个点列中的每个点都是S里面的元素,且序列中相邻两个点间有一条边相连。在这个前提下,上帝要使得S中的点所对应的整数的和尽原创 2017-04-04 15:42:51 · 297 阅读 · 0 评论 -
蓝桥 漏斗
两个数字三角形叠加题目描述:有一个漏斗形的区域(如图片1形状),要求从顶层走到底层,每一步只能从下面一行中相邻的点中走,则经过的点的数字之和最大是多少?输入:第一行是一个整数N(2 接下来用 2*N-1 行数字表示每行区域中的数字,且所有的整数均在区间[0,9]内。输出:输出最大的和。输入样例1:31 2 36 57原创 2017-04-06 09:41:42 · 392 阅读 · 0 评论