D. Marcin and Training Camp

参考:D. Marcin and Training Camp

思路:首先先确定最大成员的\(a_i\),因为不能够某个成员i认为自己比其他所有成员都厉害,所以必须要有一个人j来压制他。压制有两种方法:①\(a_j\)跟他一样大 ②\({a_i}\&{a_j}=a_i\),即\(a_j\)可以将\(a_i\)包括。但是此时\(a_i\)为最大值,所以只能是情况①

然后再确定比\(a_i\)小的值,也是利用上面提到的两种方法。

但是当用到方法②的时候需要考虑一个问题\(a_j\)将\(a_i\)压制之后,谁来压制\(a_j\)呢,那么此时有两种可能,一种是方法①,另外一种是最大值与该值符合方法②

代码:

// Created by CAD on 2019/9/26.
#include <bits/stdc++.h>
#define ll long long
using namespace std; const int maxn=7005;
struct stu{
ll a,b;
bool operator<(const stu &x)
{
return a<x.a;
}
}s[maxn];
int vis[maxn];
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
int n;
cin>>n;
for(int i=1;i<=n;++i) cin>>s[i].a;
for(int i=1;i<=n;++i) cin>>s[i].b;
sort(s+1,s+n+1);
for(int i=2;i<=n;++i)
if(s[i].a==s[i-1].a)
for(int j=1;j<=i;++j)
if((s[i].a&s[j].a)==s[j].a) vis[j]=1;
ll ans=0;
for(int i=1;i<=n;++i)
if(vis[i]) ans+=s[i].b;
cout<<ans<<endl;
return 0;
}

Marcin and Training Camp的更多相关文章

  1. D. Marcin and Training Camp

    D. Marcin and Training Camp 题目链接:http://codeforces.com/contest/1230/problem/D time limit per test: 3 ...

  2. Codeforces Round #588 (Div. 2) D. Marcin and Training Camp(思维)

    链接: https://codeforces.com/contest/1230/problem/D 题意: Marcin is a coach in his university. There are ...

  3. Codeforces 1229A. Marcin and Training Camp

    传送门 垃圾翻译毁一生怎么办 题目看错直接 $GG$ 首先所有 $a_i$ 重复出现的人全都可以加入 考虑剩下的人发现 $a$ 必须是初始那些人的子集才能加入(证明显然),设当前考虑的人为 $x$ 则 ...

  4. 【CF1210B】Marcin and Training Camp(贪心)

    题意:有n个人,60种技能点,如果第i个人会第j种技能a[i]的二进制表示的第j位就是1,第i个人的价值是b[i] 如果有若干种技能i会j不会,i就会鄙视j 求一种至少两个人的选人方案使得价值和最大, ...

  5. 2015 UESTC Winter Training #7【2010-2011 Petrozavodsk Winter Training Camp, Saratov State U Contest】

    2015 UESTC Winter Training #7 2010-2011 Petrozavodsk Winter Training Camp, Saratov State U Contest 据 ...

  6. 2015-2016 Petrozavodsk Winter Training Camp, Nizhny Novgorod SU Contest (5/9)

    2015-2016 Petrozavodsk Winter Training Camp, Nizhny Novgorod SU Contest B. Forcefield 题意 给你一维平面上n个镜子 ...

  7. Petrozavodsk Summer Training Camp 2017 Day 9

    Petrozavodsk Summer Training Camp 2017 Day 9 Problem A. Building 题目描述:给出一棵树,在树上取出一条简单路径,使得该路径的最长上升子序 ...

  8. Petrozavodsk Summer Training Camp 2017

    Petrozavodsk Summer Training Camp 2017 Problem A. Connectivity 题目描述:有\(n\)个点,现不断地加边.每条边有一种颜色,如果一个点对\ ...

  9. Petrozavodsk Winter Training Camp 2018

    Petrozavodsk Winter Training Camp 2018 Problem A. Mines 题目描述:有\(n\)个炸弹放在\(x\)轴上,第\(i\)个位置为\(p_i\),爆炸 ...

随机推荐

  1. ipairs与pairs的区别

    ipairs 和pairs在lua中都是遍历tbale的函数可是两者有差别 1.pairs遍历table中的全部的key-vale 而ipairs会依据key的数值从1開始加1递增遍历相应的table ...

  2. asp.net 12 AJAX

    Javascript:ajax Ajax:get <%@ Page Language="C#" AutoEventWireup="true" CodeBe ...

  3. 【原创】大叔经验分享(72)mysql时区

    查看当前时区 > show variables like '%time_zone%'; +------------------+--------+ | Variable_name | Value ...

  4. golang(10):web开发 & 连接数据库

    http编程 ) Go原生支持 http : import ("net/http") ) Go 的 http 服务性能和 nginx 比较接近 ) 几行代码就可以实现一个 web ...

  5. JavaSE基础知识之多态

    一. 概述 多态是继封装.继承之后,面向对象的第三大特性,指同一行为,具有多个不同表现形式.生活中,比如跑的动作,小猫.小狗和大象,跑起来是不一样的.再比如飞的动作,昆虫.鸟类和飞机,飞起来也是不一样 ...

  6. Python习题之快乐的数字

    快乐的数字 描述 编写一个算法来确定一个数字是否“快乐”. 快乐的数字按照如下方式确定:从一个正整数开始,用其每位数的平方之和取代该数,并重复这个过程,直到最后数字要么收敛等于1且一直等于1,要么将无 ...

  7. RedisCluster 添加/删除节点

    一,redis cluster命令行 //集群(cluster) CLUSTER INFO 打印集群的信息 CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息. ...

  8. TensorFlow中CNN的两种padding方式“SAME”和“VALID”

    来源 dilation_rate为一个可选的参数,默认为1,这里我们可以先不管它. 整理一下,对于"VALID",输出的形状计算如下: new_height=new_width=⌈ ...

  9. 记一次被自己DDOS攻击

    服务器报警初步分析进一步分析最终分析总结 TOC 服务器报警 7月24号下午5点半开始,突然服务器报警,检查监控,发现CPU异常100%. 该服务器正常情况下CPU使用率在40%已经算高了,另外负载经 ...

  10. TCP坚持定时器

    窗口探查(window probe) 当接收方TCP缓冲区没有剩余空间后,在ACK中会通知发送方window=0,此时发送方就暂停发送数据.当接收方TCP缓冲区又有空间后,会再次发送一个ACK,告知其 ...