打了场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. 【tp5】ThinkCMF5框架,配置使其支持不同终端PC/WAP/Wechat能加载不同配置和视图

    1.版本 5.0.18 2.在data/conf/ 新增config.php文件,内容如下: <?php //ThinkCMF5区别不同客户端加载不同配置文件和模块.视图 $default_mo ...

  2. 分区工具parted的详解及常用分区使用方法【转】

    来源:http://blog.51cto.com/zhangmingqian/1068779 分区工具parted的详解及常用分区使用方法 一.         parted的用途及说明 概括使用说明 ...

  3. 使用Nginx实现灰度发布(转)

    灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式.AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B ...

  4. Android Error:Execution failed for task ':app:compileDebugJavaWithJavac' 解决方案

    今天使用 Android Studio 构建项目的时候出现了这个错误 compileDebugJavaWithJavac 通过搜索发现造成该问题的原因有很多需要结合具体的项目进行排查 通过 Andro ...

  5. 使用Docker-Docker for Web Developers(2)

    1. 使用镜像 1.1 在Docker Hub上查找镜像 我们查找一下之前博客里面,推送到Docker Hub里面的bage88/docker-demo,能看到有2个仓库,第一个就是我们上次上传的镜像 ...

  6. Spring Boot 应用 发布到Docker

    Spring Boot 应用 先把命令行切换到Maven项目的根目录 E:\gitCode\galaxyguardians 通过mvn clean package命令打包应用程序 ,在E:\gitCo ...

  7. 【emWin】例程三十二:窗口对象———Progbar

    简介: 进度条通常在应用程序中用于实现虚拟化:本例程实现液晶亮度显示 . 触摸校准(上电可选择是否进入校准界面) 实验现象: 实验指导书及代码包下载: 链接:http://pan.baidu.com/ ...

  8. ADO.NET 数据库备份等操作

    public class SqlServerBackup { private string database; private string server; private string uid; p ...

  9. java中的数据加密1 消息摘要

    消息摘要(Message Digest) 又称为数字摘要(Digital Digest).它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生.如果消息在途中 ...

  10. Opencv Mat运算(转)

    一.矩阵Mat I,img,I1,I2,dst,A,B; double k,alpha; Scalar s; //注意Mat的行列号是从0开始的 //定义矩阵a,b,c Mat a,b,c; //生成 ...