2024-2025 ICPC, NERC, Southern and Volga Russian Regional Contest(cf)(个人记录)

devtools/2024/11/30 8:58:41/

A:

在这里插入图片描述

思路:一开始有点懵逼,理解错题意了}, 由于是顺序分配,因此前面的人可以选择的条件更多,后面的人更少,我们从后向前遍历即可

#include<bits/stdc++.h>using namespace std;typedef long long ll;
typedef pair<ll, ll>PII;
const int N = 2e5 + 10;
const int MOD = 998244353;
const int INF = 0X3F3F3F3F;
const int dx[] = {-1, 1, 0, 0, -1, -1, +1, +1};
const int dy[] = {0, 0, -1, 1, -1, +1, -1, +1};
const int M = 1e9 + 7;PII p[N];
ll a[N];
ll n, oo;
//越向后选择权越小
int main()
{cin >> n >> oo;for(int i = 1; i <= n; i ++){cin >> p[i].first;}ll s = 0;for(int i = 1; i <= n; i ++){cin >> p[i].second;s += p[i].first / p[i].second;}if(s < oo) {for(int i = 1; i <= n; i ++){cout << 0 << " ";}cout << endl;}else {ll res = 0;for(int i = n; i >= 1; i --){ll o = p[i].first / p[i].second;res += o;if(res >= oo){a[i] = o - (res - oo);break;}else a[i] = p[i].first / p[i].second;}for(int i = 1; i <= n; i ++) cout << a[i] << ' ';}return 0;
}

C:

在这里插入图片描述

思路:我们可以知道对于矩形的四个顶点(x1, y1), (x2, y2), (x3, y3), (x4, y4), x1 == x2, x3 == x4, y1 == y3, y2 == y4, 因此我们只需要找出来两两相等的数即可,然后排个序,找出前两个顶点和最后两个顶点即可,此时面积即为最大值

#include<bits/stdc++.h>using namespace std;typedef long long ll;
typedef pair<ll, ll>PII;
const int N = 2e5 + 10;
const int MOD = 998244353;
const int INF = 0X3F3F3F3F;
const int dx[] = {-1, 1, 0, 0, -1, -1, +1, +1};
const int dy[] = {0, 0, -1, 1, -1, +1, -1, +1};
const int M = 1e9 + 7;int t;ll a[N];
int main()
{cin >> t;while(t --){int n;cin >> n;map<ll, ll>ma;for(int i = 1; i <= n; i ++) {ll x;cin >> x;ma[x] ++;}int k = 0;for(auto it : ma){ll i = it.second;for(int j = 1; j <= i / 2; j ++) a[++ k] = it.first;}if(k < 4) cout << "NO" << endl;else {cout << "YES" << endl;ll x1 = a[1], y1 = a[2];ll x2 = a[1], y2 = a[k];ll x3 = a[k - 1], y3 = a[2];ll x4 = a[k - 1], y4 = a[k];cout << x1 << " " << y1 << " " << x2 << " " << y2 << ' ' << x3 << " " << y3 << " " << x4 << " " << y4 << endl;} }return 0;
}

J:

在这里插入图片描述

签到题,直接模拟即可

#include<bits/stdc++.h>using namespace std;typedef long long ll;
typedef pair<ll, ll>PII;
const int N = 2e5 + 10;
const int MOD = 998244353;
const int INF = 0X3F3F3F3F;
const int dx[] = {-1, 1, 0, 0, -1, -1, +1, +1};
const int dy[] = {0, 0, -1, 1, -1, +1, -1, +1};
const int M = 1e9 + 7;int t;ll a[N];
int main()
{cin >> t;ll s = 0;while(t --){char c;int x;cin >> c >> x;if(c == 'P'){s += x;}else {if(s < x) cout << "YES" << endl;else cout << "NO" << endl;s -= x;s = max((ll)0, s);}}return 0;
}

L:

在这里插入图片描述

思路:(整体分配法)我们的木棍长度为60, 对于18和21, 我们可以这样分配(18, 18, 18)(18, 18, 21)(18, 21, 21), 因此对于前两个能整除3的部分我们直接的求出s1 = 2 * n / 3, 对于有25的部分, 无论如何分配我们最多只能制作2个, 还需要在加上前两个剩余的数即可, s2 = (2 * n % 3 + n + 1) / 2;(向上取整)

