UVa 11218 - KTV
来源:互联网 发布:佛山软件产业园招聘 编辑:程序博客网 时间:2024/06/10 18:35
题意:让你从n种搭配中,选出3个,使得选出的9个数字巧好是“1~9”不重复,在所有符合条件的情况中输出分数最高的情况。
解法:dfs回溯,即:枚举出所有符合条件的情况从中选出分数最高的那个。
代码如下:
#include <iostream>#include <algorithm>#include <cstring>#include <cstdlib>#include <cstdio>#include <cmath>using namespace std;int num, _max;bool vis[11];struct group{ int a, b, c, d;} g[85];void dfs(int cur, int score){ if(cur >= 3) { if(_max < score) _max = score; return ; } for(int i=0; i<num; i++) if(vis[g[i].a] && vis[g[i].b] && vis[g[i].c]) { vis[g[i].a] = vis[g[i].b] = vis[g[i].c] = false; dfs(cur + 1, score + g[i].d); vis[g[i].a] = vis[g[i].b] = vis[g[i].c] = true; }}int main(){#ifdef test freopen("sample.txt", "r", stdin);#endif int cc = 1; memset(vis, true, sizeof(vis)); while(scanf("%d", &num) && num) { _max = -1; for(int i=0; i<num; i++) scanf("%d%d%d%d", &g[i].a, &g[i].b, &g[i].c, &g[i].d); dfs(0, 0); printf("Case %d: %d\n", cc++, _max); } return 0;}
- UVa 11218 KTV
- UVA 11218 - KTV
- uva 11218 - KTV
- uva 11218 - KTV
- UVa 11218 - KTV
- Uva 11218 - KTV
- uva 11218 KTV(DFS)
- UVA 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(DFS+回溯)
- UVa 11218 KTV (枚举&位运算)
- UVA - 11218 KTV(暴力求解)
- js实现简单漂亮的日历
- 在证书存储区中找不到清单签名证书
- TCPDUMP数据抓包
- 断点的QQ伤感空间日志分享:止不住的泪,止不住的伤
- BaseAdapter notifyDataSetChanged()
- UVa 11218 - KTV
- android 用拼音对汉字排序
- 关于在linux下利用crontab技术实现java代码的定时执行
- Mahout关联规则源码分析(1)
- 中缀表达式转换为后缀表达式(栈的使用)
- HashMap的keyset与value的对应
- 如安在视图类中获取主窗口指针
- 多年以后,你未嫁,我未娶,我们能不能在一起。。
- Flash of Unstyled Content (FOUC)