CF cut ribbon
来源:互联网 发布:政府网络舆情管理 编辑:程序博客网 时间:2024/06/08 05:21
题意大概是:一段长为n的丝带,将它分成a,b,c(可以相等)的几段,让输出能分成的最大段数。
简单DP
分析:长为n的丝带的最大分段,可以分解为3个相互重叠的子问题,即:长为n-a的丝带的最大分段,长为n-b,长为n-c。同时这三个子问题有可以分成相互重叠的子问题,依次类推。可以将长度为n的丝带分成n段,每段分别记录可分的最大段数,即数组f[n];
约束条件:1<=n,a,b,c<=4000
分析可得f [ i ] = max ( f [ i ] , f [ i - j ] + f [ j ] ),取在j这个位置不切和切中的最大值。
代码如下:
#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>using namespace std;int n,a,b,c;int f[4005];int main(){ cin>>n>>a>>b>>c; memset(f,0,sizeof(f)); f[a]=f[b]=f[c]=1; for(int i=1;i<=n;i++) { for(int j=1;j<=i;j++) { if(f[i-j]&&f[j]) { f[i]=max(f[i],f[i-j]+f[j]); } } } cout<<f[n]<<endl;}
0 0
- CF cut ribbon
- CF - 189A - Cut Ribbon
- CF 189A Cut Ribbon
- CF 189 A Cut Ribbon
- CF 189A Cut Ribbon
- Cut Ribbon
- Cut Ribbon
- Cut Ribbon
- A. Cut Ribbon
- codefroces A. Cut Ribbon
- Cut Ribbon codeforce
- D - Cut Ribbon (dp)
- codeforces 189A Cut Ribbon
- CodeForces 189A Cut Ribbon
- CodeForces 189A-Cut Ribbon
- codeforces 189A. Cut Ribbon
- CodeForces 189A Cut Ribbon
- Codeforces189 A. Cut Ribbon(DP)
- C++中不应该返回局部变量的地址
- 【LeetCode】Remove Duplicates from Sorted List I && II
- bzoj 1084: [SCOI2005]最大子矩阵 题解
- ASP 组件简介之ASP Content Linking组件
- 前台service和远程service代码详解
- CF cut ribbon
- jxl 打印excel,样式设置
- android 如何实现移动数据上网的开关?
- hdu 1875 畅通工程再续
- 树状数组
- [ALGO-20] 求先序排列
- 数据结构----顺序表的实现
- IOS_UI_Picker
- CNC blog