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

  1. 题解 AtCoder Beginner Contest 168

    小兔的话 欢迎大家在评论区留言哦~ AtCoder Beginner Contest 168 A - ∴ (Therefore) B - ... (Triple Dots) C - : (Colon) ...

  2. Atcoder Beginner Contest 168 D - .. (Double Dots) (BFS)

    题意:有\(n\)个房间,在这些房间中两两连\(m\)次条边,问除了第一个房间,其他房间走到第一个房间的最短路径,输出这个房间所连的上一个房间,如果走不到,输出\(no\). 题解:刚开始我写了一个d ...

  3. AtCoder Beginner Contest 100 2018/06/16

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

  4. AtCoder Beginner Contest 052

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

  5. AtCoder Beginner Contest 053 ABCD题

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

  6. AtCoder Beginner Contest 136

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

  7. AtCoder Beginner Contest 137 F

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

  8. AtCoder Beginner Contest 076

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

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

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

随机推荐

  1. go module 基本使用

    前言 go的版本以至1.13,一直以来令人诟病的依赖管理也有了官方的方向,但是看了一下目前很多blog文章还是比较老的. 所以这里对 go mod 做一个大致的说明 正文 前提 go版本为1.13及以 ...

  2. python作业完成简单的文件操作

    题目 请创建以学号命名的目录,在该目录中创建名称为file1.txt的文件,并将自己的个人信息(序号.姓名以及班级)等写入该文件:然后并读取文件中的内容到屏幕上:接着重新命名该文件为file2.txt ...

  3. MySQL的索引优化分析(一)

    一.SQL分析 性能下降.SQL慢.执行时间长.等待时间长 查询语句写的差 索引失效关联查询太多join(设计缺陷) 单值索引:在user表中给name属性创建索引,create index idx_ ...

  4. QPainter 绘制图像接口

    阅读本文大概需要 3 分钟 我们在开发软件的过程中,绘制图像功能必不可少,使用 Qt 绘制图像时非常简单,只需要传递几个参数就可以实现功能,在 Qt 中绘制图像的 api有好几个 void drawI ...

  5. kubernets与API服务器进行交互

    一  为何需要与kubernets集群的API服务器进行交互 1.1  kubernets提供了一种downapi的资源可以将pod的元数据渲染成环境变量或者downward卷的形式挂载到容器的文件系 ...

  6. ctfhub技能树—信息泄露—备份文件下载—.DS_Store

    打开靶机 查看页面信息 使用dirsearch进行扫描 访问该网页,下载文件 使用Linux系统打开文件 发现一个特殊文件,使用浏览器打开 拿到flag 二.使用Python-dsstore工具查看该 ...

  7. SEO大杀器rendertron安装

    前段时间做SEO的优化,使用的是GoogleChrome/rendertron,发现这个安装部署的时候还是会有一些要注意的地方,做个记录 为什么要使用rendertron 目前很多网站都是使用 vue ...

  8. Swagger-UI展示接口

    简单介绍API的管理工具Swagger的UI模块. 简介:swagger ui就是一个能整合到项目中让api的注释能够生成到一个网页上.能简单测试和给前端看. 第一步:添加引用 打开NuGet程序包管 ...

  9. jQuery json遍历渲染到页面并且拼接html

    jQuery 处理 json遍历在页面中显示,并且拼接html. 1 <title>json多维数组遍历渲染</title> 2 3 <body> 4 <di ...

  10. 目前 c++ primer学习总结笔记

    C++的开始 1 main的返回值:0为成功状态,非0为系统定义的错误类型 2 输入输出:计算结果为左侧运算对象,IO操作读写缓冲与程序中的动作无关 3 输入流istream对象:cin(标准输入): ...