AtCoder Regular Contest 123 (A~C 三道好题)
比赛链接:Here
A - Arithmetic Sequence (good)
注意细节
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
ll a, b, c;
cin >> a >> b >> c;
ll x = 2 * b - a - c;
ll k = (x >= 0 ? 0 : (1 - x) / 2);
ll ans = x + 3 * k;
cout << ans << endl;
}
B - Increasing Triples (good)
大根堆优先队列
using PQ = priority_queue<int, vector<int>, greater<int>>;
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int n;
cin >> n;
PQ A, B, C;
for (int i = 0, x; i < n; ++i) {cin >> x; A.push(x);}
for (int i = 0, x; i < n; ++i) {cin >> x; B.push(x);}
for (int i = 0, x; i < n; ++i) {cin >> x; C.push(x);}
int a, b;
int ans = 0;
while (!A.empty()) {
a = A.top(); A.pop();
while (!B.empty() and B.top() <= a)B.pop();
if (B.empty() )break;
b = B.top(); B.pop();
while (!C.empty() and C.top() <= b)C.pop();
if (C.empty()) break;
C.pop();
++ans;
}
cout << ans ;
}
C - 1, 2, 3 - Decomposition (good)
给你一个数,让你分解成不含0的四进制之和,求最少分解成多少个?
从高位到低位思考,每一位有两种情况,一种借一给低位,另一种不借。含高位构造数数目小于等于含低位的构造数数目.
int solve(ll n) {
if (n == 0)return 0;
if (n < 10)return (n - 1) / 3 + 1;
ll mi = 0;
ll pi = n, pa, pb;
pb = solve(pi / 10 - 1);
pa = solve(pi / 10);
if (pa > pi % 10)return max(pb, (pi % 10 + 10 - 1) / 3 + 1);
return min(max(pa, (pi % 10 - 1) / 3 + 1), max(pb, (pi % 10 + 10 - 1) / 3 + 1));
}
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int _; for (cin >> _; _--;) {
ll n; cin >> n;
cout << solve(n) << '\n';
}
}
AtCoder Regular Contest 123 (A~C 三道好题)的更多相关文章
- Atcoder Regular Contest 123 题解
u1s1 我是真的不知道为什么现场这么多人切了 D,感觉 D 对思维要求显然要高于其他 300+ 人切掉的 D 吧(也有可能是 Atc 用户整体水平提升了?) A 开 幕 雷 击(这题似乎 wjz 交 ...
- AtCoder Regular Contest 061
AtCoder Regular Contest 061 C.Many Formulas 题意 给长度不超过\(10\)且由\(0\)到\(9\)数字组成的串S. 可以在两数字间放\(+\)号. 求所有 ...
- AtCoder Regular Contest 094 (ARC094) CDE题解
原文链接http://www.cnblogs.com/zhouzhendong/p/8735114.html $AtCoder\ Regular\ Contest\ 094(ARC094)\ CDE$ ...
- AtCoder Regular Contest 094
AtCoder Regular Contest 094 C - Same Integers 题意: 给定\(a,b,c\)三个数,可以进行两个操作:1.把一个数+2:2.把任意两个数+1.求最少需要几 ...
- AtCoder Regular Contest 102
AtCoder Regular Contest 102 C - Triangular Relationship 题意: 给出n,k求有多少个不大于n的三元组,使其中两两数字的和都是k的倍数,数字可以重 ...
- AtCoder Regular Contest 096
AtCoder Regular Contest 096 C - Many Medians 题意: 有A,B两种匹萨和三种购买方案,买一个A,买一个B,买半个A和半个B,花费分别为a,b,c. 求买X个 ...
- AtCoder Regular Contest 092
AtCoder Regular Contest 092 C - 2D Plane 2N Points 题意: 二维平面上给了\(2N\)个点,其中\(N\)个是\(A\)类点,\(N\)个是\(B\) ...
- AtCoder Regular Contest 093
AtCoder Regular Contest 093 C - Traveling Plan 题意: 给定n个点,求出删去i号点时,按顺序从起点到一号点走到n号点最后回到起点所走的路程是多少. \(n ...
- AtCoder Regular Contest 095
AtCoder Regular Contest 095 C - Many Medians 题意: 给出n个数,求出去掉第i个数之后所有数的中位数,保证n是偶数. \(n\le 200000\) 分析: ...
- AtCoder Regular Contest 097
AtCoder Regular Contest 097 C - K-th Substring 题意: 求一个长度小于等于5000的字符串的第K小子串,相同子串算一个. K<=5. 分析: 一眼看 ...
随机推荐
- 🔥🔥Java开发者的Python快速进修指南:自定义模块及常用模块
好的,按照我们平常的惯例,我先来讲一下今天这节课的内容,以及Java和Python在某些方面的相似之处.Python使用import语句来导入包,而Java也是如此.然而,两者之间的区别在于Pytho ...
- 通过.NET Core+Vue3 实现SignalR即时通讯功能
.NET Core 和 Vue3 结合使用 SignalR 可以实现强大的实时通讯功能,允许实时双向通信.在这个示例中,我们将详细说明如何创建一个简单的聊天应用程序,演示如何使用 .NET Core ...
- js实现在报表参数界面获取body中控件的值
要在报表参数界面获取body中控件的值,你可以使用JavaScript来实现.下面是一个详细的介绍: 1. DOM(文档对象模型): - DOM是用于操作HTML文档的API,它允许你通过JavaSc ...
- Socket是什么/怎么理解Socket
Socket 先来看一下百度百科对于Socket的介绍:套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开.读写和关闭等操作.套接字允许应用程序将I/O ...
- jvm总结图解
浅析jvm 内存模型 https://www.cnblogs.com/lewis0077/p/5143268.html
- 解决OpenCV3+VS2015(VS2017)运行时出现debug error abort()has been called的问题
问题描述: 在windows平台上安装opencv后,测试一张图片时,出现了debug error abort()has been called的问题 环境: vs2015 windows 10 op ...
- DFS遍历图(链式邻接表实现)
1 #include<iostream> 2 #include<string.h> 3 #include<stdlib.h> 4 #include<stdio ...
- 反向 Debug 了解一下?揭秘 Java DEBUG 的基本原理
Debug 的时候,都遇到过手速太快,直接跳过了自己想调试的方法.代码的时候吧-- 一旦跳过,可能就得重新执行一遍,准备数据.重新启动可能几分钟就过去了. 好在IDE 们都很强大,还给你后悔的机会,可 ...
- python自动化测试相关资料
java神功: https://yuedu.baidu.com/ebook/10f4bf7530126edb6f1aff00bed5b9f3f80f7212 selenium书:https:// ...
- CentOS连接网络设置
https://blog.csdn.net/tsundere_x/article/details/104263100 用这个 VMware提供了三种将虚拟网卡和物理网卡捆绑起来的方式,即桥接(Bri ...