[KSN2021] Binary Land
题目链接:[KSN2021] Binary Land
我们可以发现,如果一个数字最高位之后有一个0,那么是可以连向某个对应位置最高位为1的数字。
我们发现如果这个虚点有作用,那么一定是某个数字最高位是这个,并且某个数字最高位之后某个0是这个。然后并查集维护连通性即可。
#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=2e5+10;
int n,a[N],b[N],f[N],vis[N];
int find(int x){return x==f[x]?x:f[x]=find(f[x]);}
void merge(int x,int y){x=find(x),y=find(y);if(x!=y) f[x]=y,b[y]+=b[x];
}
signed main(){cin>>n;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=n;i++) cin>>b[i];for(int i=1;i<N;i++) f[i]=i;for(int i=1;i<=n;i++){int mx=0;for(int j=0;j<=30;j++) if(a[i]>>j&1) mx=j;vis[mx]|=1;for(int j=0;j<mx;j++) if(!(a[i]>>j&1)) vis[j]|=2;} for(int i=1;i<=n;i++){int mx=0;for(int j=0;j<=30;j++) if(a[i]>>j&1) mx=j;if(vis[mx]==3) merge(i,n+mx+1);for(int j=0;j<mx;j++) if(!(a[i]>>j&1)&&(vis[j]==3)) merge(i,n+j+1);}for(int i=1;i<=n;i++) printf("%lld\n",b[find(i)]);return 0;
}
[KSN2021] Binary Land相关推荐
- [KSN2021] Binary Land题解(位运算应用)
P7973 [KSN2021] Binary Land [KSN2021] Binary Land 题目描述 给定一张 N N N 个点的图,每个点有权值 A i A_i Ai 和价值 B i B_ ...
- P3855 [TJOI2008]Binary Land
难度:4 知识点:广度优先搜索 又解决一道,这道题首先状态很好想,就是一个四维数组,两个点的坐标共四个数来组成一个状态,起点状态终点状态也显而易见,然后是蜘蛛网,这个东西有点迷惑性,题目说的是如果踩了 ...
- 【HDU - 5050 】Divided Land (Java大数,大数进制转换,大数gcd)
题干: It's time to fight the local despots and redistribute the land. There is a rectangular piece of ...
- HDU 5050 Divided Land (二进制上的最大公约数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5050 题面: Divided Land Time Limit: 8000/4000 MS (Java/ ...
- 107. Binary Tree Level Order Traversal II
题目 Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from l ...
- 102. Binary Tree Level Order Traversal
题目 Binary Tree Level Order Traversal 层次遍历二叉树 链接 Given a binary tree, return the level order traversa ...
- Binary XML file line #8: Error inflating class android.support.v7.widget.RecyclerView
今天创建了一个 demo ,然后就是复制RecyclerView 过去, 到最后完成运行的时候发现 系统奔溃了, 然后 提示 Binary XML file line #8: Error inflat ...
- Android运行时候报错:android.view.InflateException: Binary XML file line #19: Binary XML file lin
Android运行时候报错:android.view.InflateException: Binary XML file line #19: Binary XML file lin 这个问题自己大致在 ...
- android.view.InflateException: Binary XML file line #7: Binary XML file line #7
错误如下 11-21 08:19:44.040 3608-3608/com.leon.oldrecyclerview E/AndroidRuntime: FATAL EXCEPTION: main ...
最新文章
- 【FFmpeg】AVPacket的使用详解
- GraLSP | 考虑局部结构模式的GNN
- metaProdigal:宏基因组序列中的基因和翻译起始位点预测
- android学习之-简单对话框
- 为什么每个程序员都要学C语言的五个理由
- LinkedList源码分析(基于Java8)
- vector 和 list 的区别,应用
- openwrt信号弱掉线_斐讯 FIR151M 频繁掉线(OpenWRT解决方案)
- 旧知识打造新技术--AJAX学习总结
- JAVA写同步栈_tomcat实现的同步队列和同步栈
- ffmpeg添加到环境变量_Windows + MSVC环境编译ffmpeg
- pandas 使用把dataframe变为series
- CF1152 F. Neko Rules the Catniverse (dp)
- 【书籍推荐】深入解析Windows操作系统(第4版)
- 开源项目工时系统_工时统计系统 - 服务端
- 信息与通信的数学基础——Mathematic入门
- 网页打印怎样去掉网址
- vscode 编写html 浏览器显示 空白 白屏
- 程序员编程艺术第一 三十八章集锦与总结,及Github地址 PDF下载
- POJ3107 Godfather 树形dp+模拟vector