tyvj 1194 划分大理石(多重背包)
2024-09-05 21:52:28
解题思路
二进制优化多重背包裸题。
代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
using namespace std;
const int MAXN = 120005;
inline int rd(){
int x=0,f=1;char ch=getchar();
while(!isdigit(ch)) {f=ch=='-'?0:1;ch=getchar();}
while(isdigit(ch)) {x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}
return f?x:-x;
}
int sum,f[MAXN];
vector<int> v;
int main(){
while(1){
int x;memset(f,0,sizeof(f));f[0]=1;v.clear();sum=0;
for(int i=1;i<=6;i++){
x=rd();sum+=i*x;
for(int j=1;j<=x;j<<=1)
v.push_back(i*j),x-=j;
if(x) v.push_back(i*x);
}
if(!sum) break;
int Max=0;if((sum&1)) {puts("Can't");continue;}
for(int i=0;i<v.size();i++){
Max+=v[i];Max=min(Max,sum);
for(int j=Max;j>=v[i];j--)
f[j]|=f[j-v[i]];
}
if(f[sum/2]) puts("Can");
else puts("Can't");
}
return 0;
}
最新文章
- Leetcode, construct binary tree from inorder and post order traversal
- 多个不同的app应用间应该如何进行消息推送呢?
- (转载)solr时区问题解决方案
- poj3342Party at Hali-Bula(树形dp)
- Windows Azure Web Site (13) Azure Web Site备份
- HttpClientHandler
- magento2 客户端模式less样式修改。
- JAVA解析xml的五种方式比较
- PHP扩展开发(2) - VS2013环境搭建
- 解决gradle:download特别慢的问题
- 一个RPC的demo
- android usb挂载分析
- MySQL常用数值函数
- Latex 自定义命令:用于一些特殊单词的显示
- 【数据库】SQL语句解析
- Oracle推进SCN系列:使用oradebug在mount状态下推进SCN
- Spring+SpringMVC+mybatis框架整合
- 死无对证:tomcat7 + 中文cookie + goLang
- QT Creator 环境使用 remote debug 调试 arm 程序
- ubuntu普通账户获取root权限的方法以及su和su -的区别