首页 > 其他 > 详细

POJ 1014

时间:2016-08-05 21:19:25      阅读:142      评论:0      收藏:0      [点我收藏+]
//复杂度n5,降1次就过了哈哈哈哈哈,看来没有其他简单的方法了lol 
#include<stdio.h>
#include<iostream>
using namespace std;
bool check(int *a,int half){
	for(int n1=0;n1<=a[1];n1++)
		for(int n2=0;n2<=a[2];n2++)
		   for(int n3=0;n3<=a[3];n3++)
	          for(int n4=0;n4<=a[4];n4++)
	             for(int n5=0;n5<=a[5];n5++){
				       int tmp=(half-(n1*1+n2*2+n3*3+n4*4+n5*5)); 
					   /*cout<<n1<<‘ ‘<<n2<<‘ ‘<<n3<<‘ ‘<<n4<<‘ ‘<<n5<<"tmp"<<tmp<<endl;*/
					   if(tmp%6==0&&tmp>=0&&tmp/6<=a[6])
					    return true;
				     }
    return false;					             
}


int main(){
	int a[7];
	int t=1;
	while(scanf("%d%d%d%d%d%d",a+1,a+2,a+3,a+4,a+5,a+6)&&(a[1]!=0||a[2]!=0||a[3]!=0||a[4]!=0||a[5]!=0||a[6]!=0)){
		int sum=0;
		for(int i=1;i<=6;i++)
		sum+=i*a[i];
		if(sum%2!=0||!check(a,sum/2)) 
		printf("Collection #%d:\nCan‘t be divided.\n\n",t++);
		else
		printf("Collection #%d:\nCan be divided.\n\n",t++);
	}
	return 0;
} 

  

POJ 1014

原文:http://www.cnblogs.com/lsj2020/p/5742714.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!