CF1148F - Foo Fighters
CF1148F - Foo Fighters
题意:你有n个物品,每个都有val和mask。
你要选择一个数s,如果一个物品的mask & s含有奇数个1,就把val变成-val。
求一个s使得val总和变号。
解:分步来做。发现那个奇数个1可以变成:每一个1就变一次。
然后把这些物品按照最高位1来分类。从0到61考虑每一类。
我们试图使每一类都与sum异号,这样总和也异号了。
具体来说就是看看这一类的总和,如果同号就把这以一位变成1。
1 #include <bits/stdc++.h> 2 3 typedef long long LL; 4 const int N = 300010; 5 6 struct Node { 7 LL mask, val; 8 int id, cnt; 9 inline bool operator < (const Node &w) { 10 return mask < w.mask; 11 } 12 }node[N]; 13 14 int main() { 15 16 int n; 17 LL sum = 0; 18 scanf("%d", &n); 19 for(int i = 1; i <= n; i++) { 20 scanf("%lld%lld", &node[i].val, &node[i].mask); 21 sum += node[i].val; 22 for(int j = 0; j <= 61; j++) { 23 if((node[i].mask >> j) & 1) { 24 node[i].id = j; 25 } 26 } 27 } 28 if(sum < 0) { 29 for(int i = 1; i <= n; i++) { 30 node[i].val *= -1; 31 } 32 } 33 LL ans = 0; 34 for(int i = 0; i <= 61; i++) { 35 LL t = 0; 36 for(int j = 1; j <= n; j++) { 37 if(node[j].id != i) { 38 continue; 39 } 40 t += node[j].val; 41 } 42 if(t > 0) { 43 ans |= (1ll << i); 44 for(int j = 1; j <= n; j++) { 45 if((node[j].mask >> i) & 1) { 46 node[j].val *= -1; 47 } 48 } 49 } 50 } 51 printf("%lld\n", ans); 52 return 0; 53 }
AC代码
转载于:https://www.cnblogs.com/huyufeifei/p/10983138.html
CF1148F - Foo Fighters相关推荐
- 编程中常见的Foo是什么意思
不管是java,C++,还是PHP,每次都能看到 foo = bar 的例子,这两个单词很恶心,foo查不到字典,bar的解释又让人跟编程联系不上,更弄不清楚这个神秘的foo是个什么关系. 语意不清, ...
- 编程中常见的Foo,是什么意思。。
不管是java,C++,还是PHP,每次都能看到 foo = bar 的例子,这两个单词很恶心,foo查不到字典,bar的解释又让人跟编程联系不上,更弄不清楚这个神秘的foo是个什么关系. 语意不清, ...
- 有趣的foo bar
http://www.cnblogs.com/felicity/archive/2010/11/30/1892100.html 不管是java,C++,还是PHP,每次都能看到 foo = bar 的 ...
- 转载:编程中常见的Foo,bar是什么意思
原始链接:编程中常见的Foo,是什么意思.._xhmz的专栏-CSDN博客_foo是什么意思 编程中常见的Foo,是什么意思.. xhmz 于 2014-07-28 13:08:34 发布 4796 ...
- Codeforces Global Round 3
Codeforces Global Round 3 A. Another One Bites The Dust 有若干个a,有若干个b,有若干个ab.你现在要把这些串拼成一个串,使得任意两个相邻的位置 ...
- 苹果广告背景音乐大全【转】
1.music every day 广告背景音乐(作者是rob simonsen,曲名red) 2.photo every day 广告背景音乐(作者是rob simonsen,曲名red) 3.ww ...
- 10.completion_suggester
文章目录 1. Completion Suggester 简介 2.存储doc文档 2. 查询使用 3. 跳过重复的suggestions 4. Fuzzy queries 4. Regex quer ...
- 01.elasticsearch-mapping全面解析
文章目录 1. es index mapping内容概述 2. field data type 1. keyword类型 1. string.text 分词文本 2. string.keyword 关 ...
- ElasticSearch suggester
Suggesters就是一款基于用于提供的文本给出一些相似性的东西,即在用户输入搜索的过程中,进行自动补全或者纠错. 通过协助用户输入更精准的关键词,提高后续全文搜索阶段文档匹配的程度 POST tw ...
最新文章
- 阎崇年:《袁崇焕传》自序
- 第十五届全国大学生智能车竞赛线下比赛成绩和奖项
- 安装scala之后,命令行中输入scala报错nullpointException
- RabbitMQ RPC远程调用模式
- Linux操作系统基础解析之(五)——grep命令家族及正则表达式初识
- HDU5528 - Count a * b
- 论文浅尝 | 混合注意力原型网络的含噪音少样本的关系分类
- 【Vue】—动态组件
- Spring5的几个新特性
- VS编译器中QT版本问题不正确解决方法-Please assign a Qt installation in ‘Qt Project Settings‘.
- 地址总线、数据总线、控制总线
- python 基于金字塔的图像融合
- Hadoop-Hive常用,命令
- 一个游戏程序员的学习资料(转)
- 一文看懂!百度对话系统PLATO家族
- 消息循环中TranslateMessage和Dispatch函数的作用
- np.random.normal()的含义及实例
- php把字符串变为数组_php把字符串转为数组的方法
- 接口保护ESD防静电二极管选择ESDSRVLC05-4
- java压缩字符串_Java压缩字符串的方法收集
热门文章
- VC下提前注入进程的一些方法1——远线程不带参数
- Windows7下配置MinGW+CodeBlocks+OpenCV2.3.1
- 图像配准----RANSAC
- 【linux】Valgrind工具集详解(七):Memcheck(内存错误检测器)
- python 累积正态分布函数_为什么机器学习都围绕正态分布进行讨论?
- restapi如何传图片_iPhone传照片,不是只能用微信QQ,第二种方法很少人知道哦
- python 排序算法 简书_Python---简析八大排序算法
- docker 安装oracle_Windows系统下安装Docker,包你满意!
- java servlet applet,详解Java Servlet与Applet比较
- 搜索进程内存地址_Linux编程 6 (查看进程 ps 及输出风格)