2020年10月ICPC & 天梯赛 选拔赛【ACFJ】
A. 表达式
题意

题解
将所有数字替换为A,运算符替换为O,然后不断合并(AOA),判断表达式最后是否为A即可。
注意将数字替换时判断有无前导零。
代码
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
string s;
cin >> s;
bool no_lead_zero = true;
auto isop = [](char c) {
return c == '+' or c == '-' or c == '*' or c == '/';
};
auto replace_digit = [&]() {
vector<string> v;
for (int i = 0; i < int(s.size()); i++) {
if (isdigit(s[i])) {
int j = i + 1;
while (j < int(s.size()) and isdigit(s[j])) ++j;
v.push_back(s.substr(i, j - i));
s.replace(i, j - i, "A");
i = -1;
}
}
for (const auto &i : v) {
if (i[0] == '0' and i.size() > 1) no_lead_zero = false;
}
};
auto replace_op = [&]() {
for (int i = 0; i < int(s.size()); i++) {
if (isop(s[i])) {
s.replace(i, 1, "O");
i = -1;
}
}
};
auto replace_AOA = [&]() {
for (int i = s.find("(AOA)"); i != -1; i = s.find("(AOA)")) {
s.replace(i, 5, "A");
}
};
replace_digit();
replace_op();
replace_AOA();
cout << (no_lead_zero and s == "A" ? "Legal" : "Illegal") << "\n";
return 0;
}
C. 股票
题意

题解
将股值看作曲线,每次从最高峰向前加。
代码
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
vector<int> a(n);
for (auto &x : a) cin >> x;
vector<int> p(n);
iota(p.begin(), p.end(), 0);
sort(p.begin(), p.end(), [&](int x, int y) {
return a[x] > a[y];
});
long long ans = 0;
vector<bool> vis(n);
for (auto i : p) {
for (int j = i; j >= 0 and not vis[j]; j--) {
ans += a[i] - a[j];
vis[j] = true;
}
}
cout << ans << "\n";
return 0;
}
F. 稳定婚姻问题
题意


题解
模拟。
代码
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
multiset<string> female;
set<int> male;
map<int, string> match;
vector<int> boy;
for (int i = 0; i < 2 * n; i++) {
string a, b, c;
cin >> a >> b >> c;
if (c[0] == 'F') {
if (male.size()) {
match[*male.begin()] = b + " " + a;
male.erase(male.begin());
} else {
female.insert(b + " " + a);
}
} else {
boy.push_back(i);
if (female.size()) {
match[i] = *female.begin();
female.erase(female.begin());
} else {
male.insert(i);
}
}
}
for (const auto &i : boy) {
const auto &s = match[i];
int pos = s.find(' ');
cout << s.substr(pos + 1) << ' ' << s.substr(0, pos) << "\n";
}
return 0;
}
J. 质因子个数
题意

