NOIP模拟赛15
NOIP2017金秋冲刺训练营杯联赛模拟大奖赛第一轮Day1
T1 天天去哪儿吃
直接枚举
#include<cstdio>
#include<algorithm>
using namespace std;
#define N 100001
int d[N<<];
bool g[N];
int main()
{
int n,m;
long long a,b;
scanf("%d%d%lld%lld",&n,&m,&a,&b);
scanf("%d%d",&d[],&d[]);
int now;
int len=n/;
for(int i=;i>=max(-len,);i--) g[d[i]]=true;
for(int i=;i<=m;i++)
{
now=(a*d[i-]+b*d[i-])%n;
while(g[now])
{
now++;
if(now==n) now=;
}
d[i]=now;
if(i-len>) g[d[i-len]]=false;
g[now]=true;
}
for(int i=;i<=m;i++) printf("%d ",d[i]);
}
T2 天天和树tree
找除去最长链之后的最长半链
3遍dfs即可
#include<cstdio>
#include<algorithm>
#define N 100001
using namespace std;
int front[N],nxt[N<<],to[N<<],tot;
int maxn,wh1,wh2;
int pre[N],d[N];
bool in[N];
void add(int u,int v)
{
to[++tot]=v; nxt[tot]=front[u]; front[u]=tot;
to[++tot]=u; nxt[tot]=front[v]; front[v]=tot;
}
void dfs1(int x,int fa,int dis)
{
if(dis>maxn) maxn=dis,wh1=x;
for(int i=front[x];i;i=nxt[i])
if(to[i]!=fa) dfs1(to[i],x,dis+);
}
void dfs2(int x,int fa,int dis)
{
pre[x]=fa;
if(dis>maxn) maxn=dis,wh2=x;
for(int i=front[x];i;i=nxt[i])
if(to[i]!=fa) dfs2(to[i],x,dis+);
}
void dfs3(int x,int fa,int dis)
{
d[x]=dis;
for(int i=front[x];i;i=nxt[i])
if(to[i]!=fa) dfs3(to[i],x,dis+);
}
int main()
{
int n;
scanf("%d",&n);
int u,v;
for(int i=;i<n;i++)
{
scanf("%d%d",&u,&v);
add(u,v);
}
dfs1(,,);
maxn=;
dfs2(wh1,wh1,);
in[wh1]=true;
for(int i=wh2;i!=pre[i];i=pre[i]) in[i]=true;
for(int i=;i<=n;i++)
if(in[i])
for(int j=front[i];j;j=nxt[j])
if(!in[to[j]]) dfs3(to[j],i,);
int ans=;
for(int i=;i<=n;i++) ans=max(ans,d[i]);
printf("%d",ans);
}
T3 摆摊
求区间的mex,主席树
防止出现0,1,,开始在1号位置加入一个无穷大
#include<cstdio>
#include<algorithm>
#define N 200011
using namespace std;
int n,m,q,tot,a[N];
int root[N],lc[],rc[],minn[];
void insert(int &x,int y,int l,int r,int pos,int w)
{
x=++tot;
minn[x]=minn[y];
lc[x]=lc[y],rc[x]=rc[y];
if(l==r)
{
minn[x]=max(minn[x],w);
return;
}
int mid=l+r>>;
if(pos<=mid) insert(lc[x],lc[y],l,mid,pos,w);
else insert(rc[x],rc[y],mid+,r,pos,w);
minn[x]=min(minn[lc[x]],minn[rc[x]]);
}
int query(int x,int l,int r,int w)
{
if(l==r) return l;
int mid=l+r>>;
if(minn[lc[x]]<w) return query(lc[x],l,mid,w);
else return query(rc[x],mid+,r,w);
}
int main()
{
scanf("%d%d%d",&n,&m,&q);
insert(root[],root[],,n+,,2e9);
for(int i=;i<=m;i++)
{
scanf("%d",&a[i]);
insert(root[i],root[i-],,n+,a[i],i);
insert(root[i],root[i],,n+,a[i]+,i);
}
int u,v,ans;
while(q--)
{
scanf("%d%d",&u,&v);
ans=query(root[v],,n+,u);
if(ans==n+) printf("-1 -1\n");
else printf("%d %d\n",ans-,ans);
}
}
NOIP模拟赛15的更多相关文章
- noip模拟赛#15
#15 T1:a[i]>=a[i/2].输出a的最大字典序 =>可以发现这是二叉树的情况那么就先预处理出每个点有多少个儿子然后递归处理就可以了. #include<cstdio> ...
- contesthunter暑假NOIP模拟赛第一场题解
contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...
- NOIP模拟赛 by hzwer
2015年10月04日NOIP模拟赛 by hzwer (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...
- CH Round #48 - Streaming #3 (NOIP模拟赛Day1)
A.数三角形 题目:http://www.contesthunter.org/contest/CH%20Round%20%2348%20-%20Streaming%20%233%20(NOIP模拟赛D ...
- 【noip模拟赛5】细菌 状压dp
[noip模拟赛5]细菌 描述 近期,农场出现了D(1<=D<=15)种细菌.John要从他的 N(1<=N<=1,000)头奶牛中尽可能多地选些产奶.但是如果选中的奶牛携 ...
- 【HHHOJ】NOIP模拟赛 玖 解题报告
点此进入比赛 得分: \(100+20+100=220\)(还不错) 排名: \(Rank\ 16\) \(Rating\):\(+20\) \(T1\):[HHHOJ263]「NOIP模拟赛 玖」三 ...
- 【HHHOJ】NOIP模拟赛 捌 解题报告
点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...
- NOIP模拟赛 6.29
2017-6-29 NOIP模拟赛 Problem 1 机器人(robot.cpp/c/pas) [题目描述] 早苗入手了最新的Gundam模型.最新款自然有着与以往不同的功能,那就是它能够自动行走, ...
- NOIP模拟赛20161022
NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...
随机推荐
- Beta周第8次Scrum会议(11/17)【王者荣耀交流协会】
一.小组信息 队名:王者荣耀交流协会 小组成员 队长:高远博 成员:王超,袁玥,任思佳,王磊,王玉玲,冉华 小组照片 今天拍照的人是王磊.因此他没有出现在照片中. 二.开会信息 时间:2017/11/ ...
- 软工实践-Alpha 冲刺 (10/10)
队名:起床一起肝活队 组长博客:博客链接 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过去两天完成了哪些任务 描述: 完成所有界面的链接,整理与测试 展示GitHub当日代码/ ...
- 404 Note Found -选题报告
目录 NABCD分析引用 N(Need,需求): A(Approach,做法): B(Benefit,好处): C(Competitors,竞争): D(Delivery,交付): 初期 中期 个人贡 ...
- 青岛 2016ICPC 区域现场赛题目
A. Relic Discovery B. Pocket Cube C. Pocky D. Lucky Coins E. Fibonacci F. Lambda Calculus G. Coding ...
- linux桌面使用鼠标中间健粘帖
使用linux桌面很久了,一直习惯鼠标左键选中,右健弹出菜单复制粘帖. 没想到linux使用鼠标中间健粘帖,很方便. 参考:Linux鼠标中键复制粘贴之谜[Felix蛋疼科普贴] 用鼠标左键单击待复制 ...
- erlang驱动使用mysql-otp
Magnus Ahltorp的Mysql Driver里面介绍emysql的缺陷: 1. 隔离不够好, 2.不能伸缩 mysql-otp使用1个进程1个mysql连接,隔离得很好.推荐使用. mysq ...
- PAT 甲级 1020 Tree Traversals
https://pintia.cn/problem-sets/994805342720868352/problems/994805485033603072 Suppose that all the k ...
- Java MD5加密类
/************************************************* md5 类实现了RSA Data Security, Inc.在提交给IETF 的RFC1321中 ...
- Django之contenttypes的应用
Django contenttypes 应用 简介 contenttypes 是Django内置的一个应用,可以追踪项目中所有app和model的对应关系,并记录在ContentType表中. 每当我 ...
- 解决Qt creator无法输入中文
详细的方法来自以下网址: http://my.oschina.net/lieefu/blog/505363?p={{currentPage+1}} 需要说明的几点: 设置qmake 的路径使用自身的路 ...