AC日记——Dividing poj 1014
| Time Limit: 1000MS | Memory Limit: 10000K | |
| Total Submissions: 69575 | Accepted: 18138 |
Description
Input
The last line of the input file will be "0 0 0 0 0 0"; do not process this line.
Output
Output a blank line after each test case.
Sample Input
1 0 1 2 0 0
1 0 0 0 1 1
0 0 0 0 0 0
Sample Output
Collection #1:
Can't be divided. Collection #2:
Can be divided.
Source
#include<cstdio>
#include<cstring> using namespace std; int a[],sum_value=,ci[][],now=; bool dp[][]; bool Check_Answer()
{
memset(dp,false,sizeof(dp));
dp[][]=true;
for(int i=;i<=;i++)
{
for(int j=;j<=sum_value;j++)
{
if(dp[i][sum_value]) return true;
if(dp[i-][j])
{
for(int v=;v<=a[i];v++) dp[i][j+ci[i][v]]=true;
}
}
}
if(dp[][sum_value]) return true;
else return false;
} int main()
{
bool if_break;
while()
{
if_break=true,sum_value=,now++;
for(int i=;i<=;i++)
{
scanf("%d",&a[i]);
if(a[i]) if_break=false;
sum_value+=a[i]*i;
for(int j=;j<=a[i];j++) ci[i][j]=i*j;
}
if(if_break) break;
if(sum_value%)
{
printf("Collection #%d:\nCan't be divided.\n\n",now);
continue;
}
sum_value/=;
if(Check_Answer()) printf("Collection #%d:\nCan be divided.\n\n",now);
else printf("Collection #%d:\nCan't be divided.\n\n",now);
}
return ;
}
另附我的一个失败代码:
#include<cstdio>
#include<cstring> using namespace std; int a[],sum_value,num,ci[],flag; bool dp[]; int main()
{
int now=;
while()
{
now++;
memset(dp,false,sizeof(dp));
sum_value=,num=,flag=;
bool if_break=true;
for(int i=;i<=;i++)
{
scanf("%d",&a[i]);
sum_value+=a[i]*i,num+=a[i];
if(a[i]!=)
{
if_break=false;
for(int j=flag;j<flag+a[i];j++) ci[j]=i;
flag+=a[i];
}
}
if(if_break) break;
if(sum_value%)
{
printf("Collection #%d:\nCan't be divided.\n\n",now);
continue;
}
sum_value/=;
int max_now=;
dp[]=true;
for(int i=;i<=num;i++)
{
int max_now_=max_now;
for(int j=;j<=max_now;j++)
{
if(dp[j])
{
dp[j+ci[i]]=true;
if(j+ci[i]==sum_value)
{
printf("Collection #%d:\nCan be divided.\n\n",now);
if_break=true;
break;
}
if(j+ci[i]>max_now_&&j+ci[i]<=sum_value) max_now_=j+ci[i];
}
}
max_now=max_now_;
if(if_break) break;
}
if(if_break) continue;
printf("Collection #%d:\nCan't be divided.\n\n",now);
}
return ;
}
AC日记——Dividing poj 1014的更多相关文章
- AC日记——Tree poj 3237
Tree Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 9233 Accepted: 2431 Description ...
- AC日记——Crane poj 2991
POJ - 2991 思路: 向量旋转: 代码: #include <cmath> #include <cstdio> #include <cstring> #in ...
- AC日记——pigs poj 1149
POJ - 1149 思路: 最大流: 代码: #include <cstdio> #include <cstring> #include <iostream> # ...
- Dividing POJ - 1014 多重背包二进制优化
多重背包模型 写的时候漏了一个等号找了半天 i<<=1 !!!!!! #include<iostream> #include<cstdio> #include&l ...
- AC日记——Dining poj 3281
[POJ-3281] 思路: 把牛拆点: s向食物连边,流量1: 饮料向t连边,流量1: 食物向牛1连边,流量1: 牛2向饮料连边,流量1: 最大流: 来,上代码: #include <cstd ...
- AC日记——Two poj 1849
Two 思路: 树形DP求直径: 答案是边权总和*2-直径: dp[i][1]::以i为根的子树中最长的路径: dp[i][0]::以i为根的子树中次长的路径: 来,上代码: #include < ...
- AC日记——Oulipo poj 3461
Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 37958 Accepted: 15282 Description The ...
- 证明 poj 1014 模优化修剪,部分递归 有错误
这个问题是存在做.我发现即使是可行的一个问题,但不一定正确. 大部分数据疲软,因为主题. id=1014">poj 1014 Dividing 题目大意:有6堆石头,权重分别为1 2 ...
- AC日记——codevs1688求逆序对
AC日记--codevs1688求逆序对 锵炬 掭约芴巷 枷锤霍蚣 蟠道初盛 到被他尽情地踩在脚下蹂躏心中就无比的兴奋他是怎么都 ㄥ|囿楣 定要将他剁成肉泥.挫骨扬灰跟随着戴爷这么多年刁梅生 圃鳋 ...
随机推荐
- JavaScript基础18——js的Array对象
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- SharePoint 2010: Export User Profile Properties to a Text File or Excel using PowerShell
导出到txt [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server") ...
- Android基础面试题
1. 请描述一下Activity 生命周期. 答: 如下图所示.共有七个周期函数,按顺序分别是: onCreate(), onStart(), onRestart(), onResume(), onP ...
- Troubleshooting FIM: (No Display Name) in FIM Portal
from: http://social.technet.microsoft.com/wiki/contents/articles/12682.troubleshooting-fim-no-displa ...
- Android studio 使用SVN需要忽略的文件
Android Studio创建的Android项目一般需要忽略 1..idea文件夹 2..gradle文件夹 3.所有的build文件夹 4.所有的.iml文件 5.local.propertie ...
- Markdown语法手册
Markdown 语法手册 Markdown 是一种轻量级标记语言,能将文本换成有效的XHTML(或者HTML)文档,它的目标是实现易读易写,成为一种适用于网络的书写语言. Markdown 语法简洁 ...
- iOS开发之集成百度地图踩过的那些坑(基于 Xcode7.0/iOS9.2)
本篇分4步讲述如何在项目中集成百度地图: 第一步:创建项目 第二步:利用 cocoaPod 导入百度地图的 SDK(pod 'BaiduMapKit' #百度地图SDK) 第三步:在 pch 文件中导 ...
- SQL速记
集合操作 WITH a AS ( SELECT 1 id UNION SELECT 2 ), b AS ( SELECT 1 id UNION SELECT 3 ) SELECT * FR ...
- win环境变量立即生效
执行 set PATH=C: 新打开的cmd窗口就立即生效了.
- 什么是ODBO---OLE DB for OLAP
我怎么一步一步追到ODBO了? mondrian核心api->olap4j->jedox也在用olap4j->ODBO? ODBO是什么呢? OLE DB for OLAP ...