AtCoder Grand Contest 013
这场打得蛮菜的,很晚才出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的更多相关文章
- AtCoder Grand Contest 013 C:Ants on a Circle
题目传送门:https://agc013.contest.atcoder.jp/tasks/agc013_c 题目翻译 给你一个周长为\(L\)的圆,有\(N\)只蚂蚁在圆上爬,速度为一单位距离每秒. ...
- AtCoder Grand Contest 013 E - Placing Squares
题目传送门:https://agc013.contest.atcoder.jp/tasks/agc013_e 题目大意: 给定一个长度为\(n\)的木板,木板上有\(m\)个标记点,距离木板左端点的距 ...
- Atcoder Grand Contest 013 E - Placing Squares(组合意义转化+矩阵快速幂/代数推导,思维题)
Atcoder 题面传送门 & 洛谷题面传送门 这是一道难度 Cu 的 AGC E,碰到这种思维题我只能说:not for me,thx 然鹅似乎 ycx 把题看错了? 首先这个平方与乘法比较 ...
- AtCoder Grand Contest 013 C :Ants on a Circle
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- AtCoder Grand Contest 013题解
传送门 \(A\) 先把相同的缩一起,然后贪心就可以了 //quming #include<bits/stdc++.h> #define R register #define fp(i,a ...
- 【agc013d】AtCoder Grand Contest 013 D - Piling Up
题意 盒子里有n块砖,每块的颜色可能为蓝色或红色. 执行m次三步操作: 1.从盒子里随便拿走一块砖 2.放入一块蓝砖和红砖到盒子里 3.从盒子里随便拿走一块砖 给定n,m 问拿出来的砖,可能有多少种不 ...
- AtCoder Grand Contest 012
AtCoder Grand Contest 012 A - AtCoder Group Contest 翻译 有\(3n\)个人,每一个人有一个强大值(看我的假翻译),每三个人可以分成一组,一组的强大 ...
- AtCoder Grand Contest 011
AtCoder Grand Contest 011 upd:这篇咕了好久,前面几题是三周以前写的... AtCoder Grand Contest 011 A - Airport Bus 翻译 有\( ...
- AtCoder Grand Contest 031 简要题解
AtCoder Grand Contest 031 Atcoder A - Colorful Subsequence description 求\(s\)中本质不同子序列的个数模\(10^9+7\). ...
随机推荐
- Python 安装包的导入
1.安装适合的pip python安装pip的命令: python -m pip install --upgrade pip安装Python包,的确是pip最为方便了,简单快捷,因为它直接是从pypi ...
- iOS wkwebview懒加载中遇到的问题
这是我遇到的问题,也许是个例,就算狗血了点吧 需求: 当前界面(mainVC)响应点击事件,传值给webviewController(webVC)其中包含网址,此时如果在webVC中对wkwebvie ...
- UITableView的性能优化1
UITableView作为ios中使用最频繁的控件之一,其性能优化也是常常要面对的,尤其是当数据量偏大并且设备性能不足时.本文旨在总结tableview的几个性能优化tips,并且随着认识的深入,本文 ...
- 零基础学习webpack打包管理
这些天在项目之余的时间学习了webpack打包项目的东西,非常荣幸的找到一些大神的文章来学习,死劲嚼了几天,终于略知一二.在以后的工作上还需继续学习,下面我将分享我这几天学到的一点东西,希望能让我一个 ...
- 程序员的自我救赎---11.1:RPC接口使用规范
<前言> (一) Winner2.0 框架基础分析 (二)PLSQL报表系统 (三)SSO单点登录 (四) 短信中心与消息中心 (五)钱包系统 (六)GPU支付中心 (七)权限系统 (八) ...
- css scroll bug
滚动区域不能设置overflow var doc = $(document), win = $(window), h = $("#head"), b = $("#body ...
- C#实现冲顶大会辅助工具 (截图+图像识别+搜索)
前两天在博客园看到 .NET开发一个微信跳一跳辅助程序, 原来可以通过C#连接手机操作.正好朋友圈有人分享"冲顶大会".冲顶大会是一个在线答题APP.每次12道题,每道题有10秒钟 ...
- 二维码utils希望对大家有帮助
package cn.itcast.utils; import java.io.File; import java.nio.file.Path; import java.util.HashMap; ...
- 转:java 可设置最大内存
测试方法:在命令行下用 java -XmxXXXXM -version ,比如:java -Xmx1024M -version命令来进行测试,然后逐渐的增大XXXX的值,如果执行正常就表示指定的内存大 ...
- WebDriver的等待方式
/* * 1.线程休眠 * 2.隐式等待 * 3.显示等待 * */ package com.sfwork; import java.util.concurrent.TimeUnit; import ...