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 ...
随机推荐
- 51Nod 1264:线段相交(计算几何)
51Nod 1264:线段相交 Decision 给出平面上两条线段的两个端点,判断这两条线段是否相交(有一个公共点或有部分重合认为相交). 如果相交,输出"Yes",否则输出&q ...
- python xlwt写Excel表
1 xlwt第三方库 说明:xlwt是一个用于将数据和格式化信息写入并生成Excel文件的库. 注意:xlwt不支持写xlsx表,打开表文件报错. 官方文档:https://xlwt.readthed ...
- CS5211完全替代兼容LT7211|PS8625|CH7511方案|EDP转LVDS|Capstone CS5211
CH7511|LT7211|PS8625替代方案--Capstone CS5211AN 设计EDP转LVDS优势方案原理图+PCB板设计 CH7511|LT7211|PS8625这三款都是专门用于设计 ...
- Vue.js高效前端开发 • 【Ant Design of Vue框架进阶】
全部章节 >>>> 文章目录 一.栅格组件 1.栅格组件介绍 2.栅格组件使用 3.实践练习 二.输入组件 1.输入框组件使用 2.选择器组件使用 3.单选框组件使用 4.实践 ...
- 如何下载安装JDBC_jar包,MySQL_JDBC_jar包的下载与使用(Windows)
一. 下载 (1) 打开MySQL_JDBC的下载网站:https://dev.mysql.com/downloads/connector/j/ (2) 选择操作系统:Platform Indepen ...
- SpringBoot集成Actuator端点配置
1.说明 Actuator端点可以监控应用程序并与之交互. Spring Boot包括许多内置的端点, 比如health端点提供基本的应用程序运行状况信息, 并允许添加自定义端点. 可以控制每个单独的 ...
- C#中ref关键字的用法总结
ref表示引用的意思,C#中它有多种用法,这里简单总结一下: 1.按引用传递参数 具体可见:C#中的值传递与引用传递(in.out.ref) 2.引用局部变量 引用局部变量指的是在变量声明时使用ref ...
- RSA非对称加密算法实现:Golang
RSA是1977年由罗纳德·李维斯特(Ron Rivest).阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的.当时他们三人都在麻省理工学院工作.RSA ...
- Bom 基本使用以及定时器 倒计时案例
BOM 是浏览器对象模型 它提供了独立内容而与浏览器窗口进行交互的对象,其核心对象是window 窗口加载事件 注意:window.onload 就可以吧JS代码写在页面元素的上方,因为onload是 ...
- python 之 pip、pypdf2 安装与卸载
pip是个啥? pip 是一个现代的,通用的 Python 包管理工具.提供了对 Python 包的查找.下载.安装.卸载的功能. 第一步:pip 下载:https://pypi.org/projec ...