// Rujia Liu
// 题意:给出n个带权集合,每个集合包含1~9中的三个整数。找出其中三个集合,使得1~9恰好各出现一次,且权和最大
// 算法:暴力n^2枚举前两个集合,直接计算出第三个集合。用位运算让代码更简单,速度也更快

学习点:

1、全集ALL为(1<<n)-1

2、ALL ^ mask[i]求出mask[i]的补集

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std; const int maxn = 1000 + 10;
const int ALL = (1<<9)-1;
int mask[maxn], v[ALL+1]; int main() {
int kase = 0, n;
while(scanf("%d", &n) == 1 && n) {
memset(v, 0, sizeof(v));
for(int i = 0; i < n; i++) {
int a, b, c, s;
scanf("%d%d%d%d", &a, &b, &c, &s); a--; b--; c--;
mask[i] = (1<<a) + (1<<b) + (1<<c);
v[mask[i]] = max(v[mask[i]], s);
} int ans = -1;
for(int i = 0; i < n; i++)
for(int j = i+1; j < n; j++) if((mask[i] & mask[j]) == 0) {
int last_mask = ALL ^ mask[i] ^ mask[j]; // 最后一个组合的mask
if(v[last_mask]) ans = max(ans, v[mask[i]] + v[mask[j]] + v[last_mask]);
}
printf("Case %d: %d\n", ++kase, ans);
}
return 0;
}

UVa11218 KTV的更多相关文章

  1. 平凡的KTV后台,不平凡的KTV数据

    之前就是说过“一个项目有很多重要的步骤以及功能”,那我们现在就来看看对于KTV项目来说:后台是处于什么样的重要作用! 首先就得了解KTV后台的一些功能了: 1.歌曲管理 .歌手管理 .设置资源路径 2 ...

  2. KTV项目 SQL数据库的应用 结合C#应用窗体

    五道口北大青鸟校区 KTV项目 指导老师:袁玉明 歌曲播放原理 SQL数据库关系图 C#解决方案类图 第一步:创建数据库连接方法和打开方法和关闭方法! public class DBHelper { ...

  3. KTV项目总结

    KTV项目总结 大约一个星期前吧,老湿说我们要开始做KTV项目了,说是KTV项目是贯穿整个学的内容的,会所的,要我们认真去对待,一开始,第一天搭前台界面,总是有不会的,要去问问,这个要用什么控件啊,用 ...

  4. KTV点歌系统

    经过十多天的艰苦奋战,MyKTV点歌系统终于成型,从刚开始接到项目的茫然,到完成项目时的喜悦,整个过程的艰辛和付出只有自己知道.虽然这个项目还有许多需要完善的地方,譬如添加歌词信息,实现窗体的美化等, ...

  5. 微信智慧KTV上线 不怕周末订不到包厢了

    周末邀三五好友唱唱歌是件惬意的事,可订包厢是个烦心事,总是people mountain people sea,而且价格比平时高出不少.现在好了,微信智慧KTV上线了,将有效解决传统KTV收银时间集中 ...

  6. KTV点歌系统播放原理

    北大青鸟KTV点歌系统播放原理 指导老师--原玉明 1.首先知道有两个类(PlayList   Song) PlayList类中有一方法 public static bool AddSong(Song ...

  7. ktv

    自制KTV点歌系统经验 Windows Media Player控件播放       Windows Media Player控件的简单使用 1.播放一首歌曲的方法 Windows Media Pla ...

  8. C# KTV 系统 SQL数据库连接 C# 应用窗体

    ---恢复内容开始--- 五道口 北大青鸟校区 KTV项目 指导老师: 袁玉明  SQL数据库关系图 第一步: private void DoubleClicklvContry() { ]!=null ...

  9. 小学生之KTV项目文档(bdqn)

    第一步:创建数据库连接方法和打开方法和关闭方法! 1 public class DBHelper 2 { 3 private string str = "server=.;database= ...

随机推荐

  1. Shell教程2-变量

    Shell支持自定义变量. 定义变量 定义变量时,变量名不加美元符号($),如: 复制纯文本新窗口   variableName="value" 注意,变量名和等号之间不能有空格, ...

  2. 定制Bootstrap遇到无法下载的解决——Blob下载注意事项

    今天定制bootstrap(在这里),全部的勾都选过了,于是兴高采烈地点击“编译并下载”.等了一会儿,迅雷7跳出来了“新建下载任务”,但是它居然说这个url不合法! url像这样: blob:http ...

  3. Js对象转String的函数 和 JSON转String

    js对象转string的函数 function obj2str(o){ var r = []; if(typeof o =="string") return "" ...

  4. 输出图片的php代码前面不能有空白行

    第一行增加一个空白行,就至少会输出一个换行符在图片数据流的前面而图片是按图片流提供的信息显示的,前面多了内容就无法解析了.

  5. redmine 2.5.2 安装后邮件无法发送

    找到redmine安装目录-apps->redmine->htdocs->conflg->configuration.yml email_delivery:    delive ...

  6. HTTP长连接(Comet)实现方式示例

    昨天看了comet的介绍后,虽然大概知道了comet的原理,不过没实际用过还是不太清楚,于是今天又在网上翻了一下别的网友共享的comet实现http长连接的例子,在 Comet Server Push ...

  7. BITED数学建模七日谈之四:数学模型分类浅谈

    本文进入到数学建模七日谈第四天:数学模型分类浅谈 大家常常问道,数学模型到底有哪些,分别该怎么学习,这样能让我们的学习有的放矢,而不至于没了方向.我想告诉大家,现实生活中的问题有哪些类,数学模型就有哪 ...

  8. [转] Web前端优化之 Javascript篇

    原文链接: http://lunax.info/archives/3099.html Web 前端优化最佳实践之 JavaScript 篇,这部分有 6 条规则,和 CSS 篇 重复的有几条.前端优化 ...

  9. Intel XDK问题

    1.不能加入AndroidManifest.xml或者info.plist文件,没法设置特定信息,例如强制横屏. 2.不能自定义图表和启动loading界面

  10. js运动 多物体运动含Json 但是里面数值不一样

    <!doctype html> <html> <head> <meta charset = "utf-8"> <title&g ...