AtCoder Beginner Contest 168
比赛链接:https://atcoder.jp/contests/abc168/tasks
A - ∴ (Therefore)
题意
给出一个由数字组成的字符串 $s$,要求如下:
- 如果 $s$ 以 2,4,5,7,9 结尾,输出 "hon"
- 如果 $s$ 以 0,1,6,8 结尾,输出 "pon"
- 如果 $s$ 以 3 结尾,输出 "bon"
代码
#include <bits/stdc++.h>
using namespace std;
int main() {
map<char, string> mp;
mp['2'] = mp['4'] = mp['5'] = mp['7'] = mp['9'] = "hon";
mp['0'] = mp['1'] = mp['6'] = mp['8'] = "pon";
mp['3'] = "bon";
string s; cin >> s;
cout << mp[s.back()];
}
B - ... (Triple Dots)
题意
给出正整数 $n$ 和字符串 $s$,如果字符串的长度大于 $n$,输出字符串的前 $n$ 个字符和 "...",否则输出原字符串。
代码
#include <bits/stdc++.h>
using namespace std;
int main() {
int n; cin >> n;
string s; cin >> s;
cout << s.substr(0, n) << (s.size() > n ? "..." : "");
}
C - : (Colon)
题意
已知钟表上时针分针的长度,输出某时刻二者末端的距离。
题解
余弦定理,全部换算为分钟计算夹角即可。
Tips
时针并不总是指向整点,还会随着分针偏移。
代码
#include <bits/stdc++.h>
#define PI acos(-1)
using namespace std;
int main() {
double a, b, h, m; cin >> a >> b >> h >> m;
double a1 = abs(5.0 * (h + m / 60.0) - m);
double a2 = 60.0 - a1;
double a3 = 2.0 * PI * min(a1, a2) / 60.0;
printf("%.9f", sqrt(a * a + b * b - 2 * a * b * cos(a3)));
}
D - .. (Double Dots)
题意
给出一个图,在每个端点处树立一个指向牌,使得从每个端点出发沿指向牌走到端点 $1$ 的路程最短。
题解
最短路问题,bfs 下就好了。
Tips
图中可能有环,所以不能用 dfs 写。
代码
#include <bits/stdc++.h>
using namespace std; const int N = 2e5 + 100;
vector<int> e[N];
int fa[N]; void bfs() {
queue<int> que;
que.push(1);
fa[1] = 1;
while (!que.empty()) {
int u = que.front();
que.pop();
for (auto v : e[u]) {
if (fa[v] == 0) {
que.push(v);
fa[v] = u;
}
}
}
} int main() {
int n, m; cin >> n >> m;
for (int i = 0; i < m; i++) {
int u, v; cin >> u >> v;
e[u].push_back(v);
e[v].push_back(u);
}
bfs();
for (int i = 2; i <= n; i++) {
if (fa[i] == 0) {
cout << "No";
return 0;
}
}
cout << "Yes" << "\n";
for (int i = 2; i <= n; i++) {
cout << fa[i] << "\n";
}
}
AtCoder Beginner Contest 168的更多相关文章
- 题解 AtCoder Beginner Contest 168
小兔的话 欢迎大家在评论区留言哦~ AtCoder Beginner Contest 168 A - ∴ (Therefore) B - ... (Triple Dots) C - : (Colon) ...
- Atcoder Beginner Contest 168 D - .. (Double Dots) (BFS)
题意:有\(n\)个房间,在这些房间中两两连\(m\)次条边,问除了第一个房间,其他房间走到第一个房间的最短路径,输出这个房间所连的上一个房间,如果走不到,输出\(no\). 题解:刚开始我写了一个d ...
- 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& ...
随机推荐
- DevOps,CI,CD,自动化简单介绍
前言: 随着企业应用的不断迭代,不断扩大,应用的发布发布可能涉及多个团队,如pc端,手机端,小程序端等等.应用发布也就成为了一项高风险,高压力的超过过程,以及应用的开发迭代的沟通,测试成本也大大的变得 ...
- CSS卡片旋转
html{ perspective: 800px; } body{ display:flex; flex-wrap: wrap; } .card{ transform-style: preserve- ...
- LAN-SHARE 使用教程
Description: 我的个人项目 LAN-Share 的使用教程:局域网内文件分享工具 LAN-Share 是一个基于 Node.js 的用于局域网内文件分享的工具,易于配置与部署. 项目地址: ...
- Python运维自动化psutil 模块详解(超级详细)
psutil 模块 参考官方文档:https://pypi.org/project/psutil/ 一.psutil简介 psutil是一个开源且跨平台(http://code.google.com/ ...
- 【Java】一个简单的Java应用程序
简单记录,Java 核心技术卷I 基础知识(原书第10 版) 一个简单的Java应用程序"Hello, World!" Hello, World! Goodbye,World! 一 ...
- 【Linux】if中的逻辑运算符怎么在linux的帮助中看到
今天在写shell的时候,突然想查看下if相关的一些逻辑运算的,像-f -d之类的这种 于是man if 或者if --help 可是返回的信息却都无济于事,一点帮助都没有 回想一下,if中调的判断 ...
- 【Linux】删除软连接被坑
------------------------------------------------------------------------------------------------- | ...
- C语言字符串结束符“\0”
介绍 '\0'就是8位的00000000,因为字符类型中并没有对应的这个字符,所以这么写.'\0'就是 字符串结束标志. '\0'是转译字符,意思是告诉编译器,这不是字符0,而是空字符.空字符\0对应 ...
- SW3518中文规格书
SW3518 是一款高集成度的多快充协议双口充电芯片, 支持 A+C 口任意口快充输出, 支持双口独立限流. 其集成了 5A 高效率同步降压变换器, 支持 PPS/PD/QC/AFC/FCP/SCP/ ...
- 【.NET 与树莓派】矩阵按键
欢迎收看火星卫视,本期节目咱们严重探讨一下矩阵按键. 所谓矩阵按键,就是一个小键盘(其实一块PCB板),上面有几个 Key(开关),你不按下去的时候,电路是断开的,你按下去电路就会接通.至于说有多少个 ...