传送门

垃圾翻译毁一生怎么办

题目看错直接 $GG$

首先所有 $a_i$ 重复出现的人全都可以加入

考虑剩下的人发现 $a$ 必须是初始那些人的子集才能加入(证明显然),设当前考虑的人为 $x$

则集合存在 $y$ ,使得 $a_y>a_x$ 并且 $a_y \text{&} a_x=a_x$

证明显然...真的很显然啊

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<map>
#include<vector>
using namespace std;
typedef long long ll;
inline ll read()
{
ll x=,f=; char ch=getchar();
while(ch<''||ch>'') { if(ch=='-') f=-; ch=getchar(); }
while(ch>=''&&ch<='') { x=(x<<)+(x<<)+(ch^); ch=getchar(); }
return x*f;
}
const int N=;
const ll INF=1e18;
ll n,a[N],b[N];
ll Ans;
vector <int> V;
map <ll,int> cnt;
bool vis[N];
int main()
{
n=read(); if(n==) { printf("0\n"); return ; }
for(int i=;i<=n;i++) a[i]=read(),cnt[a[i]]++;
for(int i=;i<=n;i++) b[i]=read();
for(int i=;i<=n;i++) if(cnt[a[i]]>) V.push_back(i),vis[i]=;
for(int i=;i<=n;i++)
{
if(vis[i]) continue;
for(auto A: V) if(a[A]>a[i]&&((a[A]&a[i])==a[i])) { V.push_back(i),vis[i]=; break; }
}
for(auto A: V) Ans+=b[A];
printf("%lld\n",Ans);
return ;
}

最新文章

  1. css全局样式
  2. 安装 CentOS 后的系统配置及软件安装备忘
  3. TortoiseSVN,排除不想提交文件的方法(转)
  4. IOS快速集成下拉上拉刷新
  5. intellij idea 代码正常,但是编译出现 java:需要&quot;;&quot;
  6. STM32的优先级NVIC_PriorityGroupConfig的理解及其使用
  7. button 变成圆
  8. 在Eclipse中使用JDBC访问MySQL数据库的配置方法
  9. su -无反应
  10. vc中Error spawning cl.exe错误的解决方法.
  11. django进阶-3
  12. Android简易实战教程--第四十四话《ScrollView和HorizontalScrollView简单使用》
  13. Javascript高级编程学习笔记(96)—— WebGL(2) 类型化视图
  14. QLineEdit拾遗:数据的过滤、验证和补全
  15. gulp的使用(一)之gulp的基础了解
  16. [android] 手机卫士设备管理权限锁屏
  17. JavaScript获取星期几的几种方法
  18. 移动端font-size适配方案
  19. spring aop 的理解
  20. nodejs基础 -- EventEmitter

热门文章

  1. Oracle For Linux
  2. python全栈开发第6天
  3. 溢出overflow: hidden
  4. C#连接内存数据库redis【1、安装配置】
  5. 基于 Open vSwitch 的 OpenFlow 实践
  6. 阶段3 3.SpringMVC&#183;_07.SSM整合案例_04.ssm整合之编写SpringMVC框架
  7. Script Form商业报表程序设计
  8. strip使用
  9. 大觅网03Day
  10. 对JavaScript事件处理程序/事件监听器的设定的简单介绍