这场打得蛮菜的,很晚才出BC,还一堆罚时……

A - Sorted Arrays

题目大意:将给定数列划分成单调不增或单调不减的区间,求最少区间数。

贪心即可。

#include<cstdio>
#include<algorithm>
#define MN 1000001
using namespace std; int read_p,read_ca;
inline int read(){
read_p=;read_ca=getchar();
while(read_ca<''||read_ca>'') read_ca=getchar();
while(read_ca>=''&&read_ca<='') read_p=read_p*+read_ca-,read_ca=getchar();
return read_p;
}
const int MOD=1e9+;
int n,a[MN],m=,mmh=;
int main(){
int i,j;
n=read();
for (i=;i<=n;i++) a[i]=read();
for (i=;i<=n;i++){
if (a[i]==a[i-]) continue;
if (m==-&&a[i]>a[i-]) mmh++,m=;else
if (m==&&a[i]<a[i-]) mmh++,m=;else
m=a[i]>a[i-]?:-;
}
printf("%d\n",mmh+);
}

B - Hamiltonish Path

题目大意:无向图中任意求一条路径,使得与端点直接相连的所有点都在路径上。

一条不合法的路径就是端点可以继续往外拓展的路径。那么直接从一个点出发,拓展两次,把两次的终点作为端点即可。

因为输出顺序写错卡了好久。

#include<cstdio>
#include<algorithm>
#define MN 400001
using namespace std; int read_p,read_ca;
inline int read(){
read_p=;read_ca=getchar();
while(read_ca<''||read_ca>'') read_ca=getchar();
while(read_ca>=''&&read_ca<='') read_p=read_p*+read_ca-,read_ca=getchar();
return read_p;
}
const int MOD=1e9+;
int n,a[MN],m=,mmh=,x,y,l[MN],r,st[MN],top=,_st[MN],_top=,num;
struct na{int y,ne;}b[MN<<];
inline void in(int x,int y){b[++num].y=y;b[num].ne=l[x];l[x]=num;}
bool bo[MN];
void dfs(int p){
st[++top]=p;
bo[p]=;
for (int i=l[p];i;i=b[i].ne)
if (!bo[b[i].y]) {dfs(b[i].y);break;}
}
void _dfs(int p){
_st[++_top]=p;
bo[p]=;
for (int i=l[p];i;i=b[i].ne)
if (!bo[b[i].y]) {_dfs(b[i].y);break;}
}
int main(){
int i;
n=read();m=read();
for (i=;i<=m;i++) x=read(),y=read(),in(x,y),in(y,x);
dfs();
_dfs();
printf("%d\n",top+_top-);
for (i=top;i;i--) printf("%d ",st[i]);
for (i=;i<=_top;i++) printf("%d ",_st[i]);
}

C - Ants on a Circle

题目大意:一个环上一些蚂蚁在走,有顺逆时针两种方向,一秒走一步,相撞都掉头,问T秒后每只的位置。

先把相撞掉头这点换成交换编号,然后就不会做惹T_T

幸得tjw神犇相救。

回到原问题就比较容易看出,蚂蚁的相对位置是不变的。那么对最终位置排序并统计蚂蚁走了多少圈(跨过L-1与0的分界多少次),在对应的下标上移动即可。

#include<queue>
#include<cstdio>
#include<algorithm>
#define MN 110001
using namespace std; int read_p,read_ca;
inline int read(){
read_p=;read_ca=getchar();
while(read_ca<''||read_ca>'') read_ca=getchar();
while(read_ca>=''&&read_ca<='') read_p=read_p*+read_ca-,read_ca=getchar();
return read_p;
}
int n,l,t,p[MN],w[MN];
long long T=;
int main(){
register int i;
n=read();l=read();t=read();
for (i=;i<n;i++) p[i]=read(),w[i]=read();
for (i=;i<n;i++) p[i]+=w[i]==?t:-t,T+=p[i]/l,p[i]%=l;
for (i=;i<n;i++) if (p[i]<){
T--;
p[i]+=l;
}
sort(p,p+n);T%=n;
for (i=;i<n;i++) printf("%d\n",p[(i+T+n)%n]);
}