#include<bits/stdc++.h>using namespace std;typedef long long ll;
typedef pair<ll, ll>PII;
const int N = 2e5 + 10;
const int MOD = 998244353;
const int INF = 0X3F3F3F3F;
const int dx[] = {-1, 1, 0, 0, -1, -1, +1, +1};
const int dy[] = {0, 0, -1, 1, -1, +1, -1, +1};
const int M = 1e9 + 7;int t;int main()
{//看作成整体后在做即可ll n;cin >> n;cout << n * 2 / 3 + (n * 2 % 3 + 1 + n) / 2 << endl;return 0;
}

N:

在这里插入图片描述

签到题, 模拟即可

#include<bits/stdc++.h>using namespace std;typedef long long ll;
typedef pair<ll, ll>PII;
const int N = 2e5 + 10;
const int MOD = 998244353;
const int INF = 0X3F3F3F3F;
const int dx[] = {-1, 1, 0, 0, -1, -1, +1, +1};
const int dy[] = {0, 0, -1, 1, -1, +1, -1, +1};
const int M = 1e9 + 7;int main()
{int t;cin >> t;while(t --){string s;cin >> s;if(s[0] < s[2])cout << s[0] << '<' << s[2] << endl;if(s[0] > s[2])cout << s[0] << '>' << s[2] << endl;if(s[0] == s[2])cout << s[0] << '=' << s[2] << endl;}return 0;
}

http://www.ppmy.cn/devtools/138146.html

相关文章

github webhooks 实现网站自动更新

本文目录 Github Webhooks 介绍Webhooks 工作原理配置与验证应用云服务器通过 Webhook 自动部署网站实现复制私钥编写 webhook 接口Github 仓库配置 webhook以服务的形式运行 app.py Github Webhooks 介绍 Webhooks是GitHub提供的一种通知方式&#xff0c;当GitHub上发生特定事…

Leetcode(区间合并习题思路总结,持续更新。。。)

讲解题目&#xff1a;合并区间 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c; 并返回一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间。示例 1&#xff1a;输入&a…

windows10桌面鼠标右键出现卡顿解决方法 - 副本

步骤如下&#xff1a; 1、按下“WinR” windows10鼠标点击右键出现卡顿的解决方法就为大家介绍到这里了。遇到类似问题的朋友&#xff0c;不要太过紧张&#xff0c;只要按照上面步骤操作一遍就好了。组合键打开运行&#xff0c;输入“regedit”点击确定打开注册表编辑器&…

Flink四大基石之State

State state 可以理解为-- 历史计算结果 有状态计算和无状态计算 无状态计算: 不需要考虑历史数据, 相同的输入,得到相同的输出!如:map, 将每个单词记为1, 进来一个hello, 得到(hello,1),再进来一个hello,得到的还是(hello,1) 有状态计算: 需要考虑历史数据, 相同的输入,可…

HTTP(网络)

目录 1.Http的基本代码 1.1 HttpServer.hpp 1.2 简单测试一下 1.3 用telnet测试一下 1.4 用浏览器访问 1.5 返回相应的过程&#xff08;网页版本&#xff09;​编辑 1.5.1 再次用浏览器访问 1.6 返回相应的过程&#xff08;文件版本&#xff09; 1.6.1网页 1.6.2 测试 …

亚马逊开发视频人工智能模型,The Information 报道

根据《The Information》周三的报道&#xff0c;电子商务巨头亚马逊&#xff08;AMZN&#xff09;已开发出一种新的生成式人工智能&#xff08;AI&#xff09;&#xff0c;不仅能处理文本&#xff0c;还能处理图片和视频&#xff0c;从而减少对人工智能初创公司Anthropic的依赖…

鸿蒙技术分享:Navigation页面管理-鸿蒙@fw/router框架源码解析(二)

theme: smartblue 本文是系列文章&#xff0c;其他文章见&#xff1a;鸿蒙fw/router框架源码解析&#xff08;一&#xff09;-Router页面管理 鸿蒙fw/router框架源码解析 介绍 fw/router是在HarmonyOS鸿蒙系统中开发应用所使用的开源模块化路由框架。该路由框架基于模块化开…

【第十课】Rust并发编程(一)

目录 前言 Fork和Join 前言 本节会介绍Rust中的并发编程&#xff0c;并发编程在编程中是提升cpu使用率的一大利器&#xff0c;通过多线程技术提升效率&#xff0c;Rust的并发和其他编程语言的并发不同的地方在于&#xff0c;Rust号称无畏并发。更重要的一点是安全。Rust中所有…