AtCoder Beginner Contest 070
我好想有点思维江化,所以我想给这个丝毫没有问题的abc也写下
A - Palindromic Number
Time Limit: 2 sec / Memory Limit: 256 MB
Score : 100100 points
Problem Statement
You are given a three-digit positive integer NN.
Determine whether NN is a palindromic number.
Here, a palindromic number is an integer that reads the same backward as forward in decimal notation.
Constraints
- 100≤N≤999100≤N≤999
- NN is an integer.
Input
Input is given from Standard Input in the following format:
NN
Output
If NN is a palindromic number, print Yes; otherwise, print No.
Sample Input 1 Copy
575
Sample Output 1 Copy
Yes
N=575N=575 is also 575575 when read backward, so it is a palindromic number. You should print Yes.
Sample Input 2 Copy
123
Sample Output 2 Copy
No
N=123N=123 becomes 321321 when read backward, so it is not a palindromic number. You should print No.
Sample Input 3 Copy
812
Sample Output 3 Copy
No
Palindromic这个词必须熟啊,回文串的,直接搞,就是这点我感觉自己思想僵化,就是上次让判断时间是不是回文串一样的
我神特么写了个判断倒过来的数是不是一样的,石乐志,就是按照字符串读也比这个好啊
#include <bits/stdc++.h>
using namespace std;
int la(int n){
int s=;
while(n){
int t=n%;
s=s*+t;
n/=;
}
return s;
}
int main()
{
int n;
cin>>n;
printf("%s\n",n==la(n)?"Yes":"No");
return ;
}
其实只是判断百位和个位是否相同就好了
#include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
printf("%s\n",n/==n%?"Yes":"No");
return ;
}
B - Two Switches
Time Limit: 2 sec / Memory Limit: 256 MB
Score : 200200 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 AA second after the start-up of the robot, and released her button BB second after the start-up.
Bob started holding down his button CC second after the start-up, and released his button DD second after the start-up.
For how many seconds both Alice and Bob were holding down their buttons?
Constraints
- 0≤A<B≤1000≤A<B≤100
- 0≤C<D≤1000≤C<D≤100
- All input values are integers.
Input
Input is given from Standard Input in the following format:
AA BB CC DD
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 00 second after the start-up of the robot, and released her button 7575 second after the start-up.
Bob started holding down his button 2525 second after the start-up, and released his button 100100 second after the start-up.
Therefore, the time when both of them were holding down their buttons, is the 5050 seconds from 2525 seconds after the start-up to 7575 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 <bits/stdc++.h>
using namespace std;
int main()
{
int a,b,c,d,f;
cin>>a>>b>>c>>d;
f=min(d,b)-max(a,c);
if(f<)f=;
cout<<f<<endl;
return ;
}
C - Multiple Clocks
Time Limit: 2 sec / Memory Limit: 256 MB
Score : 300300 points
Problem Statement
We have NN clocks. The hand of the ii-th clock (1≤i≤N)(1≤i≤N) rotates through 360°360° in exactly TiTi 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≤1001≤N≤100
- 1≤Ti≤10181≤Ti≤1018
- All input values are integers.
- The correct answer is at most 10181018 seconds.
Input
Input is given from Standard Input in the following format:
NN
T1T1
::
TNTN
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 11: 22, 44, 66, ...... seconds after the beginning
- Clock 22: 33, 66, 99, ...... seconds after the beginning
Therefore, it takes 66 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 <bits/stdc++.h>
using namespace std;
typedef long long LL;
int main()
{ int n;
cin>>n;
LL s=;
for(int i=;i<n;i++){
LL x;
cin>>x;
s=x/__gcd(x,s)*s;
}
cout<<s<<endl;
return ;
}
Time Limit: 2 sec / Memory Limit: 256 MB
Score : 400400 points
Problem Statement
You are given a tree with NN vertices.
Here, a tree is a kind of graph, and more specifically, a connected undirected graph with N−1N−1 edges, where NN is the number of its vertices.
The ii-th edge (1≤i≤N−1)(1≤i≤N−1) connects Vertices aiai and bibi, and has a length of cici.
You are also given QQ queries and an integer KK. In the jj-th query (1≤j≤Q)(1≤j≤Q):
- find the length of the shortest path from Vertex xjxj and Vertex yjyj via Vertex KK.
Constraints
- 3≤N≤1053≤N≤105
- 1≤ai,bi≤N(1≤i≤N−1)1≤ai,bi≤N(1≤i≤N−1)
- 1≤ci≤109(1≤i≤N−1)1≤ci≤109(1≤i≤N−1)
- The given graph is a tree.
- 1≤Q≤1051≤Q≤105
- 1≤K≤N1≤K≤N
- 1≤xj,yj≤N(1≤j≤Q)1≤xj,yj≤N(1≤j≤Q)
- xj≠yj(1≤j≤Q)xj≠yj(1≤j≤Q)
- xj≠K,yj≠K(1≤j≤Q)xj≠K,yj≠K(1≤j≤Q)
Input
Input is given from Standard Input in the following format:
NN
a1a1 b1b1 c1c1
::
aN−1aN−1 bN−1bN−1 cN−1cN−1
QQ KK
x1x1 y1y1
::
xQxQ yQyQ
Output
Print the responses to the queries in QQ lines.
In the jj-th line j(1≤j≤Q)j(1≤j≤Q), print the response to the jj-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 11: Vertex 22 → Vertex 11 → Vertex 22 → Vertex 44 : Length 1+1+1=31+1+1=3
- Query 22: Vertex 22 → Vertex 11 → Vertex 33 : Length 1+1=21+1=2
- Query 33: Vertex 44 → Vertex 22 → Vertex 11 → Vertex 33 → Vertex 55 : Length 1+1+1+1=41+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=2K=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
这个题哪有那么多幺蛾子,直接递归上去就好了
#include <bits/stdc++.h>
using namespace std;
const int N=;
typedef long long ll;
struct to{
ll l,t;
};
vector<to> mp[N];
ll dis[N];
void dfs(ll u,ll fa){
for(ll i=; i<mp[u].size(); i++){
ll v=mp[u][i].t;
if(v==fa) continue;
dis[v]=dis[u]+mp[u][i].l;
dfs(v,u);
}
return;
}
int main(){
ll n,a,b,c,q,k,x,y;
cin>>n;
for(ll i=; i<n; i++){
cin>>a>>b>>c;
mp[a].push_back((to){c,b});
mp[b].push_back((to){c,a});
}
cin>>q>>k;
dfs(k,);
for(ll i=; i<q; i++){
cin>>x>>y;
cout<<dis[x]+dis[y]<<endl;
}
return ;
}
AtCoder Beginner Contest 070的更多相关文章
- Atcoder Beginner Contest 070 D - Transit Tree Path
题意:n个点,n-1条边,组成一个无向的联通图,然后给出q和k,q次询问,每次给出两个点,问这两个点之间的最短距离但必须经过k点. 思路:我当时是用优化的Dijkstra写的(当天刚学的),求出k点到 ...
- AtCoder Beginner Contest 070|Elena|8.12|#471
打了场beginner的AtCoder,也是我第一次打AtCoder,虽然AK了,但是由于手速慢+撒比,才#471… 比赛链接:https://beta.atcoder.jp/contests/abc ...
- AtCoder Beginner Contest 070 ABCD题
题目链接:http://abc070.contest.atcoder.jp/assignments A - Palindromic Number Time limit : 2sec / Memory ...
- 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 ...
随机推荐
- 字符串(String)杂谈
作者:臧圩人(zangweiren) 网址:http://zangweiren.javaeye.com >>>转载请注明出处!<<< 上一次我们已经一起回顾了面试题 ...
- MovieReview—A dog's purpose(一只狗的使命)
Be Here Now A dog in the movie was reinc ...
- 用户输入和while循环
函数input()的工作原理 message=input('Tell me something,and I will repeat it back to you:') print(message) 编 ...
- MySQL索引类型及优化
索引是快速搜索的关键.MySQL索引的建立对于MySQL的高效运行是很重要的.下面介绍几种常见的MySQL索引类型. 在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytabl ...
- Factorialize a Number-freecodecamp算法题目
Factorialize a Number(计算一个整数的阶乘) 要求 给定一个整数,求其阶乘(用字母n来代表一个整数,阶乘代表着所有小于或等于n的整数的乘积) 思路 确定乘的次数 用for循环进行累 ...
- 【转】pDc->SelectObject(pOldBrush)恢复画刷
请看下面的代码: CDC *pDc=new CClientDC(this); CBrush brush; brush.CreateSolidBrush(RGB(0,255,0)); CBrush * ...
- POJ-1426-Find the multiply
这题深搜广搜都可以做,深搜的做法就是把每个由1 和 0 组成的数字拓展10倍以及拓展10倍+1,然后压入队列. 这样可以走过所有由10组成的数字,且两个方向平行发展(*10 +0和+1). bfs ...
- 【线段树分治 01背包】loj#6515. 「雅礼集训 2018 Day10」贪玩蓝月
考试时候怎么就是没想到线段树分治呢? 题目描述 <贪玩蓝月>是目前最火爆的网页游戏.在游戏中每个角色都有若干装备,每件装备有一个特征值 $w$ 和一个战斗力 $v$ .在每种特定的情况下, ...
- Mac配置gdb的一些问题
1.Unable to find Mach task port for process-id 1527: (os/kern) failure (0x5). (please check gdb is ...
- pandas交叉表和透视表及案例分析
一.交叉表: 作用: 交叉表是一种用于计算分组频率的特殊透视图,对数据进行汇总 考察预测数据和正式数据的对比情况,一个作为行,一个作为列 案例: 医院预测病人病情: 真实病情如下数组(B:有病,M:没 ...