SMU Summer 2023 Contest Round 10(ICPC — International Collegiate Programming Contest Asia Regional Contest, Yokohama,2018)
SMU Summer 2023 Contest Round 10(ICPC — International Collegiate Programming Contest Asia Regional Contest, Yokohama)
Problem A
Digits Are Not Just Characters
模拟,注意以下几点,用\(s\)代表比较的字符串,\(str\)代表原字符串:
- s 和 str 一样,排 str 后面.
- 前面部分相同的情况下, s 和 str 谁先碰到数字谁排前面.
- 碰到数字比较谁的数字更小, 谁排前面.
- 剩下就逐字符比较.
- 如果 s 是 str 的前缀, 那 s 应该放前面, 否则放后面.
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
vector<string> a(n);
string str;
cin >> str;
for (auto &i : a) cin >> i;
auto check = [&](string s) {
if (s == str) return false;
int i = 0, j = 0;
for (; i < s.size() && j < str.size(); i++, j++) {
if (isdigit(s[i]) && !isdigit(str[j])) return true;
if (isdigit(str[j]) && !isdigit(s[i])) return false;
int nums = 0, numstr = 0;
while (isdigit(s[i]) && i < s.size()) {
nums = nums * 10 + s[i] - '0';
i++;
}
while (isdigit(str[j]) && j < str.size()) {
numstr = numstr * 10 + str[j] - '0';
j++;
}
if (nums < numstr) return true;
else if (nums > numstr) return false;
if (s[i] < str[j]) return true;
else if (s[i] > str[j]) return false;
}
if (s.size() < str.size()) return true;
return false;
};
for (auto i : a) {
if (check(i)) cout << "-\n";
else cout << "+\n";
}
return 0;
}
Problem B(动态规划)
Arithmetic Progressions
用\(dp[i][j]\)的\(i,j\)项表示某个等差数列是以\(a[i],a[j]\)结尾的,然后去二分找到他的下一项找到了就进行转移,最大值随着更新
#include <bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
vector<int> a(n);
for(auto &i : a) cin >> i;
sort(a.begin(), a.end());
vector dp(n,vector<int>(n,2));
int ans = 2;
for(int i = 0;i < n;i ++){
for(int j = 0;j < i;j ++){
int p = lower_bound(a.begin(), a.end(),a[j] - a[i] + a[j]) - a.begin();
if(a[p] - a[j] == a[j] - a[i])
dp[i][j] = max(dp[i][j], dp[j][p] + 1);
ans = max(ans,dp[i][j]);
}
}
cout << ans << '\n';
return 0;
}
Problem C
Emergency Evacuation
如果两个人到出口的时间是相等的,那么其中一个就要多等一个时刻,相应的,如果有多个人到出口时间相等,那么除了第一个人以外,其余人都要往后等\(1,2,3,\dots\)时刻,最终取最后一个人到达出口的时间就是答案了.
#include<bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int r,s,p;
cin >> r >> s >> p;
std::vector<int> v(p);
for(int i = 0,x,y;i < p;i ++){
cin >> x >> y;
v[i] = r - x + 1;
if(y > s) v[i] += y - s;
else v[i] += s - y + 1;
}
sort(v.begin(), v.end());
for(int i = 0;i < p - 1 ;i ++)
if(v[i + 1] <= v[i]) v[i + 1] = v[i] + 1;
cout << v.back() << '\n';
return 0;
}
SMU Summer 2023 Contest Round 10(ICPC — International Collegiate Programming Contest Asia Regional Contest, Yokohama,2018)的更多相关文章
- ICPC — International Collegiate Programming Contest Asia Regional Contest, Yokohama, 2018–12–09 题解
目录 注意!!此题解存在大量假算法,请各位巨佬明辨! Problem A Digits Are Not Just Characters 题面 题意 思路 代码 Problem B Arithmetic ...
- ACM International Collegiate Programming Contest World Finals 2014
ACM International Collegiate Programming Contest World Finals 2014 A - Baggage 题目描述:有\(2n\)个字符摆在编号为\ ...
- ACM International Collegiate Programming Contest World Finals 2013
ACM International Collegiate Programming Contest World Finals 2013 A - Self-Assembly 题目描述:给出\(n\)个正方 ...
- ACM International Collegiate Programming Contest, Tishreen Collegiate Programming Contest (2018) Syria, Lattakia, Tishreen University, April, 30, 2018
ACM International Collegiate Programming Contest, Tishreen Collegiate Programming Contest (2018) Syr ...
- ACM International Collegiate Programming Contest, Tishreen Collegiate Programming Contest (2017)- K. Poor Ramzi -dp+记忆化搜索
ACM International Collegiate Programming Contest, Tishreen Collegiate Programming Contest (2017)- K. ...
- 2019-2020 ICPC, NERC, Southern and Volga Russian Regional Contest
目录 Contest Info Solutions A. Berstagram B. The Feast and the Bus C. Trip to Saint Petersburg E. The ...
- [ACM International Collegiate Programming Contest, Amman Collegiate Programming Contest (2018)]
https://codeforces.com/gym/101810 A. Careful Thief time limit per test 2.5 s memory limit per test 2 ...
- Codeforces Gym100814 I.Salem-异或 (ACM International Collegiate Programming Contest, Egyptian Collegiate Programming Contest (2015) Arab Academy for Science and Technology)
这个题就是二进制,找两个数相应的二进制相对应的位置上数不同的最多的个数.异或写就可以. 一开始还想麻烦了,找出来最大的偶数和最大的奇数,最小的偶数和最小的奇数,但是这样想考虑的不全.因为范围比较小,直 ...
- Codeforces Gym100814 F.Geometry (ACM International Collegiate Programming Contest, Egyptian Collegiate Programming Contest (2015) Arab Academy for Science and Technology)
这个题真的是超级超级水啊,哈哈哈哈哈哈.不要被题面吓到,emnnn,就这样... 代码: 1 #include<iostream> 2 #include<cstring> 3 ...
- 2019-2020 ICPC, NERC, Southern and Volga Russian Regional Contest (Online Mirror, ICPC Rules, Teams Preferred)【A题 类型好题】
A. Berstagram Polycarp recently signed up to a new social network Berstagram. He immediately publish ...
随机推荐
- logging.basicConfig()
logging.basicConfig() 是 Python 标准库 logging 模块中的一个函数,用于配置日志记录器(logger)的基本选项.这个函数允许你在不创建和配置多个 logger.h ...
- electron 安装遇到的各种奇怪问题解决
在国内,electron经常遇到各种问题,导致无法安装 在安装electron官网的快速入门步骤,到npx electron-forge import的时候,遇到了各种问题 npm install - ...
- 面试官:transient关键字修饰的变量当真不可序列化?我:烦请先生教我!
一.写在开头 在这篇文章中记录一下之前自己面试时学到的东西,是关于transient关键字的,当时面试官问我IO的相关问题,基本上全答出来了,关于如何不序列化对象中某个字段时,我果断的选择了stati ...
- Python性能测试框架:Locust实战教程
01认识Locust Locust是一个比较容易上手的分布式用户负载测试工具.它旨在对网站(或其他系统)进行负载测试,并确定系统可以处理多少个并发用户,Locust 在英文中是 蝗虫 的意思:作者的想 ...
- 树莓派4B-GPIO控制步进电机
树莓派4B-GPIO控制步进电机 硬件需求: 步进电机 树莓派 杜邦线 L298N驱动模块 选择步进电机 首先需要确认步进电机,因为步进电机可分为单极性和双极步进电动机两种,这两种电机的驱动方式是不同 ...
- Java-继承Thread的方式和实现Runnable接口多线程
继承Thread的方式实现多线程 public class TestThread extends Thread{ @Override public void run() { System.out.pr ...
- 解决方案 | 预装win11如何退回win10?
0.定义 本文所说的[退回]并不指的是win10升级后的变成win11再变为win10的退回.退回应该理解为[降级],或者叫作返回上一个版本.本文的适用范围局限于,预装系统是win11,想要不通过u盘 ...
- 【C++】使用ort推理yolov10
[C++]使用ort推理yolov10 前言:由于笔者是编导专业,想玩玩yolo模型,搜来搜去全是python,所以在学会之后写一篇文章帮助和笔者同样情况的人 环境 Windows 10 C++17 ...
- 解决IE11兼容问题的一些心得
IE11中,都不支持es6新特性. vue想要兼容IE11不要写箭头函数, UI框架不要写有箭头的回调函数(编译成es5的时候,会通不过), 使用label将es6编译成es5. 使用typescri ...
- 关于异步编程中的bind(this)
异步编程中的.bind(this)方法解决了异步执行后this指针指向全局函数的问题,主要可以通过以下两个场景加以说明:(本文所用例子基于React场景:为简便起见,仅在第一个例子中展示完整HTML代 ...