CodeForces - 1230D(思维+位运算)
题意
https://vjudge.net/problem/CodeForces-1230D
要组建一个小组,要求小组中每个人都不比所有人强,当一个人懂得一个算法但是另一个不懂那么前者认为他比后者强。所以这个小组要满足一个人懂得算法必定有另一个人全懂。每个人的技能是不同的,要求出这个小组能组成的技能最大值。
思路
先遍历一遍,用map记录a[i](会的算法)的个数,出现次数大于等于2的a[i],是肯定可以放到小组里的,因为有人和他的懂的相同。
然后对出现次数小于2的人,和刚才确定的人的对比,如果他的能力大于确定的人,那么肯定不行,因为他会的有的东西其他人都不会;如果他的能力小于确定的人,而且(x&y)==x,x是他,y是确定的人,这个式子就表示了x会的算法确定的人里也会,所以可以加入到小组里。
代码
#include<bits/stdc++.h>
using namespace std;
#define inf 0x3f3f3f3f
#define ll long long
const int N=200005;
const int mod=1e9+7;
const double eps=1e-8;
const double PI = acos(-1.0);
#define lowbit(x) (x&(-x))
int n;
ll a[N],b[N];
vector<ll> ans;
map<ll,ll> mp;
int main()
{
std::ios::sync_with_stdio(false);
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
mp[a[i]]++;
}
ll res=0;
for(int i=1;i<=n;i++)
{
cin>>b[i];
if(mp[a[i]]>=2)
ans.push_back(i),res+=b[i];
}
for(int i=1;i<=n;i++)
{
if(mp[a[i]]<2)
{
for(int j:ans)
{
if(a[i]<a[j]&&((a[i]&a[j])==a[i]))
{
res+=b[i];
ans.push_back(i);
break;
}
}
}
}
cout<<res<<endl;
return 0;
}
CodeForces - 1230D(思维+位运算)的更多相关文章
- Codeforces Round #672 (Div. 2) B. Rock and Lever题解(思维+位运算)
		
题目链接 题目大意 给你一个长为n(n<=1e5)的数组,让你求有多少对a[i]和a[j] (i!=j)满足a[i]&a[j]>a[i]^a[j] 题目思路 这些有关位运算的题目肯 ...
 - CodeForces 282C(位运算)
		
C. XOR and OR time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
 - Codeforces Round #299 (Div. 2) B. Tavas and SaDDas【DFS/*进制思维/位运算/一个数为幸运数,当且仅当它的每一位要么是4,要么是7 ,求小于等于n的幸运数个数】
		
B. Tavas and SaDDas time limit per test 1 second memory limit per test 256 megabytes input standard ...
 - 新疆大学ACM新生赛(公开赛) E.异或  (思维,位运算)
		
题意:RT 题解: \(i\ mod \ k=0\),即所有事\(k\)的倍数的位置都要进行异或,根据异或的性质,我们知道如果相同的异或的数个数是偶数的话,得出的结果是\(0\),所以每次询问,我们判 ...
 - Codeforces Round #716 (Div. 2), problem: (B) AND 0, Sum Big位运算思维
		
& -- 位运算之一,有0则0 原题链接 Problem - 1514B - Codeforces 题目 Example input 2 2 2 100000 20 output 4 2267 ...
 - Divide by Zero 2021 and Codeforces Round #714 (Div. 2) B. AND Sequences思维,位运算 难度1400
		
题目链接: Problem - B - Codeforces 题目 Example input 4 3 1 1 1 5 1 2 3 4 5 5 0 2 0 3 0 4 1 3 5 1 output 6 ...
 - Codeforces 868D Huge Strings - 位运算 - 暴力
		
You are given n strings s1, s2, ..., sn consisting of characters 0 and 1. m operations are performed ...
 - 图论/位运算 Codeforces Round #285 (Div. 2) C. Misha and Forest
		
题目传送门 /* 题意:给出无向无环图,每一个点的度数和相邻点的异或和(a^b^c^....) 图论/位运算:其实这题很简单.类似拓扑排序,先把度数为1的先入对,每一次少一个度数 关键在于更新异或和, ...
 - Codeforces Round #320 (Div. 2) [Bayan Thanks-Round] A. Raising Bacteria【位运算/二进制拆分/细胞繁殖,每天倍增】
		
A. Raising Bacteria time limit per test 1 second memory limit per test 256 megabytes input standard ...
 
随机推荐
- 精通awk系列(11):awk的工作流程
			
回到: Linux系列文章 Shell系列文章 Awk系列文章 awk工作流程 参考自:man awk的"AWK PROGRAM EXECUTION"段. man --pager= ...
 - python中错误、调试、单元测试、文档测试
			
错误分为程序的错误和由用户错误的输入引起的错误,此外还有因为各种各样意外的情况导致的错误,比如在磁盘满的时候写入.从网络爬取东西的时候,网络断了.这类错误称为异常 错误处理 普通的错误处理机制就是在出 ...
 - 中国古风唯美水墨工作计划汇报PPT模板推荐
			
模版来源:http://ppt.dede58.com/
 - IDEA项目更改项目名
			
点击File,如图:
 - 【Cocos谁学谁会】制作会跑动的地板
			
版权申明: 本文原创首发于以下网站,您可以自由转载,但必须加入完整的版权声明 博客园:https://www.cnblogs.com/MogooStudio/ csdn博客:https://blog. ...
 - zhy2_rehat6_mysql03 - MHA_搭建.txt
			
export LANG=en_US 机器 VPN ip linux 账号/密码manager2 172.28.20.131 10.1.1.11 mysql2 - z(主) 172.28.20.133 ...
 - 粗糙集理论(Rough Set Theory)
			
粗糙集理论(Rough Set Theory) 一种数据分析处理理论. <粗糙集—关于数据推理的理论>. 数据挖掘(Data Mining)和知识发现(KDD). 集合近似定义的基本思想及 ...
 - java8的捕获多个异常的一个写法
			
这是按intellij idea的提示知道的, 可以写成 catch(xxxException | yyyException | zzzException e){ } 这样的形式,对几个不同的异常使用 ...
 - faster-rcnn训练自己数据+测试
			
准备使用faster-rcnn进行检测实验.同时笔者也做了mask-rcnn,yolo-v3,ssd的实验,并进行对比. window下使用faster-rcnn https://blog.csdn ...
 - SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架
			
一.背景 前后端分离已经成为互联网项目开发标准,它会为以后的大型分布式架构打下基础.SpringBoot使编码配置部署都变得简单,越来越多的互联网公司已经选择SpringBoot作为微服务的入门级微框 ...