位运算
文章平均质量分 72
Suryxin.
Suryxin.cn
展开
-
【代码源每日一题Div1】#665. 数组划分「位运算贪心+动态规划」
【代码源每日一题Div1】#665. 数组划分「位运算贪心+动态规划」原创 2022-11-24 18:15:27 · 583 阅读 · 0 评论 -
第十二届蓝桥杯省赛第一场C++「异或数列」
异或数列 题目描述: 给定一个数组ar[i],Alice和Bob轮流操作,Alice先操作,每次操作,都会选择一个数异或当前这个人有的数,二者的值初始化都是0,每个数只能用一次,问最后谁的数大 思路: 不难发现,转换成二进制后,如果有谁最后能获得最高位的1,那不管剩下的位置的数字如何,它一定可以获胜,例如:Alice能抢到最高位的数字:8,Bob抢不到,但是Bob有1,2,4,这加起来也才是7,所以高位即王道。 那怎么判断高位能不能抢到呢? 我们统计出来n个数字中每一位是的1的数量和,如果当前这位的数原创 2022-04-05 10:48:44 · 338 阅读 · 0 评论 -
飞行员兄弟「位运算」
飞行员兄弟 题目描述: 一个4 * 4的矩阵,-表示打开,+表示关闭,你可以改变任何一个点的状态,改变的时候会顺带改变她所在的行和列上所有的点的状态,问变成全开所需要的最少次数是多少,且输出字典序最小的改变方式 思路: 显然,每个点最多改变一次,因为改变两次后就相当于没改变 所以我们可以枚举改变了哪些点,然后进行判断 枚举的复杂度是 2162^{16}216,暴力for循环的判断的复杂度大概是是:272^727的复杂度,乘起来就是 o(223)o(2^{23})o(223) ,虽然可以跑出来,但是有的原创 2022-04-02 14:49:23 · 304 阅读 · 0 评论 -
Codeforces Round #779 (Div. 2) D1. 388535 (Easy Version)「位运算 + 思维」
D1. 388535 (Easy Version) 题目描述: 给定一个l = 0,r,数组a[i]是数值从l到r的一个全排列 然后选择了一个数x,定义数组b[i] = a[i] ^ x 给出b[i]数组,问x是多少 我的思路: 因为l=0,而0异或任意一个数字都得到那个数字,所以答案肯定在[l,r]之间,所以我们只需要想一个check的方法就行 我的方法是: 开一个num[20]数组来统计[0, r]中的数转换成二进制后每一位的1的数量 开一个cnt[20]数组来统计[b[1], b[r -原创 2022-04-01 11:11:34 · 453 阅读 · 1 评论