【动态规划】XMU 1560 新ACM规则
2016-04-24 12:52
302 查看
[b]题目链接:[/b]
http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1560
[b]题目大意:[/b]
给定n(n<=200)个任务及每个任务的耗时,问m(m<=200)时间能够获得的最大收益(收益为解决连续任务数的平方的和,具体例子见题目)
[b]题目思路:[/b]
【动态规划】
设f[i][j]表示前i个任务,当前时间为j的最优值。
枚举第i个任务是前有几个和i连续的任务,状态转移方程很好推。
时间复杂度比O(n3)小很多,大概O(n2)级别。
View Code
http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1560
[b]题目大意:[/b]
给定n(n<=200)个任务及每个任务的耗时,问m(m<=200)时间能够获得的最大收益(收益为解决连续任务数的平方的和,具体例子见题目)
[b]题目思路:[/b]
【动态规划】
设f[i][j]表示前i个任务,当前时间为j的最优值。
枚举第i个任务是前有几个和i连续的任务,状态转移方程很好推。
时间复杂度比O(n3)小很多,大概O(n2)级别。
// //by coolxxx // #include<iostream> #include<algorithm> #include<string> #include<iomanip> #include<memory.h> #include<time.h> #include<stdio.h> #include<stdlib.h> #include<string.h> #include<stdbool.h> #include<math.h> #define min(a,b) ((a)<(b)?(a):(b)) #define max(a,b) ((a)>(b)?(a):(b)) #define abs(a) ((a)>0?(a):(-(a))) #define lowbit(a) (a&(-a)) #define sqr(a) ((a)*(a)) #define swap(a,b) ((a)^=(b),(b)^=(a),(a)^=(b)) #define eps 1e-8 #define J 10000 #define MAX 0x7f7f7f7f #define PI 3.1415926535897 #define N 204 using namespace std; int n,m,lll,ans,cas; int a ,sum ; int f ; int main() { #ifndef ONLINE_JUDGE // freopen("1.txt","r",stdin); // freopen("2.txt","w",stdout); #endif int i,j,k; scanf("%d",&cas); while(cas--) // while(~scanf("%s",s1)) // while(~scanf("%d",&n)) { scanf("%d%d",&n,&m); memset(sum,0,sizeof(sum)); memset(f,0,sizeof(f)); for(i=1;i<=n;i++) { scanf("%d",&a[i]); sum[i]=sum[i-1]+a[i]; } for(i=1;i<=n;i++)f[i][a[i]]=1; for(i=1;i<=n;i++) { for(j=0;j<=m;j++)f[i][j]=max(f[i][j],f[i-1][j]); for(j=a[i];j<=m;j++) { f[i][j]=max(f[i][j],f[i][j-1]); for(k=i;k && j>=sum[i]-sum[k-1];k--) { f[i][j]=max(f[i][j],f[k-1][j-sum[i]+sum[k-1]]+sqr(i-k+1)); } } } printf("%d\n",f [m]); } return 0; } /* // // */
View Code
相关文章推荐
- zoj3946 Highway Project
- mysql 时间
- A+B和C,PAT 1011
- Android OkHttp完全解析 是时候来了解OkHttp了
- 一、 单例设计模式
- cocos2d-x中Texture2D::TexParams(图片平铺)一张图片铺满全屏做背景
- opencv源码解析之----hog源码分析
- 第一阶段站立会议6
- PHP 数据类型
- 【字符串】HDU5590ZYB's Biology【BestCoder Round #65】
- Ajax参数记录
- angular $apply()以及$digest()讲解
- FFmpeg-20160422-snapshot-bin
- 专题二 1012
- 第八周总结及H5、Js实现五子棋效果
- FudionCharts简单学习记录
- HDU 1236 排名(一大波输入)
- 图片拉伸的方法
- 计算机视觉目标检测的框架与过程
- C语言 结构体中的成员域偏移量