• UVA, 562 Dividing coins


    题意:给你n组数据,每组数据首先输入一个m,代表m个硬币的值,求将这些硬币分为俩堆,俩堆硬币值差值最小

    …………ps:最开始一头雾水……然后看到了某位大神说这是背包问题,结果曲解了大神的意思,捣鼓了半天错误代码,最后仔细看了看大神的代码,然后,就没有然后了 (╯‵□′)╯︵┻━┻

    思路:动态规划,子集和加总,背包

     1 #include <iostream>
     2 #include <cstring>
     3 #include <cstdio>
     4 #include <algorithm>
     5 
     6 using namespace std;
     7 int n,m,coin[101];
     8 int sum;
     9 bool f[1000000];
    10 
    11 void datecin(int m)
    12 {
    13     sum=0;
    14     for(int i=0;i<m;i++)
    15     {
    16         scanf("%d",&coin[i]);
    17         sum+=coin[i];
    18     }
    19     memset(f,0,sizeof(f));
    20 }
    21 void datecal(int weight,int num)
    22 {
    23     f[0]=1;
    24     for(int i=0;i<num;i++)//统计coin[0]~[num]]的和
    25     {
    26         for(int j=weight;j>=coin[i];j--)
    27         {
    28             if(f[j-coin[i]]==1)
    29                 f[j]=1;
    30         }
    31     }
    32     for(int i=sum/2;i>=0;i--)
    33     {
    34         if(f[i]==1)
    35         {
    36             printf("%d
    ",sum-2*i);
    37             return ;
    38         }
    39     }
    40 }
    41 int main()
    42 {
    43     scanf("%d",&n);
    44     while(n--)
    45     {
    46         scanf("%d",&m);
    47         datecin(m);
    48         datecal(sum,m);
    49     }
    50     return 0;
    51 }
  • 相关阅读:
    php类型转换
    PHP标记
    使用PHP从web访问mysql数据库
    javascript string对象的属性与方法
    linux vim 常用命令
    添加事件监听兼容IE6-8
    js-jQuery对象与dom对象相互转换
    js 数组
    js正则表达式
    选择排序
  • 原文地址:https://www.cnblogs.com/byzsxloli/p/5436076.html
Copyright © 2020-2023  润新知