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 ...
随机推荐
- C# 基础(更新中)
Data Structure There're two types of variables in C#, reference type and value type. Enum: enum Colo ...
- 业务层面和运维层面优化你的Redis
业务层面 key的长度尽量要短,在数据量非常大时,过长的key名会占用更多的内存; 一定避免存储过大的数据(大value),过大的数据在分配内存和释放内存时耗时严重,会阻塞主线程; Redis 4.0 ...
- Azure Data Lake(一) 在NET Core 控制台中操作 Data Lake Storage
一,引言 Azure Data Lake Storage Gen2 是一组专用于大数据分析的功能,基于 Azure Blob Storage 构建的.Data Lake Storage Gen2 包含 ...
- Java EE数据持久化框架笔记 • 【目录】
章节 内容 实践练习 Java EE数据持久化框架作业目录(作业笔记) 第1章 Java EE数据持久化框架笔记 • [第1章 MyBatis入门] 第2章 Java EE数据持久化框架笔记 • [第 ...
- 在页面中添加两个 <select> 标签,用来显示年份和月份;同时添加两个 <ul> 标签,一个用来显示星期,另一个用来显示日期 在 JavaScript 脚本中动态添加年份和月份,获取当前日期的年份
查看本章节 查看作业目录 需求说明: 使用 JavaScript 中的 Date 对象,在页面上显示一个万年历.选择不同的年份和月份,在页面中显示当前月的日历 实现思路: 在页面中添加两个 <s ...
- .NET 云原生架构师训练营(设计原则&&设计模式)--学习笔记
目录 设计原则 设计模式 设计原则 DRY (Don't repeat yourself 不要重复) KISS (Keep it stupid simple 简单到傻子都能看懂) YAGNI (You ...
- Cause: org.postgresql.util.PSQLException: 栏位索引超过许可范围:13,栏位数:12
Cause: org.postgresql.util.PSQLException: 栏位索引超过许可范围:13,栏位数:12. 这个报错的原因是在mapper文件中的sql语书写错误 <inse ...
- redis中文乱码问题
1.可以直接打开dos指令框输入指令进去redis数据库,因为在安装的时候就已经勾选了配置默认的环境变量. 2.可以输入ip进去,redis-cli.exe -h 192.168.32.8 -p 63 ...
- 基于Apache Hudi + Flink的亿级数据入湖实践
本次分享分为5个部分介绍Apache Hudi的应用与实践 实时数据落地需求演进 基于Spark+Hudi的实时数据落地应用实践 基于Flink自定义实时数据落地实践 基于Flink+Hudi的应用实 ...
- PAT 乙级 1003. 我要通过!(20) (C语言描述)
"答案正确"是自动判题系统给出的最令人欢喜的回复.本题属于PAT的"答案正确"大派送 -- 只要读入的字符串满足下列条件,系统就输出"答案正确&quo ...