
位运算
小王子y
互关啊!!
展开
-
64位整数乘法(位运算)
求 a 乘 b 对 p 取模的值。输入格式第一行输入整数a,第二行输入整数b,第三行输入整数p。输出格式输出一个整数,表示a*b mod p的值。数据范围1≤a,b,p≤10的18次方输入样例:345输出样例:2//变成b个a相加#include<bits/stdc++.h>using namespace std;typedef long long LL;int main(){ LL a,b,p; cin>>a>>b&原创 2021-02-17 19:11:54 · 291 阅读 · 0 评论 -
[蓝桥杯][算法提高VIP]开灯游戏
题目 1520: [蓝桥杯][算法提高VIP]开灯游戏时间限制: 1Sec 内存限制: 128MB 提交: 499 解决: 241题目描述有9盏灯与9个开关,编号都是1~9。每个开关能控制若干盏灯,按下一次会改变其控制的灯的状态(亮的变成不亮,不亮变成亮的)。具体如下:第一个开关控制第二,第四盏灯;第二个开关控制第一,第三,第五盏灯;第三个开关控制第二,第六盏灯;第四个开关控制第一,第五,第七盏灯;第五个开关控制第二,第四,第六,第八盏灯;第六个开关控制第三,第五,第九盏灯;第七个开原创 2020-12-19 17:59:21 · 174 阅读 · 1 评论 -
蓝桥杯国赛 格雷码
格雷码格雷码是以n位的二进制来表示数。与普通的二进制表示不同的是,它要求相邻两个数字只能有1个数位不同。首尾两个数字也要求只有1位之差。有很多算法来生成格雷码。以下是较常见的一种:从编码全0开始生成。当产生第奇数个数时,只把当前数字最末位改变(0变1,1变0)当产生第偶数个数时,先找到最右边的一个1,把它左边的数字改变。用这个规则产生的4位格雷码序列如下:0000000100110010011001110101010011001101111111101010101原创 2020-12-04 17:45:35 · 207 阅读 · 0 评论 -
优秀的拆分(位运算)
一般来说,一个正整数可以拆分成若干个正整数的和。例如,1=1,10=1+2+3+41=1,10=1+2+3+4 等。对于正整数 nn 的一种特定拆分,我们称它为“优秀的”,当且仅当在这种拆分下,nn 被分解为了若干个不同的 22 的正整数次幂。注意,一个数 xx 能被表示成 22 的正整数次幂,当且仅当 xx 能通过正整数个 22 相乘在一起得到。例如,10=8+2=23+2110=8+2=23+21 是一个优秀的拆分。但是,7=4+2+1=22+21+207=4+2+1=22+21+20 就不是原创 2020-11-08 16:35:32 · 3392 阅读 · 0 评论