UVa 11218 KTV (枚举&位运算)

11218 - KTV

Time limit: 3.000 seconds

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

One song is extremely popular recently, so you and your friends decided to sing it in KTV. The song has 3 characters, so exactly 3 people should sing together each time (yes, there are 3 microphones in the room). There are exactly 9 people, so you decided that each person sings exactly once. In other words, all the people are divided into 3 disjoint groups, so that every person is in exactly one group.

However, some people don't want to sing with some other people, and some combinations perform worse than others combinations. Given a score for every possible combination of 3 people, what is the largest possible score for all the 3 groups?

Input

The input consists of at most 1000 test cases. Each case begins with a line containing a single integern (0 < n < 81), the number of possible combinations. The next n lines each contains 4 positive integers a, b, c,s (1 <= a < b < c <= 9, 0 < s < 10000), that means a score ofs is given to the combination (a,b,c). The last case is followed by a single zero, which should not be processed.

Output

For each test case, print the case number and the largest score. If it is impossible, print -1.

Sample Input

3
1 2 3 1
4 5 6 2
7 8 9 3
4
1 2 3 1
1 4 5 2
1 6 7 3
1 8 9 4
0

Output for the Sample Input

Case 1: 6
Case 2: -1

O(n^3)枚举所有可能的情况并取最大值。

注意用位运算加快速度。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索位运算
, winforms ktv
, each
, exactly
, The
, some
运算符&amp;&amp;
9126 11218、svt11218scw、java 枚举、c 枚举、枚举类型enum用法,以便于您获取更多的相关知识。

时间: 2024-09-29 14:14:23

UVa 11218 KTV (枚举&amp;位运算)的相关文章

C语言学习教程第八章-枚举、位运算(5)

二.位域的使用位域的使用和结构成员的使用相同,其一般形式为: 位域变量名·位域名 位域允许用各种格式输出.main(){struct bs{unsigned a:1;unsigned b:3;unsigned c:4;} bit,*pbit;bit.a=1;bit.b=7;bit.c=15;printf("%d,%d,%d\n",bit.a,bit.b,bit.c);pbit=&bit;pbit->a=0;pbit->b&=3;pbit->c|=1;p

C语言学习教程第八章-枚举、位运算(3)

位运算 前面介绍的各种运算都是以字节作为最基本位进行的. 但在很多系统程序中常要求在位(bit)一级进行运算或处理.C语言提供了位运算的功能, 这使得C语言也能像汇编语言一样用来编写系统程序.一.位运算符C语言提供了六种位运算符:& 按位与| 按位或^ 按位异或~ 取反<< 左移>> 右移 1. 按位与运算 按位与运算符"&"是双目运算符.其功能是参与运算的两数各对应的二进位相与.只有对应的两个二进位均为1时,结果位才为1 ,否则为0.参与运算的

uva 11218 - KTV

点击打开链接 题目意思:   有九个人去KTV唱歌,现在进行3个3个的组队,最多有81组,然后每一组会有一个分数,现在要我们找到三组得分最高的输出最高的得分. 解题思路:   1 首先我们应该了解如果同一个人同时在两个组中出现,那么这个就是不符和条件.                     2 由于n最大为81,那么如果我么吧直接去枚举每一种情况,复杂度就是0(n^3)这个是可以接受的肯定不会超时,所以我么的解题思路就是暴力枚举                     3 注意我么在枚举的时候

C语言学习教程第八章-枚举、位运算(4)

位域 有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位.例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可.为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为"位域"或"位段".所谓"位域"是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数.每个域有一个域名,允许在程序中按域名进行操作. 这样就可以把几个不同的对象用一个字节的二进制位域来表示.一.位域的定义和位域变量的说明位域

C语言学习教程第八章-枚举、位运算(2)

枚举类型变量的赋值和使用 枚举类型在使用中有以下规定:1. 枚举值是常量,不是变量.不能在程序中用赋值语句再对它赋值.例如对枚举weekday的元素再作以下赋值: sun=5;mon=2;sun=mon; 都是错误的. 2. 枚举元素本身由系统定义了一个表示序号的数值,从0 开始顺序定义为0,1,2-.如在weekday中,sun值为0,mon值为1, -,sat值为6.main(){enum weekday{ sun,mon,tue,wed,thu,fri,sat } a,b,c;a=sun;

C语言学习教程第八章-枚举、位运算(1)

枚举 在实际问题中, 有些变量的取值被限定在一个有限的范围内.例如,一个星期内只有七天,一年只有十二个月, 一个班每周有六门课程等等.如果把这些量说明为整型, 字符型或其它类型显然是不妥当的. 为此,C语言提供了一种称为"枚举"的类型.在"枚举"类型的定义中列举出所有可能的取值, 被说明为该"枚举"类型的变量取值不能超过定义的范围.应该说明的是, 枚举类型是一种基本数据类型,而不是一种构造类型, 因为它不能再分解为任何基本类型. 枚举类型的定义和

uva 11218 - KTV 简单回溯

   感觉有比回溯更加高效的方法,但是水平不够,只会回溯 /* author:jxy lang:C/C++ university:China,Xidian University **If you need to reprint,please indicate the source** */ #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include

UVa 11218:KTV, Rujia Liu的神题(一)

链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=112&page=show_problem&problem=2159 类型:   暴力回溯 原题: One song is extremely popular recently, so you and your friends decided to sing it in KTV. The song has 3 c

将不确定变为确定~整形变量是否可以进行位运算(像枚举类型一样)

如果您看到这个题目,觉得有点怪,那说明你是一个高人,最起码比我高的多,呵呵. 前几天做了一个公用后台管理系统的项目,其中有一个地方涉及到权限管理的,即为每一个按钮赋一个权限,然后它权限汇总到角色表里,即一种角色有一些操作权限 ,表结构如下: 我们看到OperatorAuthority就是操作权限的意思,它是个int类型的,一个role有一个OperatorAuthority,那我们应该怎么把多个权限存储到OperatorAuthority字段里呢? 这时,我想到了枚举类型的位运算,所以我把权限枚