打了场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. SpringBoot 2.x 整合ElasticSearch的demo

    SpringBoot 2.x 整合ElasticSearch的demo 1.配置文件application.yml信息 # Tomcat server: tomcat: uri-encoding: U ...

  2. M1 卡技术规范

    射频卡简单来讲就是卡的一种工作方式,通过感应的方式来工作,也能够把全部的感应卡都统称为射频卡. IC卡的范围比較广.芯片外露的接触式IC卡.芯片内置的感应式IC卡和双界面IC卡都可统称为IC卡.IC卡 ...

  3. ROS nodelet的使用

    ROS是一种基于分布式网络通讯的操作系统,整个机器人控制系统是由一个Master主节点和若干个功能相对独立的Node子节点组成,这也是ROS系统最主要的特点就是分布式以及模块化的设计.在ROS通讯过程 ...

  4. 用ctrl+鼠标滚动调节字体大小

    如此设置之后,按住ctrl+鼠标滚动,可以放大和变小代码的字号.

  5. 最新Android & iOS设计尺寸规范

    Android 和 iPhone.iPad以及主流手机屏幕的分辨率和相关设计尺寸规范 <点击看大图>

  6. nginx(一)下载和启动

    一.准备工作 http://nginx.org/en/download.html 下载,解压,配置,编译,安装,都用默认的设置即可. 二.安装完成后 默认的安装路径为 /usr/local/nginx ...

  7. Atitit 大json文件的结构化查看解决方案,高性能的jsonview  attilax总结.docx

    Atitit 大json文件的结构化查看解决方案,高性能的jsonview  attilax总结.docx 1.1. 实现目标:1 1.2. 实现key与value类型的..一直分析到非 jsonob ...

  8. linux每日命令(2):cd命令

    1.命令格式: cd [目录名] 2.命令功能 切换当前目录至 [目录名] 3. 常用范例 1.进入系统根目录 命令: cd / 说明:进入系统根目录,上面命令执行完后拿ls命令看一下,当前目录已经到 ...

  9. JAVA(二)异常/包及访问权限/多线程/泛型

    成鹏致远 | lcw.cnblog.com |2014-01-28 异常 1.异常的基本概念 异常是导致程序中断运行的一种指令流 基本的异常处理格式:try...catch,try中捕获异常,出现异常 ...

  10. Spatial Sound Research

    Spatial Sound Research What are our goals? The basic goal of our research is to develop cost-effecti ...