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 ...
随机推荐
- openstack octavia的实现与分析(一)openstack负载均衡的现状与发展以及lvs,Nginx,Haproxy三种负载均衡机制的基本架构和对比
[负载均衡] 大量用户发起请求的情况下,服务器负载过高,导致部分请求无法被响应或者及时响应. 负载均衡根据一定的算法将请求分发到不同的后端,保证所有的请求都可以被正常的下发并返回. [主流实现-LVS ...
- Python找对称数——纪念第一次自主编写代码
2021-01-17 题目: [问题描述]已知10个四位数输出所有对称数及个数 n,例如1221.2332都是对称数[输入形式]10个四位数,以空格分隔开[输出形式]输入的四位数中的所有对称数,对称数 ...
- 【Oracle】修改oracle中SGA区的大小
1.备份数据库: 2.关机,拔下电源和各种连接线,抽出机箱,打开机箱上盖,增加内存: 3.完成后按原样将各个部件及连接线恢复好,电开机,系统正常运行: 4.进入系统查看,发现内存已经顺利安装: 5.修 ...
- 【Oracle】 并行查询
所谓并行执行,是指能够将一个大型串行任务(任何DML,一般的DDL)物理的划分为叫多个小的部分,这些较小的部分可以同时得到处理.何时使用并行执行:1.必须有一个非常大的任务 2.必须有充足的资源(CP ...
- 【EXP】导出数据库dmp文件,只有几张表有数据,剩下的所有表只有表结构没有数据
导出一个dmp,指定的表中有数据,其他的表只有表结构, 有数据的表只有几张,分别是A,B,C三张表,剩下的表都没有数据 思路: 导出一个111.dmp,所有的表都只是表结构 将111.dmp导入到新创 ...
- mysql+MHA高可用
MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀 ...
- 处理 K8S Orphaned pod found - but volume paths are still present on disk 孤儿pod
问题概述 查看kubelet或/var/log/messages日志一直包错,发现是孤儿pod,是由于其pod被删除后存储路径还保存在磁盘. 报错如下 [root@node5 ~]# journalc ...
- (09)-Python3之--类的三大特性(封装、继承、多态)
1.封装 封装,就是只能在类的内部访问,外部访问属性或方法会报异常,python中的封装很简单,只要在属性前或者方法名前加上两个下划线就可以,如self.__name,def __eat(self)这 ...
- jQuery 留言表单验证
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 1.kafka基础架构
kafka基础架构 ## 什么是kafka? Kafka是一个分布式的基于发布/订阅模式的消息队列,主要应用于大数据实时处理领域. 1.什么是消息队列? 2.使用消息队列的好处 1)解耦 允许你独立的 ...