poj 1011
来源:互联网 发布:java打印word文档 编辑:程序博客网 时间:2024/06/05 03:04
参考原po : http://blog.csdn.net/lyy289065406/article/details/6647960
#include<iostream> #include<map>#include<string> #include<algorithm> #include<fstream>#include<cmath> #include<vector>#include<queue>#include<map>#include<math.h>using namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1|1) #define sqr(i) ((i)*(i)) #define pii pair<int,int> #define mp make_pair #define FOR(i,b,e) for(int i=b;i<=e;i++) #define FORE(i,b,e) for(int i=b;i>=e;i--) #define ms(a) memset(a,0,sizeof(a)) const int maxnum =21252;const int mod = 10007;int n,m;int ssum,st;int vec[64];bool visit[64];bool dfs(int di,int sum,int lastp,int num){if(num==n)return true;int unfit=0;FORE(i,lastp-1,0){if(visit[i]||vec[i]==unfit)continue;visit[i]=1;if(vec[i]+sum<di){if(dfs(di,sum+vec[i],i,num+1)){return true;}}else if(vec[i]+sum==di){unfit=0;if(dfs(di,0,n,num+1))//vec[i]灵活度最低,留给其他棍子灵活度最高也失败,剩下方案也失败return true;/*else{visit[i]=0;return false;}*/}unfit = vec[i];visit[i]=0;if(sum==0)break;}return false;}int cmp(const void* a,const void* b){return *(int*)a-*(int*)b;}//int main() { #ifdef _DEBUG_fstream fin("G:/1.txt");#else#define fin cin#endiffor(;;){fin>>n;if(!n)break;ssum=st=0;ms(vec);ms(visit);FOR(i,0,n-1){fin>>vec[i];ssum+=vec[i];}qsort(vec,n,sizeof(int),cmp);int flag=0;for(int i=vec[n-1];i<=ssum-i;i++){if(ssum%i==0){if(i>=st&&dfs(i,0,n,0)){printf("%d\n",i);flag=1;break;}}}if(!flag)printf("%d\n",ssum);}return 0;}
0 0
- poj 1011
- poj 1011
- POJ-1011
- POJ 1011
- poj 1011
- poj 1011
- POJ-1011
- poj 1011
- poj 1011
- poj 1011
- poj 1011
- POJ 1011
- POJ 1011
- POJ 1011
- POJ 1011
- poj 1011
- POJ 1011
- POJ 1011
- leetcode之House Robber(打家劫舍)
- C数据结构学习历程(3) 顺序栈之 一般表达式转化后缀式
- Linux下实现一个带时标的消息打印
- jdk升级
- synchronized详解
- poj 1011
- 2015 11 03 内存分区
- [JPA错误]javax.persistence.EntityNotFoundException: Unable to find xxx
- 字符串回文子序列问题
- cjson不连续存储问题
- UML——类图,对象图,包图
- Mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost'问题的解决
- 7.1
- IOS开发 - KVC和KVO的使用