Codeforces Round #730 (Div. 2) A~D题个人题解
比赛链接:Here
1543A. Exciting Bets
math,
给定两个数字 \(a,b (a,b \le 1e18)\) 和以下两种操作:
- \(a + 1,b+1\)
- \(a-1,b-1\ if\ a > 0\) 并且 $ b > 0$
请问经过最少多少次操作能使得 \(GCD(a,b)\) 最大化
注意:\(GCD(x,0)=x\)
输出 \(max(GCD(a,b)),min(cnt)\)
- 如果 \(a = b\) 那么直接输出 \(0,0\)
- 否则,能获得的最大 \(GCD(a,b) = |a-b|\) ,对于实现次数为 \(min(a\ mod\ g,g - a\ mod\ g)\)
【AC Code】
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int _; for (cin >> _; _--;) {
ll a, b;
cin >> a >> b;
if (a == b)cout << "0 0\n";
else {
ll g = abs(a - b);
ll m = min(a % g, g - a % g);
cout << g << " " << m << "\n";
}
}
}
1543B. Customising the Track
给定数组 \(a\) ,给定以下操作:
可以把任意值的 \(a_i\) 转移给 \(a_j\)
求最小化 \(\sum\limits_{i = 1}^n\sum\limits_{j = i + 1}^n|a_i-a_j|\)
要最小化 \(\sum\limits_{i = 1}^n\sum\limits_{j = i + 1}^n|a_i-a_j|\) ,简单贪 \(a_i = a_j\)
如果 数组数值总和不能平均分配则把不能平均分配的数都化 1
【AC Code】
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int _; for (cin >> _; _--;) {
int n; cin >> n;
ll sum = 0;
for (int i = 0; i < n; ++i) {
ll x; cin >> x;
sum += x;
}
ll t = sum / n, tt = sum % n;
cout << sum % n * (n - (sum - t * n)) << "\n";
}
}
1543C. Need for Pink Slips
(题意太长,翻译不过来)
精度!精度!还是精度!
能用
long double就不用double
【AC Code】
using ld = long double;
const ld eps = 1e-9;
const ld scale = 1e+6;
ld solve(int c, int m, int p, int v) {
ld ans = p / scale;
if (c > 0) {
if (c > v) {
if (m > 0) ans += (c / scale) * (1 + solve(c - v, m + v / 2, p + v / 2, v));
else ans += (c / scale) * (1 + solve(c - v, 0, p + v, v));
} else {
if (m > 0) ans += (c / scale) * (1 + solve(0, m + c / 2, p + c / 2, v));
else ans += (c / scale) * (1 + solve(0, 0, p + c, v));
}
}
if (m > 0) {
if (m > v) {
if (c > 0) ans += (m / scale) * (1 + solve(c + v / 2, m - v, p + v / 2, v));
else ans += (m / scale) * (1 + solve(0, m - v, p + v, v));
} else {
if ( c > 0) ans += (m / scale) * (1 + solve(c + m / 2, 0, p + m / 2, v));
else ans += (m / scale) * (1 + solve(0, 0, p + m, v));
}
}
return ans;
}
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int _; for (cin >> _; _--;) {
ld cd, md, pd, vd;
cin >> cd >> md >> pd >> vd;
int c = round(cd * scale);
int m = round(md * scale);
int p = round(pd * scale);
int v = round(vd * scale);
ld ans = solve(c, m, p, v);
cout << setprecision(12) << fixed << ans << "\n";
}
}
1543D1. RPD and Rap Sheet (Easy Version)
(说实话,没看懂这题;
赛后学习一下 Pecco神 的代码
【AC Code】
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int _; for (cin >> _; _--;) {
int n, x, s = 0;
cin >> n >> x;
for (int i = 0; i < n; ++i) {
int y = (i ^ s), ok;
cout << y << "\n"
<< flush;
cin >> ok;
if (ok) break;
s ^= y;
}
}
}
Codeforces Round #730 (Div. 2) A~D题个人题解的更多相关文章
- Codeforces Round #609 (Div. 2)前五题题解
Codeforces Round #609 (Div. 2)前五题题解 补题补题…… C题写挂了好几个次,最后一题看了好久题解才懂……我太迟钝了…… 然后因为longlong调了半个小时…… A.Eq ...
- Codeforces Round #310 (Div. 2)--A(简单题)
http://codeforces.com/problemset/problem/556/A 题意:给一个01字符串,把所有相邻的0和1去掉,问还剩下几个0和1. 题解:统计所有的0有多少个,1有多少 ...
- Codeforces Round #416 (Div. 2)(A,思维题,暴力,B,思维题,暴力)
A. Vladik and Courtesy time limit per test:2 seconds memory limit per test:256 megabytes input:stand ...
- Codeforces Round #336 (Div. 2)-608A.水题 608B.前缀和
A题和B题... A. Saitama Destroys Hotel time limit per test 1 second memory limit per test 256 megabyte ...
- Codeforces Round #316 (Div. 2) (ABC题)
A - Elections 题意: 每一场城市选举的结果,第一关键字是票数(降序),第二关键字是序号(升序),第一位获得胜利. 最后的选举结果,第一关键字是获胜城市数(降序),第二关键字是序号(升序) ...
- Codeforces Round #590 (Div. 3)【D题:26棵树状数组维护字符出现次数】
A题 题意:给你 n 个数 , 你需要改变这些数使得这 n 个数的值相等 , 并且要求改变后所有数的和需大于等于原来的所有数字的和 , 然后输出满足题意且改变后最小的数值. AC代码: #includ ...
- Codeforces Round #590 (Div. 3)【D题:维护26棵树状数组【好题】】
A题 题意:给你 n 个数 , 你需要改变这些数使得这 n 个数的值相等 , 并且要求改变后所有数的和需大于等于原来的所有数字的和 , 然后输出满足题意且改变后最小的数值. AC代码: #includ ...
- Codeforces Round #599 (Div. 2)的简单题题解
难题不会啊…… 我感觉写这个的原因就是因为……无聊要给大家翻译题面 A. Maximum Square 简单题意: 有$n$条长为$a_i$,宽为1的木板,现在你可以随便抽几个拼在一起,然后你要从这一 ...
- A. Yellow Cards ( Codeforces Round #585 (Div. 2) 思维水题
---恢复内容开始--- output standard output The final match of the Berland Football Cup has been held recent ...
- Codeforces Round #525 (Div. 2)后俩题
E:https://codeforces.com/contest/1088/problem/E dp+贪心 题目大意:选择一个k并且选择k个连通块,要求sigma a[i]/k最大,k尽量大,对于给定 ...
随机推荐
- 【公告】luogu blog (daiyulong20120222) 即将迁移!
\[\huge\text{luogu blog (daiyulong20120222) 即将迁移到 cnblogs!}\\ \] \[\huge\color{blue}\text{https://ww ...
- 城院导航小程序软件需求规范(SRS)(三期作业汇总)
城院导航小程序软件需求规范(SRS) 1. 引言 1.1 目的 小帅小美们注意看!! 公主请批阅! 王子请批阅! 本文档描述了城院导航小程序的功能和非功能需求.它旨在为开发团队.导师和利益相关者提供清 ...
- 深度解读DBSCAN聚类算法:技术与实战全解析
探索DBSCAN算法的内涵与应用,本文详述其理论基础.关键参数.实战案例及最佳实践,揭示如何有效利用DBSCAN处理复杂数据集,突破传统聚类限制. 关注TechLead,分享AI全维度知识.作者拥有1 ...
- [ABC232G] Modulo Shortest Path
Problem Statement We have a directed graph with $N$ vertices, called Vertex $1$, Vertex $2$, $\ldots ...
- 华企盾DSC缩略图某些类型勾选取消不掉
案例:pdf取消勾选后,再次打开还是勾选的 解决方法:文件类型的其它分组也添加了pdf类型,所以默认会勾选回去,需要把其它的也取消勾选
- cache操作:clean、invalidate与flush的含义
前言 本文试图搞清楚cache几个操作:clean.invalidate与flush的含义.由于只用过ARM和RISC-V,所以是从ARM和RISC-V的角度来说明. cache line cache ...
- HP LoadRunner 11.00安装+破解+汉化
里面包含多个破解码,最高支持6.5w个并发: https://blog.csdn.net/xianjie0318/article/details/78625980
- mac如何访问同一wifi下的项目-mac-ru-he-fang-wen-tong-yi-wifi-xia-de-xiang-mu
title: mac如何访问同一wifi下的项目 date: 2022-03-28 20:14:06.341 updated: 2022-03-28 21:55:42.53 url: https:// ...
- java判断两个日期是否连续
使用java判断两个日期的天是否连续 import java.text.SimpleDateFormat; import java.util.Date; /** * @author lingkang ...
- struts2 Filter中无法转发请求
struts2 Filter中无法转发请求 项目升级struts2版本为最新以修复漏洞,由于一些历史原因,部分访问在升级后访问404,直接对历史代码改造代价太大. 于是使用拦截器对其转发.重定向,但是 ...