题解
打表发现数据范围内的一个数最多有8个不同的素因子,那么就很好算了,计算每个数的不同素因子个数并将这个数存到对应的个数中,对于每次给出的区间二分查找左右端点即可。
代码
#include <bits/stdc++.h>
using namespace std;
constexpr int N = 1e7 + 10;
int p[N];
vector<vector<int>> v(9);
inline void Init() {
for (int i = 2; i < N; i++) {
if (p[i]) continue;
for (int j = i; j < N; j += i) {
p[j] = i;
}
}
for (int i = 1; i < N; i++) {
int n = i, cnt = 0;
for (int j = p[n]; j != 0; j = p[n]) {
while (n % j == 0) n /= j;
++cnt;
}
v[cnt].push_back(i);
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
Init();
int t;
cin >> t;
while (t--) {
long long l, r, k;
cin >> l >> r >> k;
if (k > 8) {
cout << 0 << "\n";
continue;
}
int i = lower_bound(v[k].begin(), v[k].end(), l) - v[k].begin();
int j = upper_bound(v[k].begin(), v[k].end(), r) - v[k].begin();
cout << j - i << "\n";
}
return 0;
}
2020年10月ICPC & 天梯赛 选拔赛【ACFJ】的更多相关文章
- selenium-自动化测试51job网站(MacOS + Safari)2020年10月6日
登录 51job ,http://www.51job.com 输入搜索关键词 "python", 地区选择 "杭州"(注意,如果所在地已经选中其他地区,要去掉) ...
- [2020年10月28日普级组]1406.SMRTFUN
S M R T F U N SMRTFUN SMRTFUN 题目描述 "又肥又温顺,又大又笨,他们看起来那么傻,而且也不有趣--" 这些牛想要证明,他们是既有趣,又聪明的.为了这样 ...
- [2020年10月28日普级组]1408.MSWORLD
1408. M S W O R L D 1408.MSWORLD 1408.MSWORLD 题目描述 Bessie , Farmer John 的优选牛,刚刚获得了一个牛科动物选美比赛的冠军!并得到了 ...
- AMD Ryzen 5000系列桌面处理器 2020年10月8日发布
AMD Ryzen 5 5600X 6核心12线程,基础频率3.7GHz,最大频率4.6GHz,二级缓存3MB,三级缓存32MB,不锁频,支持DDR4 3200MHz内存,台积电7纳米工艺,PCIe ...
- [2020年10月28日普级组]1405.小B浇花
区 间 和 的 和 区间和的和 区间和的和 题目解析 就直接模拟,从最低的花的高度向最高的花的高度枚举,如果当循环变量的值到达了顶峰,但还有花的数量大于2的,就把循环上线加一(所以数组要开大些) Co ...
- ADO.NET数据访问基础与综合应用2020年10月31日20:17:09学习笔记
四.创建数据表 1.数据表的名称. 2.表中的字段名.数据类型.是否可以为空.字段的约束.必备的字段(通常会有一个ID,表示实体的唯一性:可以直接手写,也可以使用种子标识自动生成,给定起始值,给定增长 ...
- T-SQL创建数据库常用方法2020年10月29日20:12:04网课笔记
2.接口的作用 第一.方便框架的设计.利于团队的开发. 第二.方便项目拓展.高内聚.低耦合. 3.反射 [1]反射的理解:通过读取程序集的信息,找到相关的类型和类型的成员,也可以得到相关的对象.而这种 ...
- 10月1日之后,你新建的GitHub库默认分支不叫「master」了
从 2020 年 10 月 1 日开始,GitHub 上的所有新库都将用中性词「main」命名,取代原来的「master」,因为后者是一个容易让人联想到奴隶制的术语. 这个决定并不是最近才做出的.今年 ...
- JZOJ2020年10月5日提高B组反思
2020年10月5日提高B组反思 T1 考试的时候想简单了 觉得把跟没有攻占的点相连的边留下就可以了 没有考虑到最小 WA&RE 10 T2 没有思路 就直接从中间往后枚举分解处 蜜汁错误 W ...
随机推荐
- PHP 清除缓存文件
/*清除缓存文件*/ public function clearRuntime() { $this->delFileByDir(RUNTIME_PATH); $this->success( ...
- 基于SVM的字母验证码识别
基于SVM的字母验证码识别 摘要 本文研究的问题是包含数字和字母的字符验证码的识别.我们采用的是传统的字符分割识别方法,首先将图像中的字符分割出来,然后再对单字符进行识别.首先通过图像的初步去噪.滤波 ...
- SQL注入-流程
一般注入分类: 时间,布尔,报错,堆,联合 有关函数介绍: current_user() 当前用户名 session_user() 链接数据库的用户名 @@basedir mysql安装路径 @@da ...
- ctfhub技能树—sql注入—布尔盲注
打开靶机 查看页面信息 开始试验,查看返回信息 此题存在一个问题,如果没有数据,也是返回query_success 如此一来,就无法使用and组合进行注入,在看了其他大佬的解题过程后,知道了可以使用& ...
- 通过LOGMNR查找程式带入的实际值
生产库中出现了大量的锁表,需要得到当时程式执行的SQL以及其带入的值 1.查看SQL SELECT SQL_ID FROM V$SESSION WHERE SID=(SELECT FINAL_BLOC ...
- Markdown特殊字符、数学公式汇总
引自:https://blog.csdn.net/weixin_39653948/article/details/104621249
- 庐山真面目之十一微服务架构手把手教你搭建基于Jenkins的企业级CI/CD环境
庐山真面目之十一微服务架构手把手教你搭建基于Jenkins的企业级CI/CD环境 一.介绍 说起微服务架构来,有一个环节是少不了的,那就是CI/CD持续集成的环境.当然,搭建CI/CD环境的工具很多, ...
- 彻底解决小程序无法触发SESSION问题
一.首先找到第一次发起网络请求的地址,将服务器返回set-cookie当全局变量存储起来 wx.request({ ...... success: function(res) { console.lo ...
- ProBuilder快速原型开发技术 ---ProBuilder基础操作
在游戏开发.虚拟现实等三维仿真领域,Unity目前是国内外最为知名的开发引擎.随着版本的不断提升与完善,目前Unity2020等最新版本,又增加了很多令人惊奇的功能. Unity内置的ProBuild ...
- 多路复用器Select、Poll、Epoll区别梳理
注意:本文是本人的学习总结,可能存在理解上的错误,请带着怀疑眼光看待,如果有不准确的地方欢迎指出,疑义相与析.为了叙述完整性,前面有一些前置知识,可以根据目录直接看后面的详解部分. 前置知识 用户态与 ...