比赛链接: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的更多相关文章

  1. Atcoder Beginner Contest 164 E Two Currencies(拆点+最短路)

    题目链接 题意:有 \(n\) 个城市,它们由 \(m\) 条双向道路连接,保证它们能够彼此到达.第 \(i\) 条道路连接 \(u_i,v_i\),需要花费 \(x_i\) 个银币,耗费 \(t_i ...

  2. AtCoder Beginner Contest 100 2018/06/16

    A - Happy Birthday! Time limit : 2sec / Memory limit : 1000MB Score: 100 points Problem Statement E8 ...

  3. AtCoder Beginner Contest 052

    没看到Beginner,然后就做啊做,发现A,B太简单了...然后想想做完算了..没想到C卡了一下,然后还是做出来了.D的话瞎想了一下,然后感觉也没问题.假装all kill.2333 AtCoder ...

  4. AtCoder Beginner Contest 053 ABCD题

    A - ABC/ARC Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Smeke has ...

  5. AtCoder Beginner Contest 136

    AtCoder Beginner Contest 136 题目链接 A - +-x 直接取\(max\)即可. Code #include <bits/stdc++.h> using na ...

  6. AtCoder Beginner Contest 137 F

    AtCoder Beginner Contest 137 F 数论鬼题(虽然不算特别数论) 希望你在浏览这篇题解前已经知道了费马小定理 利用用费马小定理构造函数\(g(x)=(x-i)^{P-1}\) ...

  7. AtCoder Beginner Contest 076

    A - Rating Goal Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Takaha ...

  8. AtCoder Beginner Contest 079 D - Wall【Warshall Floyd algorithm】

    AtCoder Beginner Contest 079 D - Wall Warshall Floyd 最短路....先枚举 k #include<iostream> #include& ...

  9. AtCoder Beginner Contest 064 D - Insertion

    AtCoder Beginner Contest 064 D - Insertion Problem Statement You are given a string S of length N co ...

随机推荐

  1. 【C++】《Effective C++》第二章

    第二章 构造/析构/赋值运算 条款05:了解C++默默编写并调用哪些函数 默认函数 一般情况下,编译器会为类默认合成以下函数:default构造函数.copy构造函数.non-virtual析构函数. ...

  2. 解决Establishing SSL connection without server‘s identity verification is not recommended.

    每次从数据库中进行查询或者其他操作控制台都会出现以下警告,虽说不是error,但是很显眼.. WARN: Establishing SSL connection without server's id ...

  3. 【Problem】前端项目运行:Module build failed:Error Node Sass does not yet support my current environmen

    我在运行renren-fast-vue前端项目时,安装完依赖cnpm install 启动服务npm run dev 出现问题. Module build failed: Error: Node Sa ...

  4. Linux Shell 编程基础详解——吐血整理,墙裂推荐!

    第一部分:Linux Shell 简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序, ...

  5. VBA调用数独求解器

    我开发了一个用于求解数独的dll文件,只需要双击一下注册表文件,就可以在VBA中调用这个功能了.具体步骤如下: 下载:https://share.weiyun.com/5dpcNqx 找到ExcelS ...

  6. 细数JS中实用且强大的操作符&运算符

    目录 1,前言 2,代码+应用 2.1,短路运算符 || 2.2,短路运算符 && 2.3,零合并操作符 ?? 2.4,可选链操作符 ?. 2.5,位运算符 & 和 | 2.6 ...

  7. 前端PDF文件转图片方法

    第一步:先下载pdfjs,网址:PDF下载地址,再引入到项目中,我是标签直接引用的 <script src="pdfjs/build/pdf.js"></scri ...

  8. Oracle数据库启动和关闭

    在介绍oracle数据库的启动和关闭前,先看一下Oracle的参数文件. oracle参数文件 1.初始化参数文件 oracle的初始化参数文件分为spfilesid.ora.spfile.ora.i ...

  9. 【Android初级】如何实现一个“模拟后台下载”的加载效果(附源码)

    在Android里面,后台的任务下载功能是非常常用的,比如在APP Store里面下载应用,下载应用时,需要跟用户进行交互,告诉用户当前正在下载以及下载完成等. 今天我将通过使用Android的原生控 ...

  10. mysqldump 内存消耗

    MySQL :: MySQL 8.0 Reference Manual :: 4.5.4 mysqldump - A Database Backup Program https://dev.mysql ...