UVA 11218 - KTV DFS
来源:互联网 发布:matlab中保存数据 编辑:程序博客网 时间:2024/06/11 05:48
深搜。。。。。。。
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;typedef struct node{ int a,b,c,s; node(int x=0,int y=0,int z=0,int d=0) { a=x,b=y,c=z,s=d; }} node;node g[81];bool vis[10];int n,maxx;bool check(){ for(int i=1; i<=9; i++) if(!vis[i]) return false; return true;}void dfs(int cur,int team,int p){ if(cur==n) return ; for(int i=cur; i<n; i++) { int a=g[i].a; int b=g[i].b; int c=g[i].c; if(vis[a]||vis[b]||vis[c]) continue ; vis[a]=vis[b]=vis[c]=true; if(team==3) { if(check()) maxx=max(maxx,p+g[i].s); vis[a]=vis[b]=vis[c]=false; continue; } dfs(i+1,team+1,p+g[i].s); vis[a]=vis[b]=vis[c]=false; }}int main(){// freopen("in.txt","r",stdin); int cas=0; while(scanf("%d",&n)!=EOF&&n) { for(int i=0; i<n; i++) { int a,b,c,d; scanf("%d%d%d%d",&a,&b,&c,&d); node t(a,b,c,d); g[i]=t; } memset(vis,false,sizeof(vis)); maxx=0; dfs(0,1,0); if(maxx) printf("Case %d: %d\n",++cas,maxx); else printf("Case %d: -1\n",++cas); } return 0;}
- uva 11218 KTV(DFS)
- UVA 11218 - KTV DFS
- uva 11218 KTV(DFS+回溯)
- UVA --11218 KTV(DFS+回溯)
- 11218 - KTV(dfs)
- UVa 11218 KTV
- UVA 11218 - KTV
- uva 11218 - KTV
- uva 11218 - KTV
- UVa 11218 - KTV
- Uva 11218 - KTV
- uva 11218 KTV
- uva 11218 - KTV
- UVa 11218—KTV
- UVa 11218 - KTV
- UVa 11218 - KTV
- uva 11218 - KTV 简单回溯
- UVA 11218 KTV 深搜+回溯
- Apple推送通知服务教程 PART-1
- iOS7 系统版本判断
- 2013-08-09 android tcp server
- C#导出到Excel
- sse float 转int 截断和不截断
- UVA 11218 - KTV DFS
- aix poll tcp
- iOS -- 图片与视频一次性多选
- 虚拟机的Linux下如何以host-only方式设置,使Linux上网
- 不是技术牛人,如何拿到国内IT巨头的Offer
- 【Android】将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)
- hibernate 调用存储过程 sql server 2005 -insert update delete find
- Java监听器Listener使用说明
- Android 获取闹钟引发的血案