Codeforces Round #742 (Div. 2)
A. Domino Disaster
思路
按照题意模拟即可 如果是
对应关系为R --> R L --> L U --> D D --> U
AC_CODE
inline void solve() {
int n; cin >> n;
string s; cin >> s;
string ans;
ans.resize(n);
for(int i = 0; i < n; i ++ ) {
if(s[i] == 'U') ans[i] = 'D';
else if(s[i] == 'D') ans[i] = 'U';
else ans[i] = s[i];
}
cout << ans << endl;
}
B. MEXor Mixup
题目中MEX的意思是 数组中最小的没有出现过的自然数...(百度了十分钟才查出来,离谱...)
思路
题目给了数组中的MEX 和 XOR (异或和) 分别是a和b
因此我们可以知道 数组中一定不存在a并且\(\le a\)的自然数一定会出现
因此我们先预处理出所有的异或前缀和 令这个数字为x
那么我们现在已经有了a个数字,并且异或和为x 我们想要从x 变为b
有三种可能
- x=b 我们输出 a 即可
- x^b=a 因为a这个数字不能用,所以我们需要两个数字构造出a 因此输出a+2
- x^b!=a 我们直接在原数组的基础上添加一个x^b即可满足构造要求,因此输出a+1
AC_CODE
const int N = 3e5 + 10;
LL x[N];
inline void solve() {
int a, b;
cin >> a >> b;
int res = 0;
res = x[a - 1];
if((res ^ b) == 0) cout << a << endl;
else if((res ^ b) != a) cout << a + 1 << endl;
else cout << a + 2 << endl;
}
signed main()
{
for(int i = 1; i < N; i ++ ) x[i] = (x[i - 1] ^ i);
int T = 1; cin >> T;
while(T -- ) {
solve();
}
return 0;
}
C. Carrying Conundrum
题意
Alice 在进行竖式加法的时候,每次进位都会多进一位,比如6+4=10 她会把1进位到百位从而得出100
给定一个数字n,求一共有多少个二元组通过上述计算等于n
思路
因为每次都会多进一位,即是进两位, 那么我们把一个数字的奇数位和偶数位分别拆开, 那么他们的进位就正常了
然后由乘法原理我们可以知道所有的数字的不同组合.
需要注意的是, 一个数字n可以由正常进位的两个数字组成,那么它的组成方法有n+1种,这里进位是正常的,所以我们只需要考虑一种特殊情况
就是两个数字的组合中分别有一个是0的情况,而且他们两个还放在一起了,由于两个每个组合改变顺序也是合法的,所以这种特殊情况有两次
因此最终的结果减去2即可
AC_CODE
inline void solve() {
string a;
cin >> a;
int x = 0, y = 0;
for(int i = 0; a[i]; i += 1)
if(i & 1)
x = x * 10 + (a[i] - '0');
else
y = y * 10 + (a[i] - '0');
cout << (x + 1) * (y + 1) - 2 << endl;
}
D - Expression Evaluation Error
题意
给定一个k个数字的和n 求如何分配k个数字(正整数) 使得k个数字在十一进制下的和最大
思路
我们肯定是要使最高位最大,因此我们贪心的从大到小枚举\(10^i\) 如果当前的n比\(10^i\)大而且可以使后面的数字最少分到1
我们就把这一个数字赋值为\(10^i\), 然后枚举到第k-1个数字,最后一个数字就是n剩下的数字
AC_CODE
#define LL long long
LL a[20];
inline void solve() {
int n, k; cin >> n >> k;
vector<int> ans(k);
for(int i = 0; i < k - 1; i ++ ) {
for(int j = 9; ~j; j -- ) {
if(n > a[j] && n - a[j] >= k - i - 1) {
ans[i] = a[j];
n -= a[j];
break;
}
}
}
ans[k - 1] = n;
for(int x: ans) printf("%d ", x);
puts("");
}
signed main()
{
LL p = 1;
for(int i = 0; i < 10; i ++ ) {
a[i] = p;
p *= 10;
}
int T = 1; cin >> T;
while(T -- ) {
solve();
}
return 0;
}
Codeforces Round #742 (Div. 2)的更多相关文章
- Codeforces Round #742 (Div. 2) B. MEXor Mixup
题目链接 Problem - B - Codeforces 题意: 给出MEX 和 XOR(分别表示1. 本串数不存在的最小非负数 2. 本串数所有数异或后的结果) 求出这串数最少有几个数, 1 ≤ ...
- Codeforces Round #742 (Div. 2)题解
链接 \(A,B\)题签到,就完了. \(C\)题,考虑进位时多进一位,由于是隔一位进的,所以可以发现奇数位和偶数位是相互独立的,那么我们就把奇数位和偶数位单独拉出来组成数字例如:34789,我们单独 ...
- Codeforces Round #366 (Div. 2) ABC
Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...
- Codeforces Round #354 (Div. 2) ABCD
Codeforces Round #354 (Div. 2) Problems # Name A Nicholas and Permutation standard input/out ...
- Codeforces Round #368 (Div. 2)
直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...
- cf之路,1,Codeforces Round #345 (Div. 2)
cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅..... ...
- Codeforces Round #279 (Div. 2) ABCDE
Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems # Name A Team Olympiad standard input/outpu ...
- Codeforces Round #262 (Div. 2) 1003
Codeforces Round #262 (Div. 2) 1003 C. Present time limit per test 2 seconds memory limit per test 2 ...
- Codeforces Round #262 (Div. 2) 1004
Codeforces Round #262 (Div. 2) 1004 D. Little Victor and Set time limit per test 1 second memory lim ...
随机推荐
- Rectangles(hdu2461)
Rectangles Time Limit: 5000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- The Limitations of Deep Learning in Adversarial Settings
目录 概 主要内容 alg2, alg3 一些有趣的实验指标 Hardness measure Adversarial distance Nicolas Papernot, Patrick McDan ...
- Not All Samples Are Created Equal: Deep Learning with Importance Sampling
目录 概 主要内容 "代码" Katharopoulos A, Fleuret F. Not All Samples Are Created Equal: Deep Learnin ...
- 【MySQL作业】MySQL函数——美和易思日期和时间函数应用习题
点击打开所使用到的数据库>>> 1.采用尽可能多的方式显示当前系统日期和时间. 下列 SQL 语句可以显示当前系统的日期和时间: curdate() 和 current_date() ...
- 编写Java程序,编写自定义异常类封装将棋子落在格子中已有棋子的异常
返回本章节 返回作业目录 需求说明: 完善控制台版五子棋,判断用户所下棋子的位置,是否已经存在棋子,如果已经存在,则抛出用户自定义异常,提示用户该位置已经有棋子. 实现思路: 创建用户自定义异常类Go ...
- css 快速入门 系列 —— 浮动
浮动 以 mdn float 文档 为基础,逐一介绍浮动的本质.浮动的诸多特性.清除浮动以及块格式化上下文(bfc). 概念 当一个元素浮动之后,它会被移出正常的文档流,然后向左或者向右平移,一直平移 ...
- Office - 0x4004F00C解决方法
之前用HEU_KMS激活了180天的office 2013(专业版),今天打开突然报错0x4004F00C 大致意思就是提示你:office还有几天将要过期,到时候只能查看文档.表格.ppt,而不能编 ...
- .net core的配置介绍(二):自定义配置(Zookeeper,数据库,Redis)
上一篇介绍了.net core的配置原理已经系统提供的一些常用的配置,但有时我们的配置是存放在Zookeeper,DB,Redis中的,这就需要我们自己去实现集成了. 这里再介绍几个我们用的多的配置集 ...
- oceanbase数据库比赛总结
前言 ob数据库大赛由蚂蚁金服的oceanbase团队组织,今年是第一届,宣传很广,比赛十月份开始,但早在上半年就看见大量的宣传了,比赛也是相当的卷.我们进了复赛之后感觉要卷进决赛需要付出的时间精力都 ...
- SQL高级优化(六)之MySQL索引
一.索引概述 1. 索引的优点 为什么要创建索引?这是因为,创建索引可以大大提高系统的查询性能.如果不使用索引,查询时从第一行开始查询.如果使用了索引,所以就可以更加快速的找到希望的数据. 第一. ...