CSU-1945 最简单的题目
来源:互联网 发布:电脑打字用什么软件 编辑:程序博客网 时间:2024/06/06 03:22
比赛的时候拿贪心的代码改来改去死活Y不下来,后来跟人讨论一下才得知是个背包问题,果然自己有关背包和DP方面的理解不深啊。
具体的思路在于对当前问题的求解在于尽量使两台机器工作的时间相近,这样才能让最后结束的机器工作的时间最短。
做法的话便是排序后进行枚举,标记数值小于等于时间总和的一半的时间点。
#include<iostream>#include<cmath>#include<algorithm>#include<cstring>#include<cstdio>using namespace std;const int INF=5005;int dp[INF],ax[1005];int main(){ int N; while(cin>>N) { int sum=0,dis=INF; for(int i=0;i<N;i++) { cin>>ax[i]; sum+=ax[i]; } int z=sum/2; sort(ax,ax+N); memset(dp,0,sizeof(dp)); dp[0]=1; for(int i=0;i<N;i++) { if(ax[i]<=z) dp[ax[i]]=1; } for(int j=0;j<N;j++) { if(ax[j]>z) break; for(int i=z;i>0;i--) { if(i+ax[j]<=z) dp[i+ax[j]]=1; } } int flag=INF; for(int j=z;j>=0;j--) { if(dp[j]) { flag=j; break; } } cout<<max(flag,sum-flag)<<endl; } return 0;}
阅读全文
0 0
- CSU-1945 最简单的题目
- G(1945): 最简单的题目
- 最简单的C++题目
- 题目:最简单的逆向
- CSUOJ 1945 最简单的题目 背包问题
- 最短的名字 CSU
- 编写一个最简单的交互式题目
- CUIT CTF WriteUp-最简单的题目
- CSU 1115 最短的名字
- CSU 1115 最短的名字
- CSU 1115 最短的名字
- 最短的名字 CSU - 1115
- 最短的名字 csu-1115
- csu 点到圆弧的最短距离
- CSU 1115: 最短的名字
- hdu1530 最大团简单题目
- 腾讯笔试题目之一 最简单的那个
- 最简单的OJ题目(求两个整数之和)
- 再议C#委托
- Chapter4.1.1 函数的对象
- 简单的登录、注册以及带有验证码功能
- selenium动作
- hibernate-核心开发接口-6
- CSU-1945 最简单的题目
- hadoop、hbase、hive版本兼容信息
- 存储管理的功能
- 性能调优
- Android VR Player(全景视频播放器) [3]:底部导航的实现
- Linux下配置jdk的方法
- linux线程1
- vs2010+opencv 243 + 摄像头操作
- 【Javascript之】精通JavaScript的this关键字