hdu 1455 ——sticks
来源:互联网 发布:黄金计划软件 编辑:程序博客网 时间:2024/05/08 08:02
深搜——剪枝
#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;bool cmp(int a,int b){return a>b;}int num[1000],vis[1000];int n,Sum;int s,K;int flag;//木棍序号 已完成边数 当前木棍长度 void dfs(int x,int k,int sum){ int i; int last=-1; if(flag) return; if(k==K-1) { flag=1; return ; } for(i=x;i<n;i++) { if(!vis[i]&&sum+num[i]<=s&&last!=num[i]) { last=num[i];vis[i]=1; if(sum+num[i]==s) dfs(0,k+1,0); else { dfs(i+1,k,sum+num[i]); vis[i]=0; if(flag||x==0)//x==0 缺了这个就超时 return; } } } int main(){int i;while(cin>>n&&n){Sum=0;memset(vis,0,sizeof(vis));for(i=0;i<n;i++){ cin>>num[i]; Sum+=num[i];}sort(num,num+n,cmp);for(i=num[0];i<=Sum;i++){if(Sum%i==0){ memset(vis,0,sizeof(vis)); s=i;K=Sum/i;flag=0;dfs(0,0,0);if(flag){printf("%d\n",i);break;}}}}return 0;}
- hdu 1455 ——sticks
- HDU 1455——Sticks(神棍)
- (step4.3.10)hdu 1455(Sticks——DFS)
- HDU 1455 Sticks
- Hdu 1455 Sticks
- hdu 1455 Sticks
- HDU 1455 Sticks
- hdu 1455 Sticks
- hdu 1455 Sticks
- HDU 1455 Sticks
- 【DFS】hdu 1455 Sticks
- Sticks hdu 1455
- hdu 1455 sticks
- HDU 1455 Sticks
- HDU 1455 Sticks
- HDU 1455 Sticks
- HDU 1455 Sticks
- day3 HDU 1455 Sticks
- 如何在一堆正整数中(数组arr)找出与给定正整数(num)最接近的那个数(result)
- objective-c实现authCode 解决php与ios通信加密的问题
- Goasm 里的label
- POJ 2983
- 文件上传和下载类
- hdu 1455 ——sticks
- BFC学习札记
- 杭电OJ—— 1017 A Mathematical Curiosity
- 攻防的艺术
- 2013蓝桥杯初赛 带分数
- java File 判断文件是否为符号链接
- NS2中有线网络trace文件分析脚本(awk)
- HTML中使用JS代码获取浏览器URL中的参数的方法
- 第七章 例7.5