AtCoder Beginner Contest 164
比赛链接:https://atcoder.jp/contests/abc164
A - Sheep and Wolves
#include <bits/stdc++.h>
using namespace std;
int main() {
int s, w; cin >> s >> w;
cout << (w >= s ? "unsafe" : "safe");
}
B - Battle
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b, c, d; cin >> a >> b >> c >> d;
int c1 = c / b + (c % b > 0);
int c2 = a / d + (a % d > 0);
cout << (c1 <= c2 ? "Yes" : "No");
}
C - gacha
#include <bits/stdc++.h>
using namespace std;
int main() {
int n; cin >> n;
set<string> st;
for (int i = 0; i < n; i++) {
string s; cin >> s;
st.insert(s);
}
cout << st.size();
}
D - Multiple of 2019
题意
求一个至多长为 200000 的只包含 1 ~ 9 的字符串中有多少连续子串转为 10 进制后为 2019 的倍数。
思路
始终以字符串右端为起点向左扩展得到一系列整数: $x_i = s_i*10^{i}\ +\ s_{i-1}*10^{i-1}\ +\ ...\ +\ s_{0}10^0$,将 x 对 2019 取模,如果有两个 x 同余,则两个 x 之间的数,即二者之差一定为 2019 的倍数,用一个数组记录每个余数之前出现的次数,每个 x 与之前同余的数间都可以构成 2019 的倍数,如果余数为 0 则 x 本身就可以作为 2019 的倍数,所以 cnt[0] 初始化为 1 。
#include <bits/stdc++.h>
using namespace std;
int cnt[2019];
int main() {
string s; cin >> s;
int ans = 0, now = 0, p = 1;
cnt[0] = 1;
for (int i = s.size() - 1; i >= 0; i--) {
now = (now + (s[i] - '0') * p) % 2019;
ans += cnt[now]++;
p = p * 10 % 2019;
}
cout << ans;
}
AtCoder Beginner Contest 164的更多相关文章
- Atcoder Beginner Contest 164 E Two Currencies(拆点+最短路)
题目链接 题意:有 \(n\) 个城市,它们由 \(m\) 条双向道路连接,保证它们能够彼此到达.第 \(i\) 条道路连接 \(u_i,v_i\),需要花费 \(x_i\) 个银币,耗费 \(t_i ...
- AtCoder Beginner Contest 100 2018/06/16
A - Happy Birthday! Time limit : 2sec / Memory limit : 1000MB Score: 100 points Problem Statement E8 ...
- AtCoder Beginner Contest 052
没看到Beginner,然后就做啊做,发现A,B太简单了...然后想想做完算了..没想到C卡了一下,然后还是做出来了.D的话瞎想了一下,然后感觉也没问题.假装all kill.2333 AtCoder ...
- AtCoder Beginner Contest 053 ABCD题
A - ABC/ARC Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Smeke has ...
- AtCoder Beginner Contest 136
AtCoder Beginner Contest 136 题目链接 A - +-x 直接取\(max\)即可. Code #include <bits/stdc++.h> using na ...
- AtCoder Beginner Contest 137 F
AtCoder Beginner Contest 137 F 数论鬼题(虽然不算特别数论) 希望你在浏览这篇题解前已经知道了费马小定理 利用用费马小定理构造函数\(g(x)=(x-i)^{P-1}\) ...
- AtCoder Beginner Contest 076
A - Rating Goal Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Takaha ...
- AtCoder Beginner Contest 079 D - Wall【Warshall Floyd algorithm】
AtCoder Beginner Contest 079 D - Wall Warshall Floyd 最短路....先枚举 k #include<iostream> #include& ...
- AtCoder Beginner Contest 064 D - Insertion
AtCoder Beginner Contest 064 D - Insertion Problem Statement You are given a string S of length N co ...
随机推荐
- ORA-39700: database must be opened with UPGRADE option【转】
1. 错误 数据库升级后(从11.2.0.1升级到11.2.0.4)启动报错 SQL> startup ORACLE instance started. Total System Globa ...
- 数学建模学习笔记 | matlab基本命令及用法
前言 数学建模对matlab水平的要求 了解matlab的基本用法,如常用命令.脚本结构.矩阵的基本操作.绘图等: 熟悉matlab的程序结构,能创建和引用函数: 熟悉常见模型的求解算法和套路: 自主 ...
- docker 镜像导入load、导出save以及重命名
docker 导入导出操作 save 保存(导出)镜像 # 把镜像打包成 .tar # -o 要保存路径.tar # > 要保存路径.tar # docker save 镜像id > /存 ...
- kubernets之机理概览
一 了解kubernets的运行机理 1.1 了解架构 众所周知,kubernets的组成由2个部分组成 kubernets 平面 node节点 (工作节点) 控制平面的组成 etcd 分布 ...
- 二进制部署kubernetes
Kubernetes二进制安装 环境准备: 主机环境:做好主机名hosts文件映射 硬件2cpu 2G内存 192.168.30.21 k8s-master 192.168.30.22 k8s-no ...
- Linux操作系统相关资料
玩转Linux操作系统 操作系统发展史 只有硬件没有软件的计算机系统被称之为"裸机",我们很难用"裸机"来完成计算机日常的工作(如存储和运算),所以必须用特定的 ...
- spring boot 集成 websocket 实现消息主动
来源:https://www.cnblogs.com/leigepython/p/11058902.html pom.xml 1 <?xml version="1.0" en ...
- 解决MyBatis-Plus 3.3.1中自动生成代码tinyint(1)无法自动转换为Boolean 的办法
解决方法 1.在测试类中新建一个类MySqlTypeConvertCustom,继承MySqlTypeConvert并实现ITypeConvert后覆盖processTypeConvert方法. 2. ...
- pymysql模块使用介绍
pymysql 我们要学的pymysql就是用来在python程序中如何操作mysql,本质上就是一个套接字客户端,只不过这个套接字客户端是在python程序中用的,既然是客户端套接字,应该怎么用 ...
- JavaScript——深入了解this
前言 我曾以为func()其实就是window.func() function func(){ console.log('this : ' + this); } func();//this : [ob ...