zoukankan      html  css  js  c++  java
  • uva 10032 Problem F: Tug of War

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=973

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <algorithm>
     4 #define ll long long
     5 using namespace std;
     6 
     7 int w[5000];
     8 int n;
     9 ll dp[50000];
    10 
    11 int main()
    12 {
    13     int t;
    14     scanf("%d",&t);
    15     while(t--)
    16     {
    17         scanf("%d",&n);
    18         int sum=0;
    19         for(int i=0; i<n; i++)
    20         {
    21             scanf("%d",&w[i]);
    22             sum+=w[i];
    23         }
    24         memset(dp,0,sizeof(dp));
    25         dp[0]=1;
    26         for(int i=0; i<n; i++)
    27         {
    28             for(int j=sum; j>=w[i]; j--)
    29             {
    30                 dp[j] |= dp[j-w[i]]<<1;
    31             }
    32         }
    33         int ans1=0,ans2=0x3f3f3f3f;
    34         for(int i=0; i<=sum; i++)
    35         {
    36             for(int j=0; j<=(n+1)/2; j++)
    37             {
    38                 if(dp[i]&(1ll<<j) && abs(2*j-n)<=1)
    39                 {
    40                     if(abs(sum-2*i)<ans2-ans1)
    41                     {
    42                         ans2=max(sum-i,i);
    43                         ans1=min(sum-i,i);
    44                     }
    45                 }
    46             }
    47         }
    48         printf("%d %d
    ",ans1,ans2);
    49         if(t) printf("
    ");
    50     }
    51     return 0;
    52 }
    View Code
  • 相关阅读:
    bzoj1711
    bzoj1458
    bzoj1433
    hdu2732
    bzoj1066
    hdu3549
    poj1698
    [ZJOI2007]时态同步
    SA 学习笔记
    [LUOGU]2016 Sam数
  • 原文地址:https://www.cnblogs.com/fanminghui/p/4021345.html
Copyright © 2011-2022 走看看