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. 【小菜学网络】MAC地址详解

    上一小节介绍了以太网帧的结构,以及帧中各个字段的作用.参与以太网通讯的实体,由以太网地址唯一标识.以太网地址也叫做 MAC 地址,我们对它仍知之甚少. 以太网地址在不同场景,称谓也不一样,常用叫法包括 ...

  2. Java NIO 缓冲区 Buffer

    缓冲区 Buffer 是 Java NIO 中一个核心概念,它是一个线性结构,容量有限,存放原始类型数据(boolean 除外)的容器. 1. Buffer 中可以存放的数据类型 java.nio.B ...

  3. Python+MySQL随机试卷及答案生成程序

    一.背景 本文章主要是分享如何使用Python从MySQL数据库中面抽取试题,生成的试卷每一份都不一样. 二.准备工作 1.安装Python3 下载地址:https://www.python.org/ ...

  4. Sentry(v20.12.1) K8S 云原生架构探索,SENTRY FOR JAVASCRIPT Source Maps 详解

    系列 Sentry-Go SDK 中文实践指南 一起来刷 Sentry For Go 官方文档之 Enriching Events Snuba:Sentry 新的搜索基础设施(基于 ClickHous ...

  5. Error: Could not request certificate: No route to host - connect(2)

    [root@puppetclient ~]# puppet agent --server 192.168.127.137 --testInfo: Creating a new SSL key for ...

  6. 【Oracle】dump函数用法

    Oracle dump函数的用法 一.函数标准格式: DUMP(expr[,return_fmt[,start_position][,length]]) 基本参数时4个,最少可以填的参数是0个.当完全 ...

  7. 【Oracle】查看哪些用户被授予了DBA权限

    查看哪些用户被授予了DBA权限 select * from dba_role_privs where granted_role='DBA'; 回收权限: revoke dba from xxx;

  8. cobalt strike出现连接超时情况解决办法

    服务器安装好teamserver服务后,进行连接,此时出现了连接超时的情况 检查方法: 一.检查端口是否正常开启 netstat -an | grep <设置的端口号>centos7可以用 ...

  9. Golang应用性能问题排查分析

    背景 公司有一个使用golang开发的采集模块,负责调用多个外部系统采集数据:最近做了一次架构上的调整,将采集模块分成api.job两个子模块,并部署到容器中,拆分前部署在虚机上. 现象 部分采集任务 ...

  10. 远程部署项目,修改catalina.bat文件 完美解决在代理服务器上HttpURLConnection 调接口超时的问题

    远程给客户部署项目,运行时程序调外部接口时总是出不去,经过不懈努力,后来发现客户那边的网络走的是代理,于是在代码中加下面代码: //设置代理 System.setProperty("http ...