HDU 1059 Dividing 多重背包 .
来源:互联网 发布:苹果铃声mac 编辑:程序博客网 时间:2024/06/13 15:16
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1059
二进制优化
#include <iostream>#include <algorithm>#include <cstring>#include <cstdio>using namespace std;int num[7];bool d[80000+5];int main(int argc, char const *argv[]){int kase=0;for(;;){int sum=0;for(int i=1;i<=6;i++){scanf("%d",&num[i]);sum+=num[i]*i;}if(sum==0) break;if(sum%2) {printf("Collection #%d:\nCan't be divided.\n\n",++kase);continue;}int half=sum/2;memset(d,false,sizeof(d));d[0]=true;for(int i=1;i<=6;i++){if(num[i]==0) continue;int n=num[i],k=1;if(n*i>=half){for(int j=i;j<=half;j++)if(d[j-i]) d[j]=true;continue;}while(n>k){for(int j=half;j>=k*i;j--)if(d[j-k*i]) d[j]=true;n-=k; k<<=1;}for(int j=half;j>=n*i;j--)if(d[j-n*i]) d[j]=true;n-=k; k<<=1;}printf("Collection #%d:\n%s\n\n",++kase,d[half]?"Can be divided.":"Can't be divided.");}return 0;}
0 0
- hdu 1059 Dividing 多重背包
- hdu 1059 Dividing(多重背包)
- hdu 1059 Dividing(多重背包)
- HDU 1059 Dividing(多重背包)
- hdu 1059 Dividing 多重背包
- Hdu 1059 Dividing -- 多重背包
- hdu 1059 Dividing 多重背包
- HDU-1059-Dividing-多重背包
- HDU-1059 Dividing 多重背包
- hdu 1059 Dividing (多重背包)
- HDU 1059 Dividing 多重背包
- Hdu 1059 Dividing (多重背包)
- HDU 1059 Dividing 多重背包
- hdu-1059-多重背包-Dividing
- HDU 1059 Dividing 多重背包
- HDU 1059 Dividing(多重背包)
- 【多重背包】HDU 1059 Dividing
- hdu 1059 Dividing 多重背包
- byte(字节)根据长度转成KB(千字节)和MB(兆字节)
- 如何查询没有自增非空数字主键的表?
- 选择排序
- Swift 09 适配器模式 Adapter pattern
- 深度学习一
- HDU 1059 Dividing 多重背包 .
- kmp算法(字符串匹配)
- asynchttpclient的post方法发送json格式参数和表单格式参数
- Swift 10 组合模式 Composite Pattern
- 控制DIV的选取
- Angularjs 学习笔记(一)基础
- mysql之给字段设置缺省值
- nefu1121第k个序列(dfs)
- iOS swift-桥接OC的开源框架