打了场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. 通过nginx中转获取不到IP的问题解决

    第一步:在nginx.conf中配置反向代理时把真实IP带上,例如: server {     listen 80;     server_name  myibook.com.cn;     loca ...

  2. 彻底理解js中的闭包

    闭包是js的一个难点也是它的一个特色,是我们必须掌握的js高级特性,那么什么是闭包呢?它又有什么用呢? 我们都知道,js的作用域分两种,全局和局部,基于我们所熟悉的作用域链相关知识,我们知道在js作用 ...

  3. tensorflow 笔记10:tf.nn.sparse_softmax_cross_entropy_with_logits 函数

    函数:tf.nn.sparse_softmax_cross_entropy_with_logits(_sentinel=None,labels=None,logits=None,name=None) ...

  4. 微信mac版的bug 直接显示了消息原始数据

    <msg> <voicemsg endflag="1" cancelflag="0" forwardflag="0" vo ...

  5. 一些jquery特效收集

    jQuery幻灯片插件带投影的图片叠加切换幻灯片轮播 特效:http://www.jsfoot.com/jquery/images/ jquery文字滚动上下间歇文字滚动 http://www.17s ...

  6. RDP 数据库简介

    在扩增子数据分析中,有时会发现多个OTU 注释到了同一个species ,  为什么会出现这种情况呢? 首先既然在OTU水平能分开,说明序列的相似度小于97%,  同一个物种的同一个基因的片段相似度会 ...

  7. Solr中的q与fq参数的区别

    转自:搜索系统5:Solr中的q与fq参数的区别在那儿 1.对结果排序有影响 今天遇到一个问题,把相同的参数比如name:张三,放到q与fq,两者返回的结果完全不一样. 经过debug发现,原因是这两 ...

  8. Go-MySQL-Driver

    1.下载Go-Mysql-Driver go get github.com/go-sql-driver/mysql 2.引入import import( "database/sql" ...

  9. Java8学习笔记(五)--Stream API详解[转]

    为什么需要 Stream Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念.它也不同于 StAX 对 ...

  10. ABBYY FineReader Pro for Mac有哪些特性(上)

    使用ABBYY FineReader Pro for Mac轻松转换纸质文档.PDF文件和数字文本照片为可编辑和可搜索的文件,再也不需要手动重新输入或格式化了,相反,可以编辑.搜索.共享.归档和复制文 ...