C. Anu Has a Function(思维+位运算+贪心)
https://codeforces.com/contest/1300/problem/C
和昨晚这场的div2的B有异曲同工之妙。
思路:对每一个数位进行二进制位数的考虑。
f(x,y)=(x|y)−y
1 1 0 0
1 0 1 0
可以发现,只有在出现了x出现了一次1的时候,这个时候的位才不是0,不然其他三个情况这一位都是0.那么贪心去考虑哪个数字的最高位只出现了一次零。O(32n)枚举即可。
#include<iostream>
#include<vector>
#include<queue>
#include<cstring>
#include<cmath>
#include<map>
#include<set>
#include<cstdio>
#include<algorithm>
#define debug(a) cout<<#a<<"="<<a<<endl;
using namespace std;
const int maxn=1e5+100;
typedef long long LL;
LL a[maxn],b[40];
LL n;
void solve(LL x)
{swap(a[1],a[x]);for(LL i=1;i<=n;i++) cout<<a[i]<<" ";cout<<endl;
}
int main(void)
{cin.tie(0);std::ios::sync_with_stdio(false);cin>>n;for(LL i=1;i<=n;i++) cin>>a[i];for(LL i=32;i>=1;i--){for(LL j=1;j<=n;j++){if(a[j]&(1<<(i-1))) b[i]++; }}for(LL i=32;i>=1;i--){if(b[i]!=1) continue;for(LL j=1;j<=n;j++){if(a[j]&(1<<(i-1))){solve(j);return 0; } }}solve(1);
return 0;
}
C. Anu Has a Function(思维+位运算+贪心)相关推荐
- CH - 0104 起床困难综合症(位运算+贪心)
题目链接:点击查看 题目大意:我们需要构造一个初始值start,范围在[0,m],要求使用这个初始值进行k次操作后得到的答案最大,每次操作分为三个类型: AND x:让当前答案与x进行按位与 OR x ...
- 贪心 ---- C. Anu Has a Function位运算+贪心证明
题目链接 有一种操作f(x,y)=(x∣y)−yf(x,y)=(x|y)−yf(x,y)=(x∣y)−y,给你一个序列a1,a2,...,an.a1,a2,...,an.a1,a2,...,an. 让 ...
- CodeForces - 1312C Adding Powers(思维+位运算)
题目链接:点击查看 题目大意:给出大小为 n 的一个数组 a 和一个数字 K,每个位置起始时为 0 ,现在从 i = 0 开始递增,我们能够进行如下操作: 选取 pos ∈ [ 1 , n ] 作为数 ...
- 牛客网Chino with Expectation【思维+位运算】
Chino的数学很差,因此Cocoa非常担心.这一天,Cocoa准备教Chino学习异或. 众所周知,,即"异或"表示了和的二进制按位异或的结果(在C/C++中,表示了异或运算.) ...
- 牛客 - 小V的序列(思维+位运算)
题目链接:点击查看 题目大意:给出一个均匀分布,长度为 n 的数列,再给出 m 次询问,每次询问给出一个 y ,询问数列中是否存在 x 与 y 相似,相似的定义如下: x,y相似当且仅当x xor y ...
- POJ - 2965 The Pilots Brothers' refrigerator(bfs+路径输出/思维+位运算)
题目链接:点击查看 题目大意:给出一个4*4的矩阵,每个点都代表一个开关,'+'代表关,'-'代表开,每次操作可以任意改变一个开关(x,y)的状态,但代价是x行和y列的开关都要一起改变状态,题目要求将 ...
- CodeForces - 1174D Ehab and the Expected XOR Problem(构造+思维+位运算)
题目链接:点击查看 题目大意:给出一个 n,再给出一个 x,要求构造一个数列,满足该数列的所有子串的异或和都不等于 0 且都不等于 x,在满足上面的条件下尽可能长 题目分析:因为这个题目最终的目标是需 ...
- CodeForces - 1368D AND, OR and square sum(位运算+贪心)
题目链接:点击查看 题目大意:给出 n 个数组成的序列 a ,现在可以进行的操作是,任选两个下标 i 和 j ,满足 i != j ,使得: 设 x = a[ i ] , y = a[ j ] a[ ...
- jzoj4274-终章-剑之魂【位运算,贪心】
正题 大意 有n把剑,每一把剑有一个值aiaia_i,然后两把剑的契合值是ai and ajaiandaja_i\ and \ a_j,求最大契合值. 解题思路 先把每个a转换成二进制 我们可以先从高 ...
最新文章
- ui动效 unity_Unity - UIWidgets 2. 控件组合
- 李飞飞最新论文:用算法判断政治倾向(附论文链接)
- 如果要将对象用作Map中的key,需要注意什么
- linux mongodb开机启动脚本,Linux下设置MongoDB开机自启动
- 医疗影像网络PACS系统方案
- ECCV 2018论文解读 | DeepVS:基于深度学习的视频显著性方法
- 7-43 字符串关键字的散列映射 (25 分)(思路+详解+不懂的兄弟们来呀)兄弟们我干了5个小时,一个一个测试点过的
- P4103-[HEOI2014]大工程【虚树,dp】
- 面试题(C++09:Autodesk)
- 在Matlab2006a中如何创建.net组件
- ff14拆区后哪个服务器人最多,FF14拆区可以转服吗 拆区期间转服教程
- C++ lower_bound和upper_bound的区别
- gzip解压str python_有哪些你不知道的Python小工具
- Bresenham画线算法详解及其OpenGL编程实现
- svn指定版本代码对比的方法
- 图书行业的两个术语:实洋、码洋
- 《星际争霸》怀念星际历史上最强的队伍系列二
- 朱松纯教授:可解释性是人工智能获得人类信任的关键
- 几款科学计算显卡对比(GTX Titan X、GTX 980、Tesla K40 K80 及quadro K4200) 科学计算显卡的两个主要性能指标: 1、CUDA compute capabili
- 基于SSM的医院医疗管理系统的设计与实现
热门文章
- 快乐打小鸟游戏的开发
- 《人工智能》之《绪论》习题解析
- 主机映射(域名与ip之间映射)
- java 体检套餐_体检套餐管理系统的综合版
- 数据库外键references的用法
- 全球首个TD-LTE演示网今日上海正式开通,金山瑞星同日发布“云安全”产品(每日关注:20100415)...
- 便便之旅,了解和关注便便
- python制作电子相册的软件_请问:制作电子相册的这个软件是不是不支持试用呢?...
- 大数据分析所需要的十大技术
- 小学计算机教师试讲ppt,教师试讲面试10分钟ppt.ppt