AtCoder Beginner Contest 070|Elena|8.12|#471
打了场beginner的AtCoder,也是我第一次打AtCoder,虽然AK了,但是由于手速慢+撒比,才#471…
比赛链接:https://beta.atcoder.jp/contests/abc070
T1.题意:给一个三位数,判断是否回文
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
using namespace std;
int read()
{
int f=,x=; char c=getchar();
while (c>''||c<'') {if (c=='-') f=-; c=getchar();}
while (c>='' && c<='') {x=x*+c-''; c=getchar();}
return x*f;
}
int main()
{
int N=read();
int a,b,c;
a=N%,c=N/;
if (a==c) printf("Yes\n");
else printf("No\n");
return ;
}
T1
T2.题意:给两个区间,计算两个区间交错长度
如 20 40 10 50 答案就是20,数据很小,怎么写都行。
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
using namespace std;
int read()
{
int f=,x=; char c=getchar();
while (c>''||c<'') {if (c=='-') f=-; c=getchar();}
while (c>='' && c<='') {x=x*+c-''; c=getchar();}
return x*f;
}
int A,B,C,D;
int main()
{
A=read(); B=read(); C=read(); D=read(); int c=;
if (A>B) {
int t=A;
A=B;
B=t;
}
if (C>D) {
int t=C;
C=D;
D=t;
}
for (int i=A; i<=B; i++)
if (i>=C && i<=D) c++;
if (c!=) c--;
printf("%d\n",c);
return ;
}
T2
T3.题意:求N个数的最小公倍数
注意使用long long,数据达到10^18,但是我们只要开一个long long的S,然后for (int i=2; i<=N; i++) 读入A 再 S=S/gcd(S,A)*A 就可以得到1-i的最小公倍数,而且由于除的早,所以不会
爆long long。
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
using namespace std;
long long read()
{
long long f=,x=; char c=getchar();
while (c>''||c<'') {if (c=='-') f=-; c=getchar();}
while (c>='' && c<='') {x=x*+c-''; c=getchar();}
return x*f;
}
long long gcd(long long A,long long B)
{
if (A%B==) return B;
return gcd(B,A%B);
}
long long ANS;
long long A,B,N,S;
int main()
{
N=read();S=read();
for (int i=; i<=N; i++) {
A=read();
S=S/gcd(S,A)*A;
}
printf("%lld\n",S);
return ;
}
T3
T4.题意:给一棵有N个节点的树,再给每两个节点之间的距离,给出一个点K,再给一个点Q表示Q次询问,接下来输入Q组X和Y,对于每组X和Y,输出X到Y经过K的最短距离。
盲目地拼老命DFS或最短路会挂得特别难看…
因为要求经过K点,我们可以换个思路:强制K为根,然后DFS一遍,求出根(K)到其他节点的最短路径,对于每次询问,再输出DIS[X]+DIS[Y]就可以了。因为只要DFS一次而且每个节
点只访问一次,所以不会TLE。对于树,我仍然拿边表存储。
当然更多的大佬选择了LCA。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<cstdlib>
using namespace std;
int head[],NUM_EDGE;
bool BOOK[];
long long DIS[];
struct edge
{
int TO;
int NEXT;
int DIS;
}EDGE[];
void ADD(int FROM,int TO,int DIS)
{
EDGE[++NUM_EDGE].NEXT=head[FROM];
EDGE[NUM_EDGE].TO=TO;
EDGE[NUM_EDGE].DIS=DIS;
head[FROM]=NUM_EDGE;
}
int read()
{
int x=,f=; char c=getchar();
while (c>''||c<'') {if (c=='-') f=-; c=getchar();}
while (c>=''&&c<='') {x=x*+(c-''); c=getchar();}
return x*f;
}
void DFS(int X) {
for (int i=head[X]; i; i=EDGE[i].NEXT)
if (BOOK[EDGE[i].TO]==) {
BOOK[EDGE[i].TO]=;
DIS[EDGE[i].TO]=DIS[X]+EDGE[i].DIS;
DFS(EDGE[i].TO);
}
}
int N,Q,K,U,V,W,X[],Y[],INF=,MIN;
int main()
{
N=read();
for (int i=; i<=N-; i++) {
U=read(); V=read(); W=read();
ADD(U,V,W); ADD(V,U,W);
}Q=read(); K=read();
BOOK[K]=;
DFS(K);
for (int i=; i<=Q; i++) {
X[i]=read(); Y[i]=read(); printf("%lld\n",DIS[X[i]]+DIS[Y[i]]);
}
return ;
}
T4
AtCoder Beginner Contest 070|Elena|8.12|#471的更多相关文章
- Atcoder Beginner Contest 070 D - Transit Tree Path
题意:n个点,n-1条边,组成一个无向的联通图,然后给出q和k,q次询问,每次给出两个点,问这两个点之间的最短距离但必须经过k点. 思路:我当时是用优化的Dijkstra写的(当天刚学的),求出k点到 ...
- AtCoder Beginner Contest 070 ABCD题
题目链接:http://abc070.contest.atcoder.jp/assignments A - Palindromic Number Time limit : 2sec / Memory ...
- AtCoder Beginner Contest 070
我好想有点思维江化,所以我想给这个丝毫没有问题的abc也写下 A - Palindromic Number Time Limit: 2 sec / Memory Limit: 256 MB Score ...
- 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 053 ABCD题
A - ABC/ARC Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Smeke has ...
- AtCoder Beginner Contest 154 题解
人生第一场 AtCoder,纪念一下 话说年后的 AtCoder 比赛怎么这么少啊(大雾 AtCoder Beginner Contest 154 题解 A - Remaining Balls We ...
- AtCoder Beginner Contest 223
AtCoder Beginner Contest 223 A是纯纯的水题,就不说了 B - String Shifting 思路分析 我真的sb,一开始想了好久是不是和全排列有关,然后读了好几遍题目也 ...
- AtCoder Beginner Contest 238 A - F 题解
AtCoder Beginner Contest 238 \(A - F\) 题解 A - Exponential or Quadratic 题意 判断 \(2^n > n^2\)是否成立? S ...
- AtCoder Beginner Contest 052
没看到Beginner,然后就做啊做,发现A,B太简单了...然后想想做完算了..没想到C卡了一下,然后还是做出来了.D的话瞎想了一下,然后感觉也没问题.假装all kill.2333 AtCoder ...
随机推荐
- (原)Ring loss Convex Feature Normalization for Face Recognition
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/8858998.html 论文: Ring loss: Convex Feature Normalizat ...
- CSS3 选择器 基本选择器介绍
CSS是一种用于屏幕上渲染html,xml等一种语言,CSS主要是在相应的元素中应用样式,来渲染相对应用的元素,那么这样我们选择相应的元素就很重要了,如何选择对应的元素,此时就需要我们所说的选择器.选 ...
- 详述socket编程之select()和poll()函数
转自:http://www.cppblog.com/myjfm/archive/2011/10/26/159093.aspx select()函数和poll()函数均是主要用来处理多路I/O复用的情况 ...
- DUAL PORT RAM应用实例
作者:桂. 时间:2018-05-14 12:11:00 链接:http://www.cnblogs.com/xingshansi/p/9035522.html 前言 主要是Xilinx 常用模块汇 ...
- JS 日期转换,格式化等常用的函数定义
//判断字符串是否日期格式 function isDate(val) { return new Date(val) != "Invalid Date"; } //日期格式化 fun ...
- rocketmq 源码
https://github.com/YunaiV/incubator-rocketmq
- java this 子类调父类,父类再调用子类已覆盖的方法及属性(又一次理解)
之前一直以为 this关键字 是指调用者对象,但是这次才真正理解,this代表当前对象,但是指向调用者对象,其实就是多态的用法,如下所示:B 继承了 A,在B 中调用A类的方法,在A 中用this 访 ...
- 【Jetty】Jetty 的工作原理以及与 Tomcat 的比较
Jetty 应该是目前最活跃也是很有前景的一个 Servlet 引擎.本文将介绍 Jetty 基本架构与基本的工作原理:您将了解到 Jetty 的基本体系结构:Jetty 的启动过程:Jetty 如何 ...
- FROM USE CASES TO TEST CASES
FROM USE CASES TO TEST CASES -Test note of “Essential Software Test Design” 2015-08-31 Content: 12.1 ...
- 《软件测试自动化之道》读书笔记 之 底层的Web UI 测试
<软件测试自动化之道>读书笔记 之 底层的Web UI 测试 2014-09-28 测试自动化程序的任务待测程序测试程序 启动IE并连接到这个实例 如何判断待测web程序完全加载到浏览 ...