AtCoder Grand Contest 013的更多相关文章

  1. AtCoder Grand Contest 013 C:Ants on a Circle

    题目传送门:https://agc013.contest.atcoder.jp/tasks/agc013_c 题目翻译 给你一个周长为\(L\)的圆,有\(N\)只蚂蚁在圆上爬,速度为一单位距离每秒. ...

  2. AtCoder Grand Contest 013 E - Placing Squares

    题目传送门:https://agc013.contest.atcoder.jp/tasks/agc013_e 题目大意: 给定一个长度为\(n\)的木板,木板上有\(m\)个标记点,距离木板左端点的距 ...

  3. Atcoder Grand Contest 013 E - Placing Squares(组合意义转化+矩阵快速幂/代数推导,思维题)

    Atcoder 题面传送门 & 洛谷题面传送门 这是一道难度 Cu 的 AGC E,碰到这种思维题我只能说:not for me,thx 然鹅似乎 ycx 把题看错了? 首先这个平方与乘法比较 ...

  4. AtCoder Grand Contest 013 C :Ants on a Circle

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...

  5. AtCoder Grand Contest 013题解

    传送门 \(A\) 先把相同的缩一起,然后贪心就可以了 //quming #include<bits/stdc++.h> #define R register #define fp(i,a ...

  6. 【agc013d】AtCoder Grand Contest 013 D - Piling Up

    题意 盒子里有n块砖,每块的颜色可能为蓝色或红色. 执行m次三步操作: 1.从盒子里随便拿走一块砖 2.放入一块蓝砖和红砖到盒子里 3.从盒子里随便拿走一块砖 给定n,m 问拿出来的砖,可能有多少种不 ...

  7. AtCoder Grand Contest 012

    AtCoder Grand Contest 012 A - AtCoder Group Contest 翻译 有\(3n\)个人,每一个人有一个强大值(看我的假翻译),每三个人可以分成一组,一组的强大 ...

  8. AtCoder Grand Contest 011

    AtCoder Grand Contest 011 upd:这篇咕了好久,前面几题是三周以前写的... AtCoder Grand Contest 011 A - Airport Bus 翻译 有\( ...

  9. AtCoder Grand Contest 031 简要题解

    AtCoder Grand Contest 031 Atcoder A - Colorful Subsequence description 求\(s\)中本质不同子序列的个数模\(10^9+7\). ...

随机推荐

  1. MVC系列——一个异常消息传递引发的思考

    前言:最近在某个项目里面遇到一个有点纠结的小问题,经过半天时间的思索和尝试,问题得到解决.在此记录一下解决的过程,以及解决问题的过程中对.net里面MVC异常处理的思考.都是些老生常谈的问题,不多说, ...

  2. Docker(十):Docker安全

    1.Docker安全主要体现在如下方面 a)Docker容器的安全性 b)镜像安全性 c)Docker daemon安全性 2.安装策略 2.1 Cgroup Cgroup用于限制容器对CPU.内存的 ...

  3. su 和 sudo 命令的区别-转载

    link 一. 使用 su 命令临时切换用户身份                   1.su 的适用条件和威力   su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户beinan登录的,但要 ...

  4. MySql监控优化

    MySQL监控   MySQL服务器硬件和OS(操作系统)调优:   1.有足够的物理内存,能将整个InnoDB文件加载到内存里 —— 如果访问的文件在内存里,而不是在磁盘上,InnoDB会快很多. ...

  5. 从底层角度看ASP.NET-A low-level Look at the ASP.NET...

    从更低的角度 这篇文章在一个底层的角度来关注一个web请求怎样到达asp.net框架,从web服务器,通过ISAPI.看看这些后面发生了什么,让我们停止对asp.net的黑箱猜想.ASP.NET是一个 ...

  6. swig官方go Examples 源码勘误

    勘误 在官网下载页面(http://www.swig.org/download.html )下载的swigwin-3.0.12包中go示例源码有个错误(swigwin-3.0.12\Examples\ ...

  7. python匿名函数

    文章导读: 以前自己一直没搞明白Python中的匿名函数,现在拿这个问题基本上搞明白了,拿自己的理解整成一篇文章,附带大量例子,让其更加好理解. 在编程语言中,函数的应用: 1. 代码块重复,这时候必 ...

  8. Python学习_12_方法和类定制

    方法 在上一篇随笔中,简单提到了类的某些方法:__init__()等的调用,并简要说明方法和函数的区别. 方法是在类内部定义的函数,方法也是对象,所以方法是类的属性,这就是为什么说实例的方法存在于类定 ...

  9. Oracle绑定变量优缺点

    参考:http://f.dataguru.cn/thread-208881-1-1.html 参考:http://blog.sina.com.cn/s/blog_4d9ece9a0100caw8.ht ...

  10. Effective Java 第三版——16.在公共类中使用访问方法而不是公共属性

    Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...