打了场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的更多相关文章

  1. Atcoder Beginner Contest 070 D - Transit Tree Path

    题意:n个点,n-1条边,组成一个无向的联通图,然后给出q和k,q次询问,每次给出两个点,问这两个点之间的最短距离但必须经过k点. 思路:我当时是用优化的Dijkstra写的(当天刚学的),求出k点到 ...

  2. AtCoder Beginner Contest 070 ABCD题

    题目链接:http://abc070.contest.atcoder.jp/assignments A - Palindromic Number Time limit : 2sec / Memory ...

  3. AtCoder Beginner Contest 070

    我好想有点思维江化,所以我想给这个丝毫没有问题的abc也写下 A - Palindromic Number Time Limit: 2 sec / Memory Limit: 256 MB Score ...

  4. AtCoder Beginner Contest 100 2018/06/16

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

  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 154 题解

    人生第一场 AtCoder,纪念一下 话说年后的 AtCoder 比赛怎么这么少啊(大雾 AtCoder Beginner Contest 154 题解 A - Remaining Balls We ...

  7. AtCoder Beginner Contest 223

    AtCoder Beginner Contest 223 A是纯纯的水题,就不说了 B - String Shifting 思路分析 我真的sb,一开始想了好久是不是和全排列有关,然后读了好几遍题目也 ...

  8. AtCoder Beginner Contest 238 A - F 题解

    AtCoder Beginner Contest 238 \(A - F\) 题解 A - Exponential or Quadratic 题意 判断 \(2^n > n^2\)是否成立? S ...

  9. AtCoder Beginner Contest 052

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

随机推荐

  1. jquery ajax IE

    在ie上会出现,get/post 只调用一次的现象 解决方法: cache:false http://stackoverflow.com/questions/8841425/how-to-set-ca ...

  2. unity, 在image effect shader中用_CameraDepthTexture重建世界坐标

    --------------更新 更简单的方法: //depth: raw depth, nonlinear, 0 at near plane, 1 at far plan   float4 scre ...

  3. rocketmq 源码

    https://github.com/YunaiV/incubator-rocketmq

  4. Git应用实践(一)

    [时间:2017-03] [状态:Open] [关键词:Git,ssh,远程仓库,git remote] 0-背景 近期在使用Git@oschina上发现以下两个问题: 我的提交有两个名和email, ...

  5. Vue+element组合el-table-column表头宽度自定义

    [本文出自天外归云的博客园] 需求 1. 某列表头文字内容过长,要对每列表头自定义宽度 2. 表格row的每一column文字不换行,超过列宽则省略,mouseover有提示 3. 对于label做滤 ...

  6. kafka性能测试1.0.0

    kafka提供工具kafka-producer-perf-test.sh用以压测, 参数 说明 messages 生产者发送总的消息数量 message-size 每条消息大小 batch-size ...

  7. Docker孵化的5个开源项目

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/M2l0ZgSsVc7r69eFdTj/article/details/81977243 回想过去短短 ...

  8. C# 反射总结 获取 命名空间 类名 方法名

    一.获取 命名空间 类名 方法名 using System; using System.Collections.Generic; using System.Linq; using System.Tex ...

  9. 随笔:JS对象无new构造原理

    var myFun = function(words) { if (!(this instanceof myFun)) { return new myFun(words); } this.name = ...

  10. xml 转map dom4j

    http://ziyu-1.iteye.com/blog/469003 传过来一个xml文件,需要转换成Map,能够应对不用结构的xml,而不是只针对固定格式的xml. 转换规则: 1.主要是Map与 ...