uvalive 6303 Smartphone Manufacturing
2015-03-20 23:41
134 查看
思路:类似背包,直接搞
View Code
#include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<map> #include<cmath> #include<queue> #include<cstring> #include<set> #include<stack> #include<string> #include<ctime> #define LL long long #define u64 unsigned long long #define maxn 100010 #define INF 0x3f3f3f3f #define eps 1e-6 using namespace std; int a[1010]; bool vi[500010] ; vector<int>q; set<int>ss; void solve(int n) { memset(vi,0,sizeof(vi)) ; vi[0]=true; int v,Max=0; for( int i = 1 ; i <= n ;i++){ for(int j = Max ; j >= 0 ;j--)if(vi[j]) { vi[j+a[i]]=true; } Max+=a[i]; } } int main() { int L,n,m,ans1,ans2,sum,a1,a2 ; int i,j,k,T ; cin >> T ; while(T--) { scanf("%d",&n) ; sum=0; for( i = 1 ; i <= n ;i++ ){ scanf("%d",&a[i]) ; sum += a[i] ; } solve(n) ; m = sum/2; for( i = m ; i >= 0 ;i--)if(vi[i]) break ; ans1=i ; ans2=sum-i; k=0; sum=0; scanf("%d",&n) ; for( i = 1 ; i <= n ;i++ ){ scanf("%d",&a[i]) ; sum += a[i] ; } solve(n) ; m = sum/2; for( i = m ; i >= 0 ;i--)if(vi[i]) break ; a1=i ; a2=sum-i; if(a2-a1 < ans2-ans1 || (a2-a1==ans2-ans1&&a1+a2 >ans2+ans1) ) { ans1=a1; ans2=a2; k = 1; } sum=0; scanf("%d",&n) ; for( i = 1 ; i <= n ;i++ ){ scanf("%d",&a[i]) ; sum += a[i] ; } solve(n) ; m = sum/2; for( i = m ; i >= 0 ;i--)if(vi[i]) break ; a1=i ; a2=sum-i; if(a2-a1 < ans2-ans1 || (a2-a1==ans2-ans1&&a1+a2 >ans2+ans1) ) { ans1=a1; ans2=a2; k = 2; } printf("%c %d %d\n",'A'+k,ans1,ans2) ; } return 0 ; }
View Code
相关文章推荐
- UVALive 4849 String Phone
- UVALive 4849 String Phone(2-sat、01染色)
- Blackberry Debug: Debug an application running on a live BlackBerry smartphone
- Cellphone Typing - UVaLive 6133 Trie树
- UVA 11243 Texas Trip ------ UVALIVE 3954 Phone Cell
- UVALive 6133 Cellphone Typing(字典树)
- UVALive 5809 Binary Matrix
- UVALive - 3720 Highways 组合计数
- UVALive 7037 The Problem Needs 3D Arrays(网络流)
- uvalive 5000 Electricity Connection
- UVALive 6531 Go up the ultras 单调栈+RMQ
- E - THE MATRIX PROBLEM UVALive - 5094
- UVALive 5103 Computer Virus on Planet Pandora Description 求模式串出现的种数 AC自动机
- UVALive - 7270 Osu! Master
- uvalive4256(DP)
- UVA Live 7693 (Codeforces Gym 101201B) Buggy Robot DP+bfs
- UVA343 UVALive5451 What Base Is This?【进制】
- Assigning Workstations(UVALive - 7423)
- UVALive 4126 Password Suspects(AC自动机 套 DP)
- UVALive - 4256 Salesmen (dp)