hdu 1518 Square
2015-04-07 23:31
246 查看
关键在于优化剪枝
hint:这题的数据增强过,上面的代码已经不能AC了(抱歉今天才发现) 2015/11/9
#include<iostream> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; int mapp[20+5],visit[20+5]; int flag; int l,m; void dfs(int s,int x,int num) { visit[s]=1; if(x==l) num++,s=0,x=0; if(num==4) { flag=1;return; } if(flag) return; for(int i=s+1;i<m;i++)//每次都从0开始跑会超时 { if(!visit[i]&&x+mapp[i]<=l) dfs(i,x+mapp[i],num),visit[i]=0; } } int main() { int t; scanf("%d",&t); while(t--) { cin>>m; int sum=0; for(int i=0;i<m;i++) scanf("%d",&mapp[i]),sum+=mapp[i]; sort(mapp,mapp+m); if(sum%4!=0||m<4||mapp[m-1]>sum/4) { cout<<"no"<<endl; continue; } l=sum/4; memset(visit,0,sizeof(visit)); flag=0; dfs(0,mapp[0],0); if(flag) cout<<"yes"; else cout<<"no"; cout<<endl; } return 0; }
hint:这题的数据增强过,上面的代码已经不能AC了(抱歉今天才发现) 2015/11/9
相关文章推荐
- hdu 1518 Square
- CSU-ACM2017暑期训练4-dfs H- Square HDU - 1518
- hdu 1518 Square (dfs)
- HDU 1518 Square(深搜)
- hdu 1518 Square
- HDU ACM 1518 Square (DFS)
- hdu 1518 Square
- hdu 1518 square
- HDU1518——Square(正方形问题)
- HDU 1518 Square (DFS+剪枝)
- POJ 2362 && HDU 1518 Square(dfs)
- hdu 1518 Square(DFS)
- HDU-1518-Square
- HDU 1518--Square(DFS)
- hdu 1518 Square(dfs)
- HDU 1518 Square 搜索
- HDU 1518 Square(DFS)
- HDU--杭电--1518--Square--深搜--要剪枝
- HDU 1518题 Square (DFS)
- 返回长度hdu 1518 square