• hdu4422The Little Girl who Picks Mushrooms


    4422

    小于等于3 的时候就是1024 4的时候 讨论 5的时候讨论 注意重量为0的情况

     1 #include <iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #include<stdlib.h>
     6 #include<cmath>
     7 using namespace std;
     8 int a[10];
     9 int n;
    10 int main()
    11 {
    12     int i,j,g;
    13     while(scanf("%d",&n)!=EOF)
    14     {
    15         int sum=0;
    16         for(i = 1; i <= n ; i++)
    17         {
    18             scanf("%d",&a[i]);
    19             sum+=a[i];
    20         }
    21         if(n<=3)
    22         {
    23             printf("1024
    ");
    24             continue;
    25         }
    26         else
    27         {
    28             if(n==4)
    29             {
    30                 int flag = 0;
    31                 for(i = 1; i <= n ; i++)
    32                 {
    33                     int s1 = 0;
    34                     for(j = 1 ; j <= n ; j++)
    35                     if(j!=i)
    36                     s1+=a[j];
    37                     if(s1%1024==0)
    38                     {
    39                         flag = 1;
    40                         break;
    41                     }
    42                 }
    43                 int maxz=0;
    44                 for(i = 1; i <= n ; i++)
    45                     for(j = 1; j <= n ; j++)
    46                     {
    47                         if(j!=i)
    48                         {
    49                             if(a[i]+a[j])
    50                             {
    51                                 if((a[i]+a[j])%1024==0)
    52                                 maxz = 1024;
    53                                 else
    54                                 maxz = max(maxz,(a[i]+a[j])%1024);
    55                             }
    56                         }
    57                     }
    58                 if(flag)
    59                 printf("1024
    ");
    60                 else
    61                 printf("%d
    ",maxz);
    62             }
    63             else
    64             {
    65                 int maxz = 0;
    66                 for(g = 1; g <= n ; g++)
    67                 {
    68                     for(i = 1; i <= n ; i++)
    69                     {
    70                         if(i==g) continue;
    71                         int s1 = 0;
    72                         for(j = 1 ; j <= n ; j++)
    73                         if(j!=i&&j!=g)
    74                         s1+=a[j];
    75                         if(s1%1024==0)
    76                         {
    77                             if((sum-s1)&&(sum-s1)%1024==0)
    78                             maxz = 1024;
    79                             else
    80                             maxz = max(maxz,(sum-s1)%1024);
    81                         }
    82                     }
    83                 }
    84                 printf("%d
    ",maxz);
    85             }
    86         }
    87     }
    88     return 0;
    89 }
    View Code
  • 相关阅读:
    前端组件库
    lazyload隐藏元素不生效处理方法
    Javascript规范
    发送验证码
    flex
    css3转圈
    1.15考试总结
    [violet]蒲公英题解
    ubuntu和windows下的程序对拍
    [Poetize6] IncDec Sequence题解
  • 原文地址:https://www.cnblogs.com/shangyu/p/3401087.html
Copyright © 2020-2023  润新知