Problem K

KTV

解题思路:题目的意思是说9个人平均分成三组,题目的输出提供分组的情况,每组有一个权值,在找到三组刚好是不同9个人的前提下求出最大的权值,如果连一种找齐的情况都没有则输出-1,所以就直接一层一层以两个分支往下查找就行了

题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=112&page=show_problem&problem=2159

 1 #include<iostream>
 2 #include<cstring>
 3 #include<algorithm>
 4 #define SIZE 81
 5 using namespace std;
 6 typedef struct group{
 7     int member[3];
 8     int score;
 9 }group;
10 int n, score;
11 group Case[SIZE];
12 int ktv[10], list[3];
13
14 void Traverse(int cur, int cnt){
15     if(cur >= n || cnt == 3){
16         if(cnt == 3){
17             int sum = 0;
18             for(int i=0; i<3; ++i){
19                 sum += Case[list[i]].score;
20             }
21             if(sum > score) score = sum;
22         }
23         return;
24     }
25     bool flag = false;
26     for(int i=0; i<3; ++i){
27         if(ktv[Case[cur].member[i]] == 1){
28             flag = true;
29             break;
30         }
31     }
32     if(!flag){
33         for(int i=0; i<3; ++i){
34             ktv[Case[cur].member[i]] = 1;
35         }
36         list[cnt] = cur;
37         Traverse(cur+1, cnt+1);
38         for(int i=0; i<3; ++i){
39             ktv[Case[cur].member[i]] = 0;
40         }
41     }
42     Traverse(cur+1, cnt);
43     return;
44 }
45
46 int main()
47 {
48     #ifndef ONLINE_JUDGE
49     freopen("input.txt", "r", stdin);
50     #endif
51     int T = 0;
52     while(cin>>n && n){
53         score = -1;
54         memset(ktv, 0, sizeof(ktv));
55         for(int i=0; i<n; ++i){
56             for(int j=0; j<3; ++j){
57                 cin>>Case[i].member[j];
58             }
59             cin>>Case[i].score;
60         }
61         Traverse(0, 0);
62         cout<<"Case "<<++T<<": "<<score<<endl;
63     }
64     return 0;
65 }

转载于:https://www.cnblogs.com/liaoguifa/archive/2013/05/13/3075884.html

Uva 11218 - KTV相关推荐

  1. 提取了下刘汝佳推荐的题号...

    今天闲来没事上uva oj提取了下刘汝佳推荐的acm题号,原始数据如下: Volume 0. Getting Started    10055 - Hashmat the Brave Warrior ...

  2. PC/UVA 110207/10258

    uva上面题的的输入输出格式 各种怪 晚几天会整理下 放上. 2.8.7比赛记分板 输入 :第一行为一个整数  表示测试数据的组数,接下来一行空行.以后每两组测试数据之间一组空行隔开(各组数据的多少不 ...

  3. 劲歌金曲 UVA 12563

    劲歌金曲 UVA 12563 (If you smiled when you see the title, this problem is for you ^_^) For those who don ...

  4. Uva 12563,劲歌金曲,01背包

    题目链接:https://uva.onlinejudge.org/external/125/12563.pdf 题意:n首歌,每首歌的长度给出,还剩 t 秒钟,由于KTV不会在一首歌没有唱完的情况下切 ...

  5. [搜索]UVa 129 困难的串

    题意:将一个包含两个相邻的重复子串的子串,称为"容易的串",其他为"困难的串". 输入正整数n和l,输出由前l个字符组成的,字典序第n小的困难的串. 输入样例: ...

  6. uva 401.Palindromes

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  7. Uva 3767 Dynamic len(set(a[L:R])) 树套树

    Dynamic len(set(a[L:R])) Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 https://uva.onlinejudge.org/in ...

  8. UVA 11752 超级幂

    UVA 11752 超级幂 Z - The Super Powers Time Limit:1000MS     Memory Limit:0KB     64bit IO Format:%lld & ...

  9. UVa 11174 - Stand in a Line

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...

最新文章

  1. 关于ubuntu 16.04 docker常用命令
  2. Python进阶06 循环对象与迭代
  3. Win32使用Windows公共控件库创建工具条
  4. 为什么volatile不能保证原子性而Atomic可以?
  5. win10 linux uefi启动不了系统安装教程,【从踩坑到教程】win10下ubuntu18.04双系统UEFI模式安装、Nvidia驱动安装...
  6. Math、Date内置对象方法整理
  7. Spark内核解析之五:Spark Shuffle解析
  8. jQuery中的编程范式
  9. 君康人寿2019年排名_君康人寿易主后 内部提出五年上市计划
  10. 【软件测试学习笔记】易用性测试概念及测试项总结
  11. matlab分段函数怎么画图_关于MATLAB中分段函数的画法
  12. 申论高分作者心得分享——站在政府的角度写申论
  13. 读研规划,准研究生们看看哦!!!!!!!!!!!!!
  14. 学生学籍管理系统课程设计报告书
  15. [python] 正则
  16. sql server创建数据库代码模板
  17. 【微信支付付款至零钱】
  18. 流利说英语level4_英语流利说懂你英语 Level4 Unit1 Part1 Vocabulary
  19. SI信号仿真及软件 HyperLynx
  20. 2023华为OD机试备考攻略 以及题库目录分值说明 考点说明

热门文章

  1. settings.xml的配置
  2. 单系统站内信设计概述(满足百万级信息)
  3. crond服务及用法
  4. java封装为so,java挪用.so文件
  5. es6添加删除class_es6-class的基本用法
  6. parallels网络初始化失败_出神入化:特斯拉AI主管、李飞飞高徒Karpathy的33个神经网络炼丹技巧...
  7. php顶级框架,10个顶级PHP开源项目「2019」
  8. linux 内核任务调度,Linux任务调度
  9. 做好前端的话HTML和CSS基础必须夯实!
  10. QT保留小数点后几位