比赛链接: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题个人题解的更多相关文章

  1. Codeforces Round #609 (Div. 2)前五题题解

    Codeforces Round #609 (Div. 2)前五题题解 补题补题…… C题写挂了好几个次,最后一题看了好久题解才懂……我太迟钝了…… 然后因为longlong调了半个小时…… A.Eq ...

  2. Codeforces Round #310 (Div. 2)--A(简单题)

    http://codeforces.com/problemset/problem/556/A 题意:给一个01字符串,把所有相邻的0和1去掉,问还剩下几个0和1. 题解:统计所有的0有多少个,1有多少 ...

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

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

  5. Codeforces Round #316 (Div. 2) (ABC题)

    A - Elections 题意: 每一场城市选举的结果,第一关键字是票数(降序),第二关键字是序号(升序),第一位获得胜利. 最后的选举结果,第一关键字是获胜城市数(降序),第二关键字是序号(升序) ...

  6. Codeforces Round #590 (Div. 3)【D题:26棵树状数组维护字符出现次数】

    A题 题意:给你 n 个数 , 你需要改变这些数使得这 n 个数的值相等 , 并且要求改变后所有数的和需大于等于原来的所有数字的和 , 然后输出满足题意且改变后最小的数值. AC代码: #includ ...

  7. Codeforces Round #590 (Div. 3)【D题:维护26棵树状数组【好题】】

    A题 题意:给你 n 个数 , 你需要改变这些数使得这 n 个数的值相等 , 并且要求改变后所有数的和需大于等于原来的所有数字的和 , 然后输出满足题意且改变后最小的数值. AC代码: #includ ...

  8. Codeforces Round #599 (Div. 2)的简单题题解

    难题不会啊…… 我感觉写这个的原因就是因为……无聊要给大家翻译题面 A. Maximum Square 简单题意: 有$n$条长为$a_i$,宽为1的木板,现在你可以随便抽几个拼在一起,然后你要从这一 ...

  9. A. Yellow Cards ( Codeforces Round #585 (Div. 2) 思维水题

    ---恢复内容开始--- output standard output The final match of the Berland Football Cup has been held recent ...

  10. Codeforces Round #525 (Div. 2)后俩题

    E:https://codeforces.com/contest/1088/problem/E dp+贪心 题目大意:选择一个k并且选择k个连通块,要求sigma a[i]/k最大,k尽量大,对于给定 ...

随机推荐

  1. Spring Boot 3.2发布:大量Java 21的支持上线,改进可观测性

    就在今天凌晨,Spring Boot 3.2正式发布了!该版本是在Java 21正式发布之后的重要支持版本,所以在该版本中包含大量对Java 21支持的优化. 下面,我们分别通过Spring官方发布的 ...

  2. Python 之 Numpy 框架入门

    NumPy 目录 NumPy 基础使用 基本数据类型 创建基本数组 数组属性 数组生成 zeros.ones.empty 数组生成 numpy.zeros numpy.ones numpy.empty ...

  3. WPS JS宏

    WPS JS宏 1 JS宏基础 1.1 JS宏基础 1.1.1 JS录制新宏 如果在WPS表格中要编写控制表格的代码,却又不知道如何编写,那么可以使用JS录制新宏功能,接下来录制几个常用的操作: 录制 ...

  4. Chrome扩展的核心:manifest 文件(上)

    大家好,我是dom哥.我正在写关于 Chrome 扩展开发的系列文章,感兴趣的可以点个小星星. Chrome 在全球浏览器市场份额独占 6 成,无论是对普通用户还是开发者,都是电脑里的必备利器.Chr ...

  5. bash shell笔记整理——tail命令

    作用 Print the last 10 lines of each FILE to standard output. With more than one FILE, precede each wi ...

  6. 38. 干货系列从零用Rust编写负载均衡及代理,负载均衡中ip通行与禁止

    wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代 ...

  7. C#汉诺塔递归算法实现

    目录: 一.什么是递归 1.先来看一下一个递归的例子 2.递归的基本原理 二.汉诺塔问题 1.汉诺塔的故事 2.回到编程,汉诺塔问题主要就是解决这个问题: 3.怎么解决汉诺塔问题 要解决汉诺塔问题就要 ...

  8. GDAL使用PROJ坐标转换相关问题的总结

    目录 1. 概述 2. 详论 2.1. 数据 2.2. PROJ库 2.3. 参考 1. 概述 GDAL是使用PROJ进行坐标转换的,但是很容易出现转换不了的问题,这里总结一二,以供参考. 2. 详论 ...

  9. 实例讲解FusionInsight MRS RTD 实时决策引擎在医保行业应用

    摘要: 通过引入FusionInsight RTD实时决策系统,实现医保费用事前预防.事中控制.事后审核的全流程管理 本文分享自华为云社区<FusionInsight MRS RTD 实时决策引 ...

  10. 深度解读鸿蒙轻内核CPU占用率

    摘要:CPUP(Central Processing Unit Percentage,CPU占用率)分为系统CPU占用率和任务CPU占用率.用户通过系统级的CPU占用率,判断当前系统负载是否超出设计规 ...