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. 币种大写算法(js)

    注意事项:小数精度处理问题,n*10出现精度误差,如1.88*10计算得18.799999999999997,实际想要的数据是18.8: 思路一:小数变成整数(通过字符串处理),计算后,变成小数: 思 ...

  2. jquery 取指定class下的input checkbox选中的值

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. 第1章 python入门

    1.1 python的出生与应用   python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开 ...

  4. jsp学习——九大内置对象

    JSP一共有九个内置对象,分别为:request.response.session.application.out.pagecontext.config.page.exception 博客:JSP的九 ...

  5. [CEOI1999]Sightseeing trip(Floyed)

    [CEOI1999]Sightseeing trip Description There is a travel agency in Adelton town on Zanzibar island. ...

  6. C#学习之Timothy Liu

    原文出自 本文摘录了一些值得学习的地方. 1.对一个程序来说,静态指编辑期.编译期,动态指运行期. 静态时装在硬盘里,动态时装在内存里. 2.反射示例 通过反射获得类的属性和方法. static vo ...

  7. 《Python基础教程》第三章:使用字符串

    find方法可以在一个较长的字符串中查找子字符串.它返回子串所在位置的最左端索引.如果没有找到则返回-1 join方法用来在队列中添加元素,需要添加的队列元素都必须是字符串 >>> ...

  8. NoSQL数据库技术实战-第1章 NoSQL与大数据简介 NoSQL产生的原因

    NoSQL产生的原因: 关系型数据库不擅长的操作,是NoSQL应运而生的原因: 大量的数据写入操作书上写的是“大量数据的写入操作“,我理解的应该是“大量的数据写入操作”,因为大量的数据写入操作才会引起 ...

  9. bind的各种辅助工具

    dig dig用于测试dns系统,因此,不会查询hosts文件进行解析.

  10. WPF界面开发技巧大放送!DevExpress WPF格式化日期时间值

    DevExpress广泛应用于ECM企业内容管理. 成本管控.进程监督.生产调度,在企业/政务信息化管理中占据一席重要之地.通过DevExpress WPF Controls,您能创建有着强大互动功能 ...