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 ...
随机推荐
- 王者荣耀交流协会——第7次Scrum会议
照片由刘耀泽同学拍摄 ,王露芝同学(外援)没有参加本次会议. 要求2 : 时间跨度:2017年10月19日 15:05 - 15:20 共计15分钟 要求3 : 地点:计算机楼107教室 要求4 : ...
- Python 变量和常量及数据类型
一.变量的命名 变量由字母.数字和下划线组成.变量的第1个字符必须是字母或下划线. 二.变量的赋值 例: x = 1 三.局部变量 局部变量只能在函数或者代码段内使用. 四.全局变量 在函数之外定义的 ...
- 读我是一只IT小小鸟有感
进入大学半年了,每个人都说软件工程是一个非常有前途的高薪职业,但我这半年来都很迷茫,看不清自己的未来,不知道如何度过接下来的三年半时光,虽然我也认为软件工程是有前途的专业,但是经过一学期的学习,发现不 ...
- C#高级编程 (第六版) 学习 第七章:委托和事件
第七章 委托和事件 回调(callback)函数是Windows编程的一个重要方面,实际上是方法调用的指针,也称为函数指针. .Net以委托的形式实现了函数指针的概念,.Net的委托是类型安全的. 委 ...
- Spring+Netty4实现的简单通信框架
参考:http://cpjsjxy.iteye.com/blog/1587601 Spring+Netty4实现的简单通信框架,支持Socket.HTTP.WebSocket_Text.WebSock ...
- Hibernate(八)
三套查询之Criteria查询 完全面向对象的,不需要写任可查询语句. 1.查询所有的学生 //1.查询所有的学生 @Test public void test1(){ Criteria criter ...
- (十二)Jmeter之Bean Shell的使用(一)
一.什么是Bean Shell BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法; BeanShell是一种松散类型的脚本语言(这点和JS类似); BeanS ...
- UVA12585_Poker End Games
题目是这样的,每个人手中有a和b的钱数,c为a和b中间最小的一个. 每个回合,两个人胜利的概率都是0.5,胜利者从失败者手中获得c的钱数. 如果有一个人手中没钱的话,那么他就failer,游戏结束. ...
- HDU3507_Print Article
这个题目又是一个典型的dp斜率优化的题目.题意是给你n个数,你需要做的是把这个n个数分为连续的若干段,每段的权值为这段数字的和的平方加上M.求最小的总权值. 我们可以根据题意写出朴素版的dp状态转移方 ...
- 【bzoj3119】Book 数学
题目描述 一个长度为N的序列的首项为X,以后的每一项要么比前一项大A,要么比前一项小B.已知总和为M,求一组可行方案. 输入 第一行一个正整数N.第二行四个整数依次是X,A,B,M. 输出 输出一行N ...