Codeforces Round #742 (Div. 2) B、C 题解
Codeforces Round 742
B. MEXor Mixup
题意
有一个数组,输入两个数a,b,a代表这个数组之外的最小非负整数,b代表这个数组的异或值,问你该数组的最小长度。
思路
首先,a保证了数组至少是由0 ~(a-1) 这些数组成,设0 ~(a-1) 的异或值为x
1.如果x==b,则该数组的最小长度为a
2.如果x!=b,且x^b!=a,此时数组之外的最小非负整数仍为a,又**因为 x^x=0, 0^b=b, a ^ b ^ c = a ^ ( b ^ c ),**所以在原数组加上一个 **x ^ b,x ^ x ^ b = b,**此时该数组最小长度为a+1
3.如果x!=b,且x ^ b==a,就不能直接加x ^ b,因为a的值会改变,所以我们应该改变x^b的形式,让它变成(x ^ b ^ 1 ) ^ 1,所以在原数组加上一个**(x ^ b ^ 1)**和一个1就可以解决了,此时该数组最小长度为a+2
此题还有一个难点就是求x(0到a-1的异或值),打个表发现是有规律的
a%4==1时 x=a-1
a%4==2时 x=1
a%4==3时 x=a
a%4==0时 x=0
**注意坑点!!!**判断的时候有异或操作( ^ ) 的时候加括号,( ^ )的优先级很低,比==还低
代码
#include<bits/stdc++.h>
using namespace std;
int main()
{int t;scanf("%d",&t);while(t--){int ans=0;int a,b;int c;scanf("%d%d",&a,&b);if(a%4==1)c=a-1;else if(a%4==2)c=1;else if(a%4==3)c=a;elsec=0;if(c!=b&&(c^b)!=a)ans=a+1;else if(c==b)ans=a;else if(c!=b&&(c^b)==a)ans=a+2;printf("%d\n",ans);}
}
C. Carrying Conundrum
题意
现有一个新的加法定义,输入一个数n,问你有多少对通过新的加法满足 a+b=n的数。
新加法的定义是,每次进位进2位。
思路
在这个定义下,只要把奇数位相加得出一个数x,然后算得到x的a+b的个数,刚好等于x+1,因为(0+x),(1+x-1),(2+x-2)+……+(x+0)。
再把偶数位相加,得出一个数y,然后算得到y的a+b的个数,刚好等于y+1。
然后组合相乘(x+1)*(y+1),又因为a,b为正数,不能出现0的情况,所以还要减2,
最后答案为(x+1)*(y+1)-2.
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int main()
{int t;scanf("%d",&t);while(t--){int n;scanf("%d",&n);ll x=0,y=0;ll pw=1;while(n){x=x+pw*(n%10);n/=10;y=y+pw*(n%10);n/=10;pw*=10;}printf("%d\n",(x+1)*(y+1)-2);}
}
Codeforces Round #742 (Div. 2) B、C 题解相关推荐
- Codeforces Round #742 (Div. 2) F. One-Four Overload 构造 + 二分图染色
传送门 文章目录 题意: 思路: 题意: 给你一个n∗mn*mn∗m的矩形,包含...和XXX,你有两种颜色,你需要给...染色使得每个XXX上下左右相邻的...其两种颜色个数相同,输出一种合法方案. ...
- Codeforces Round #198 (Div. 2)A,B题解
Codeforces Round #198 (Div. 2) 昨天看到奋斗群的群赛,好奇的去做了一下, 大概花了3个小时Ak,我大概可以退役了吧 那下面来稍微总结一下 A. The Wall Iahu ...
- Codeforces Round #774 (Div. 2)E题题解
Codeforces Round #774 (Div. 2) E. Power Board 题目陈述 有一个n×m(1≤n,m≤106)n\times m(1\le n,m\le10^6)n×m(1≤ ...
- Codeforces Round #742 (Div. 2) 个人题解
A. Domino Disaster 2分钟签到 #include <bits/stdc++.h> #define fors(i, a, b) for(int i = (a); i < ...
- Codeforces Round #640 (Div. 4)(ABCDEG题解)
文章目录 A. Sum of Round Numbers B - Same Parity Summands C - K-th Not Divisible by n D - Alice, Bob and ...
- Codeforces Round #635 (Div. 2)(A~D)题解
Codeforces #635 A~D A.Ichihime and Triangle B.Kana and Dragon Quest game C.Linova and Kingdom D.Xeni ...
- Codeforces Round #742 (Div. 2) E. Non-Decreasing Dilemma (线段树维护区间连续问题)
题意: 操作1:把x位置的数字修改成y. 操作2:查询[l,r]之间不下降序列的个数. 题解: 线段树维护区间和问题 (这是套路,想不到只能说做题少别打我) . 用五个变量进行维护. sum区间总个数 ...
- 【记录CF】Codeforces Round #777 (Div. 2) A~C 题解
目录 杂谈 A. Madoka and Math Dad B. Madoka and the Elegant Gift C. Madoka and Childish Pranks 杂谈 又是一场离谱掉 ...
- Educational Codeforces Round 110 div.2 A~F题解
视频讲解:BV1254y137Rn A. Fair Playoff 题目大意 有 444 位选手参加比赛,第 iii 位选手的水平为 si(1≤si≤100)s_i(1 \leq s_i \leq 1 ...
最新文章
- 目标识别的选择性搜索
- (已解决)(Jupyter notebook)中的tqdm进度条不是在一行更新并显示而是一直滚动往下输出
- Atian inputmethod 输入法解决方案 方言与多语言多文字支持 英语汉字汉语阿拉伯文的支持 (au...
- 网站编程手册 服务器端,Peergine-P2P服务器端开发手册-v1.3.doc
- 保存/恢复cxGrid布局
- css flex排序居中
- 李宏毅机器学习课程11~~~为何要深?
- 安卓app开发工具_怎么开发app软件需要多少钱?主流app开发工具盘点
- hdu 5802——Windows 10
- [js] 异步请求重试策略有哪些呢?
- java分割汉字_Java分割中英文,并且中文不能分割一半?
- 《设计工作室生存手册》—第1章1.3节设计师目标要清晰
- linux网络适配器驱动程序怎么安装,英特尔?服务器适配器 — Linuxixgbe* 基础驱动程序概述和安装...
- JavaScript的Math对象使用(1)
- Python 基础数据类型
- python画图小实例_Python画高斯分布图形实例代码
- 使用迅捷PDF编辑器免费去除pdf水印
- 新手使用GitHub客户端提交本地项目到GitHub网站详细步骤
- 产品开发都应该知道的8个网站,增强工作体验
- 浅谈能源管理系统在钢铁企业上的应用
热门文章
- 稀疏矩阵概念及简单实现
- XZ_iOS 之 iTunes无法连接到此iPhone。无法分配资源。
- android10系统手机获取IMSI报错:The user 10116 does not meet the requirements to access device identifiers
- php组件缓冲区溢出漏洞,一个缓冲区溢出漏洞的简易教程
- Javascript 数组下标
- 什么是EI-EI检索是什么意思?
- 一句让我觉得很有道理的话
- 返利指定服务器,忘川风华录返利指定服务器是什么意思 返利指定服务器领取方法[多图]...
- 中国儿童感冒药行业研究及投资战略报告(2022版)
- 锐捷网络斩获多项殊荣