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】的更多相关文章

  1. selenium-自动化测试51job网站(MacOS + Safari)2020年10月6日

    登录 51job ,http://www.51job.com 输入搜索关键词 "python", 地区选择 "杭州"(注意,如果所在地已经选中其他地区,要去掉) ...

  2. [2020年10月28日普级组]1406.SMRTFUN

    S M R T F U N SMRTFUN SMRTFUN 题目描述 "又肥又温顺,又大又笨,他们看起来那么傻,而且也不有趣--" 这些牛想要证明,他们是既有趣,又聪明的.为了这样 ...

  3. [2020年10月28日普级组]1408.MSWORLD

    1408. M S W O R L D 1408.MSWORLD 1408.MSWORLD 题目描述 Bessie , Farmer John 的优选牛,刚刚获得了一个牛科动物选美比赛的冠军!并得到了 ...

  4. AMD Ryzen 5000系列桌面处理器 2020年10月8日发布

    AMD Ryzen 5 5600X 6核心12线程,基础频率3.7GHz,最大频率4.6GHz,二级缓存3MB,三级缓存32MB,不锁频,支持DDR4 3200MHz内存,台积电7纳米工艺,PCIe ...

  5. [2020年10月28日普级组]1405.小B浇花

    区 间 和 的 和 区间和的和 区间和的和 题目解析 就直接模拟,从最低的花的高度向最高的花的高度枚举,如果当循环变量的值到达了顶峰,但还有花的数量大于2的,就把循环上线加一(所以数组要开大些) Co ...

  6. ADO.NET数据访问基础与综合应用2020年10月31日20:17:09学习笔记

    四.创建数据表 1.数据表的名称. 2.表中的字段名.数据类型.是否可以为空.字段的约束.必备的字段(通常会有一个ID,表示实体的唯一性:可以直接手写,也可以使用种子标识自动生成,给定起始值,给定增长 ...

  7. T-SQL创建数据库常用方法2020年10月29日20:12:04网课笔记

    2.接口的作用 第一.方便框架的设计.利于团队的开发. 第二.方便项目拓展.高内聚.低耦合. 3.反射 [1]反射的理解:通过读取程序集的信息,找到相关的类型和类型的成员,也可以得到相关的对象.而这种 ...

  8. 10月1日之后,你新建的GitHub库默认分支不叫「master」了

    从 2020 年 10 月 1 日开始,GitHub 上的所有新库都将用中性词「main」命名,取代原来的「master」,因为后者是一个容易让人联想到奴隶制的术语. 这个决定并不是最近才做出的.今年 ...

  9. JZOJ2020年10月5日提高B组反思

    2020年10月5日提高B组反思 T1 考试的时候想简单了 觉得把跟没有攻占的点相连的边留下就可以了 没有考虑到最小 WA&RE 10 T2 没有思路 就直接从中间往后枚举分解处 蜜汁错误 W ...

随机推荐

  1. vim_command

    vi 打开vi空白面板 vi filename 以编辑模式打开文件.如果参数为已有文件,在vi中打开:如果参数为新文件名,在vi退出时提示用户保存编辑内容 vi -R filename 以只读模式打开 ...

  2. 【SpringBoot1.x】SpringBoot1.x 任务

    SpringBoot1.x 任务 文章源码 异步任务 在 Java 应用中,绝大多数情况下都是通过同步的方式来实现交互处理的.但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使 ...

  3. 【Flutter】容器类组件之填充

    前言 Padding可以给其子节点添加填充(留白). 接口描述 class EdgeInsets extends EdgeInsetsGeometry { // 分别指定四个方向的填充 const E ...

  4. 修改hosts文件后不生效,该怎么办

    对于web开发来说,经常需要修改hosts文件,用来将域名与ip对应匹配.但是有时候发现hosts文件明明已经改了,但就是不生效,页面还会跳到某个丧心病狂的私人小站.hosts文件不生效有很多种原因, ...

  5. 一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)

    1. 问题起因 通过snapshot做跨集群数据同步时,在执行拷贝脚本里没有指定所有者及所有组,导致clone时没有权限,客户端卡死.master一直报错,经过一系列操作后,导致RIT异常. 2. 异 ...

  6. Head First 设计模式 —— 15. 与设计模式相处

    模式 是在某情境(context)下,针对某问题的某种解决方案. P579 情景:应用某个模式的情况 问题:你想在某情境下达到的目标,但也可以是某情境下的约束 解决方案:一个通用的设计,用来解决约束. ...

  7. 【JAVA并发第三篇】线程间通信

    线程间的通信 JVM在运行时会将自己管理的内存区域,划分为不同的数据区,称为运行时数据区.每个线程都有自己私有的内存空间,如下图示: Java线程按照自己虚拟机栈中的方法代码一步一步的执行下去,在这一 ...

  8. Windows+.Net Framework+svn+IIS在Jenkins上的自动化部署入门

    关于Jenkins的使用及安装,上一篇文章我已经介绍过了,Windows+.NetCore+git+IIS在Jenkins上的自动化部署入门.这篇主要是在jenkins如何安装SVN和MSBuild. ...

  9. proxmox ve系统绑定上联外网出口bond双网卡

    背景描述:一个客户搭建proxmox ve系统,要求上联出口双网卡绑定bond, proxmox ve下载地址:超链接 记录日期:2020/5/9 前期准备:服务器接好2个网卡 交换机:H3C 1.p ...

  10. join 查询优化

    在开发中往往会出现查询多表联查的情况,那么就会用到 join 查询. Join查询种类 为了方便说明,先定义一个统一的表,下面再做例子. CREATE TABLE `t2` ( `id` int(11 ...