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 题解相关推荐

  1. Codeforces Round #742 (Div. 2) F. One-Four Overload 构造 + 二分图染色

    传送门 文章目录 题意: 思路: 题意: 给你一个n∗mn*mn∗m的矩形,包含...和XXX,你有两种颜色,你需要给...染色使得每个XXX上下左右相邻的...其两种颜色个数相同,输出一种合法方案. ...

  2. Codeforces Round #198 (Div. 2)A,B题解

    Codeforces Round #198 (Div. 2) 昨天看到奋斗群的群赛,好奇的去做了一下, 大概花了3个小时Ak,我大概可以退役了吧 那下面来稍微总结一下 A. The Wall Iahu ...

  3. 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≤ ...

  4. Codeforces Round #742 (Div. 2) 个人题解

    A. Domino Disaster 2分钟签到 #include <bits/stdc++.h> #define fors(i, a, b) for(int i = (a); i < ...

  5. 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 ...

  6. 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 ...

  7. Codeforces Round #742 (Div. 2) E. Non-Decreasing Dilemma (线段树维护区间连续问题)

    题意: 操作1:把x位置的数字修改成y. 操作2:查询[l,r]之间不下降序列的个数. 题解: 线段树维护区间和问题 (这是套路,想不到只能说做题少别打我) . 用五个变量进行维护. sum区间总个数 ...

  8. 【记录CF】Codeforces Round #777 (Div. 2) A~C 题解

    目录 杂谈 A. Madoka and Math Dad B. Madoka and the Elegant Gift C. Madoka and Childish Pranks 杂谈 又是一场离谱掉 ...

  9. 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 ...

最新文章

  1. 目标识别的选择性搜索
  2. (已解决)(Jupyter notebook)中的tqdm进度条不是在一行更新并显示而是一直滚动往下输出
  3. Atian inputmethod 输入法解决方案 方言与多语言多文字支持 英语汉字汉语阿拉伯文的支持 (au...
  4. 网站编程手册 服务器端,Peergine-P2P服务器端开发手册-v1.3.doc
  5. 保存/恢复cxGrid布局
  6. css flex排序居中
  7. 李宏毅机器学习课程11~~~为何要深?
  8. 安卓app开发工具_怎么开发app软件需要多少钱?主流app开发工具盘点
  9. hdu 5802——Windows 10
  10. [js] 异步请求重试策略有哪些呢?
  11. java分割汉字_Java分割中英文,并且中文不能分割一半?
  12. 《设计工作室生存手册》—第1章1.3节设计师目标要清晰
  13. linux网络适配器驱动程序怎么安装,英特尔?服务器适配器 — Linuxixgbe* 基础驱动程序概述和安装...
  14. JavaScript的Math对象使用(1)
  15. Python 基础数据类型
  16. python画图小实例_Python画高斯分布图形实例代码
  17. 使用迅捷PDF编辑器免费去除pdf水印
  18. 新手使用GitHub客户端提交本地项目到GitHub网站详细步骤
  19. 产品开发都应该知道的8个网站,增强工作体验
  20. 浅谈能源管理系统在钢铁企业上的应用

热门文章

  1. 稀疏矩阵概念及简单实现
  2. XZ_iOS 之 iTunes无法连接到此iPhone。无法分配资源。
  3. android10系统手机获取IMSI报错:The user 10116 does not meet the requirements to access device identifiers
  4. php组件缓冲区溢出漏洞,一个缓冲区溢出漏洞的简易教程
  5. Javascript 数组下标
  6. 什么是EI-EI检索是什么意思?
  7. 一句让我觉得很有道理的话
  8. 返利指定服务器,忘川风华录返利指定服务器是什么意思 返利指定服务器领取方法[多图]...
  9. 中国儿童感冒药行业研究及投资战略报告(2022版)
  10. 锐捷网络斩获多项殊荣