bale share
来源:互联网 发布:创投圈 知乎 编辑:程序博客网 时间:2024/05/16 19:36
2076 - Bale Share
Accepted: 6 Submissions: 32 Time Limit: 1000 ms Memory Limit: 1048576 KBProblem 2: Bale Share [Fatih Gelgi, 2010]
Farmer John has just received a new shipment of N (1 <= N <= 20) bales of
hay, where bale i has size S_i (1 <= S_i <= 100). He wants to divide the
bales between his three barns as fairly as possible.
After some careful thought, FJ decides that a "fair" division of the hay
bales should make the largest share as small as possible. That is, if B_1,
B_2, and B_3 are the total sizes of all the bales placed in barns 1, 2, and
3, respectively (where B_1 >= B_2 >= B_3), then FJ wants to make B_1 as
small as possible.
For example, if there are 8 bales in these sizes:
2 4 5 8 9 14 15 20
A fair solution is
Barn 1: 2 9 15 B_1 = 26
Barn 2: 4 8 14 B_2 = 26
Barn 3: 5 20 B_3 = 25
Please help FJ determine the value of B_1 for a fair division of the hay bales.
PROBLEM NAME: baleshare
INPUT FORMAT:
* Line 1: The number of bales, N.
* Lines 2..1+N: Line i+1 contains S_i, the size of the ith bale.
SAMPLE INPUT (file baleshare.in):
8
14
2
5
15
8
9
20
4
OUTPUT FORMAT:
* Line 1: Please output the value of B_1 in a fair division of the hay
bales.
SAMPLE OUTPUT (file baleshare.out):
26
方法是DP,有点类似于表,dp[i][j]中两个数i和j,例如i为B_2,j为B_3,在表中是否存在,然后枚举i,j和sum-(i+j),求其中最大的就是B_3,求B_3最小值
#include <math.h>#include <string.h>#include <iostream>#include <algorithm>#include <vector>#include <map>#include <stdio.h>#define maxn 800using namespace std;int dp[maxn+5][maxn+5];int sum;int max(int a,int b,int c){ int d=a>b?a:b; return d>c?d:c;}int main(){ int n; while(scanf("%d",&n)!=EOF) { int num[105]; memset(dp,0,sizeof(dp)); dp[0][0]=1; sum=0; for(int k=0;k<n;k++) { scanf("%d",&num[k]); sum+=num[k]; for(int i=maxn;i>=0;i--) { for(int j=maxn;j>=0;j--) { if(j-num[k]>=0&&dp[i][j-num[k]]==1) dp[i][j]=1; if(i-num[k]>=0&&dp[i-num[k]][j]==1) dp[i][j]=1; } } } int best=maxn; for(int i=0;i<=maxn;i++) for(int j=0;j<=maxn;j++) if(dp[i][j]==1) { best=min(best,max(i,j,sum-(i+j))); } printf("%d\n",best); }}
- bale share
- Luogu P3040 贝尔分享Bale Share
- 洛谷 P3040 [USACO12JAN]贝尔分享Bale Share
- Luogu P3040 贝尔分享Bale Share
- 搜索-洛谷P3040 [USACO12JAN]贝尔分享Bale Share
- poj 2180 Bale Figures
- share
- share
- share
- share
- net share
- Bookmark & Share
- Net share
- adobe.share
- share test
- 软件名称: Share
- knowledge share
- share.edit();
- C#2010 串口控件serialPort 首次使用 菜鸟备份可以帮到菜鸟
- MD5 32位加密
- c++强制转换
- javascript(重要内置对象,json处理,闭包详解)高级特性详解
- VS2005 web程序自定义安装包的制作
- bale share
- 大内核所BKL
- 浅浅地封装一层 JDBC
- 关于Myisam_recover
- Java编程中“为了性能”尽量要做到的一些地方
- C#简介
- xp上远程putty+Xming使用方法
- u-boot2010.03 Makefile分析
- 彤云缥缈回金格,明月婵娟挂玉钩