题目链接:http://abc070.contest.atcoder.jp/assignments

A - Palindromic Number


Time limit : 2sec / Memory limit : 256MB

Score : 100 points

Problem Statement

You are given a three-digit positive integer N.
Determine whether N is a palindromic number.
Here, a palindromic number is an integer that reads the same backward as forward in decimal notation.

Constraints

  • 100≤N≤999
  • N is an integer.

Input

Input is given from Standard Input in the following format:

N

Output

If N is a palindromic number, print Yes; otherwise, print No.


Sample Input 1

Copy
575

Sample Output 1

Copy
Yes

N=575 is also 575 when read backward, so it is a palindromic number. You should print Yes.


Sample Input 2

Copy
123

Sample Output 2

Copy
No

N=123 becomes 321 when read backward, so it is not a palindromic number. You should print No.


Sample Input 3

Copy
812

Sample Output 3

Copy
No

题解:水水
 #include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string>
#include <cmath>
using namespace std;
#define ll long long
const int N=;
const int mod=1e9+;
const int maxn=1e7;
int main()
{
int n;
while(cin>>n){
int a=n/;
int b=(b-a*)/;
int c=n%;
if(a==c) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return ;
}

B - Two Switches


Time limit : 2sec / Memory limit : 256MB

Score : 200 points

Problem Statement

Alice and Bob are controlling a robot. They each have one switch that controls the robot.
Alice started holding down her button A second after the start-up of the robot, and released her button B second after the start-up.
Bob started holding down his button C second after the start-up, and released his button D second after the start-up.
For how many seconds both Alice and Bob were holding down their buttons?

Constraints

  • 0≤A<B≤100
  • 0≤C<D≤100
  • All input values are integers.

Input

Input is given from Standard Input in the following format:

A B C D

Output

Print the length of the duration (in seconds) in which both Alice and Bob were holding down their buttons.


Sample Input 1

Copy
0 75 25 100

Sample Output 1

Copy
50

Alice started holding down her button 0 second after the start-up of the robot, and released her button 75 second after the start-up.
Bob started holding down his button 25 second after the start-up, and released his button 100 second after the start-up.
Therefore, the time when both of them were holding down their buttons, is the 50 seconds from 25 seconds after the start-up to 75 seconds after the start-up.


Sample Input 2

Copy
0 33 66 99

Sample Output 2

Copy
0

Alice and Bob were not holding their buttons at the same time, so the answer is zero seconds.


Sample Input 3

Copy
10 90 20 80

Sample Output 3

Copy
60

题解:分情况讨论即可
 #include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string>
#include <cmath>
using namespace std;
#define ll long long
const int N=;
const int mod=1e9+;
const int maxn=1e7;
int main()
{
int a,b,c,d;
while(cin>>a>>b>>c>>d){
if(c>b||a>d) cout<<<<endl;
else if(a<=c&&d<=b){
cout<<d-c<<endl;
}
else if(c<=a&&b<=d){
cout<<b-a<<endl;
}
else if(a<=c&&c<=b&&b<=d){
cout<<b-c<<endl;
}
else if(c<=a&&a<=d&&d<=b){
cout<<d-a<<endl;
}
}
return ;
}

C - Multiple Clocks


Time limit : 2sec / Memory limit : 256MB

Score : 300 points

Problem Statement

We have N clocks. The hand of the i-th clock (1≤iN) rotates through 360° in exactly Ti seconds.
Initially, the hand of every clock stands still, pointing directly upward.
Now, Dolphin starts all the clocks simultaneously.
In how many seconds will the hand of every clock point directly upward again?

Constraints

  • 1≤N≤100
  • 1≤Ti≤1018
  • All input values are integers.
  • The correct answer is at most 1018 seconds.

Input

Input is given from Standard Input in the following format:

N
T1
:
TN

Output

Print the number of seconds after which the hand of every clock point directly upward again.


Sample Input 1

Copy
2
2
3

Sample Output 1

Copy
6

We have two clocks. The time when the hand of each clock points upward is as follows:

  • Clock 1246 seconds after the beginning
  • Clock 2369 seconds after the beginning

Therefore, it takes 6 seconds until the hands of both clocks point directly upward.


Sample Input 2

Copy
5
2
5
10
1000000000000000000
1000000000000000000

Sample Output 2

Copy
1000000000000000000

题解:就是求最小公倍数 (如果只有一个数直接输出)
 #include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string>
#include <cmath>
using namespace std;
#define ll long long
const int N=;
const int mod=1e9+;
const int maxn=1e7;
ll a[];
ll gcd(ll x,ll y)
{
ll c;
ll m=x,n=y;
while(y!=){
c=x%y;
x=y;
y=c;
}
return m/x*n;
}
int main()
{
int n;
cin>>n;
ll m,s,l;
cin>>m;
if(n==) cout<<m<<endl;
else if(n>){
cin>>l;
s=gcd(l,m);
for(int i=;i<n-;i++){
cin>>m;
s=gcd(s,m);
}
cout<<s<<endl;
}
return ;
}

D - Transit Tree Path


Time limit : 2sec / Memory limit : 256MB

Score : 400 points

Problem Statement

You are given a tree with N vertices.
Here, a tree is a kind of graph, and more specifically, a connected undirected graph with N−1 edges, where N is the number of its vertices.
The i-th edge (1≤iN−1) connects Vertices ai and bi, and has a length of ci.

You are also given Q queries and an integer K. In the j-th query (1≤jQ):

  • find the length of the shortest path from Vertex xj and Vertex yj via Vertex K.

Constraints

  • 3≤N≤105
  • 1≤ai,biN(1≤iN−1)
  • 1≤ci≤109(1≤iN−1)
  • The given graph is a tree.
  • 1≤Q≤105
  • 1≤KN
  • 1≤xj,yjN(1≤jQ)
  • xjyj(1≤jQ)
  • xjK,yjK(1≤jQ)

Input

Input is given from Standard Input in the following format:

N
a1 b1 c1
:
aN−1 bN−1 cN−1
Q K
x1 y1
:
xQ yQ

Output

Print the responses to the queries in Q lines.
In the j-th line j(1≤jQ), print the response to the j-th query.


Sample Input 1

Copy
5
1 2 1
1 3 1
2 4 1
3 5 1
3 1
2 4
2 3
4 5

Sample Output 1

Copy
3
2
4

The shortest paths for the three queries are as follows:

  • Query 1: Vertex 2 → Vertex 1 → Vertex 2 → Vertex 4 : Length 1+1+1=3
  • Query 2: Vertex 2 → Vertex 1 → Vertex 3 : Length 1+1=2
  • Query 3: Vertex 4 → Vertex 2 → Vertex 1 → Vertex 3 → Vertex 5 : Length 1+1+1+1=4

Sample Input 2

Copy
7
1 2 1
1 3 3
1 4 5
1 5 7
1 6 9
1 7 11
3 2
1 3
4 5
6 7

Sample Output 2

Copy
5
14
22

The path for each query must pass Vertex K=2.


Sample Input 3

Copy
10
1 2 1000000000
2 3 1000000000
3 4 1000000000
4 5 1000000000
5 6 1000000000
6 7 1000000000
7 8 1000000000
8 9 1000000000
9 10 1000000000
1 1
9 10

Sample Output 3

Copy
17000000000

题解:dfs
 #include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
const int maxn = 1e5+;
const int N = ;
typedef long long ll;
int t,head[maxn];
ll dist[maxn],w;
bool vis[maxn];
struct Edge
{
int from,to,nxt;
ll cost;
}e[*maxn];
void addedge(int u,int v,int w)
{
e[t].from=u;
e[t].to=v;
e[t].cost=w;
e[t].nxt=head[u];
head[u]=t++;
}
void dfs(int u,int fa)
{
for(int i=head[u];i!=-;i=e[i].nxt){
int to=e[i].to;
if(to==fa) continue;
dist[to]=dist[u]+e[i].cost;
dfs(to,u);
}
}
int main()
{
int n;
while(cin>>n){
t=;
memset(head,-,sizeof(head));
memset(dist,,sizeof(dist));
int u,v;
for(int i=;i<n;i++){
cin>>u>>v>>w;
addedge(u,v,w);
addedge(v,u,w);
}
int q,k;
cin>>q>>k;
dfs(k,-);
int x,y;
for(int i=;i<q;i++){
cin>>x>>y;
cout<<dist[x]+dist[y]<<endl;
}
}
return ;
}

AtCoder Beginner Contest 070 ABCD题的更多相关文章

  1. AtCoder Beginner Contest 068 ABCD题

    A - ABCxxx Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement This contes ...

  2. AtCoder Beginner Contest 053 ABCD题

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

  3. AtCoder Beginner Contest 069 ABCD题

    题目链接:http://abc069.contest.atcoder.jp/assignments A - K-City Time limit : 2sec / Memory limit : 256M ...

  4. AtCoder Beginner Contest 057 ABCD题

    A - Remaining Time Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Dol ...

  5. AtCoder Beginner Contest 051 ABCD题

    A - Haiku Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement As a New Yea ...

  6. AtCoder Beginner Contest 052 ABCD题

    A - Two Rectangles Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement The ...

  7. AtCoder Beginner Contest 054 ABCD题

    A - One Card Poker Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Ali ...

  8. AtCoder Beginner Contest 058 ABCD题

    A - ι⊥l Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Three poles st ...

  9. AtCoder Beginner Contest 050 ABC题

    A - Addition and Subtraction Easy Time limit : 2sec / Memory limit : 256MB Score : 100 points Proble ...

随机推荐

  1. dedecms批量修改文章为待审核稿件怎么操作

    dedecms批量修改文章为待审核稿件要怎么操作呢?因为我们有时会出于某些原因要把文章暂时先隐藏掉,dedecms有一个比较好的功能是将文件状态设为未审核前台就可以看不到了,那要怎么批量设置呢?到后台 ...

  2. OC UITextField只允许输入两位小数

    //只能输入两位小数 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range r ...

  3. what's the python之模块

    正则表达式 首先,我们引入了正则表达式的知识.所谓正则表达式,就是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对 ...

  4. 自己实现strtok函数

    思路:每次在原来字符串中查找分隔字符串,将分隔字符串中所有字符设为'\0',然后输出分隔串前的子串,同时更新原串的起始位置. PS:有不少博客作者自己实现的方法中往往只将分隔串当做一个字符,实际上可以 ...

  5. 基于nodejs的 本地文件夹http服务器:http-server

    请记住,是文件夹服务器 $ npm install http-server -g $ cd /tmp && http-server 或: $ http-server /tmp

  6. 万恶之源 - Python迭代器

    函数名的使用以及第一类对象 函数名的运用 函数名是一个变量, 但它是一个特殊的变量, 与括号配合可以执行函数的变量 1.函数名的内存地址 def func(): print("呵呵" ...

  7. [django]drf知识点梳理-权限

    用户 - 权限 - 资源 (拥有) (绑定) django权限机制能够约束用户行为,控制页面的显示内容,也能使API更加安全和灵活:用好权限机制,能让系统更加强大和健壮 django权限控制 Djan ...

  8. keycloak

    keycloak报错, 少了配置项   keycloak.enabled=ture 找不到 publicKey,  1   ping不通 认证中心,2 网络不好

  9. Lua 随机数生成问题

    原文链接:http://blog.csdn.net/zhangxaochen/article/details/8095007 Lua 生成随机数需要用到两个函数: math.randomseed(xx ...

  10. 【Tools】-NO.4.Tools.1.VM.1.001-【VMware Workstation PRO 12 Install CentOS 7.1】-

    1.0.0 Summary Tittle:[Tools]-NO.4.Tools.1.VM.1.001-[VMware Workstation PRO 12 Install CentOS 7.1]- S ...