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 ...
随机推荐
- 团队作业the end
GitHub 王德钊 李镇平 陈启昌 黄益颂 汪倍民 演示动态图:为避免现场演示翻车,各个团队需要给出项目各个功能点运行的git图. 还在肝: 分工协作:团队的成员如何分工协作的?对项目的贡献如何(用 ...
- IT小小鸟读后感言
有感 读了我是一只IT小小鸟之后, 我发现上大学得靠自己自学,确定自己的目标和方向,多去参与实验和自己多锻炼编写程序.我现在大一,还有很多时间来让自己变得更好,虽然要补考两门课程,但是还是不要失去信心 ...
- form表单元素中disabled的元素的值不会提交到服务器
1.表单元素中disabled的元素的值不会提交到服务器,后台获取的值为null <form id="myForm" action="#" method= ...
- c文法
程序→<外部声明>|<程序> 外部声明→<功能定义>|<声明> 功能定义→<声明复合语句的类型> 类型→<VOID| CHAR| IN ...
- JAVA第三次笔记
- Win2019 + Oracle18c SQLPLUS 命令行出现乱码的解决
1. Win2019 中文版 安装了 Oracle数据库, dbca 建库时选择的 的字符集是 ZHS16GBK 然后发现使用sqlplus 时有乱码的现象如图示: 2. csdn 上面有一个博客有解 ...
- php面试必知必会常见问题
1 说出常用的10个数组方法 我觉得数组比较最能体现PHP基础语法的一个数据结构了,下面给大家列一下常用的10个关于操作数组的函数 in_array(判断数组中是否有某个元素) implode(将数组 ...
- android Eclipse there no select
点mainactivity类 右键 run as 进行 配置 就可运行
- 【JavaScript】JAVA-input如何占满整个td
如果使用下面这种方式,不会出现占满效果 <tr> <td colspan="2"> <input width="90%" alig ...
- 【BZOJ3555】企鹅QQ(字符串哈希)
[BZOJ3555]企鹅QQ(字符串哈希) 题面 BZOJ 题解 把前缀哈希一下,后缀哈希一下 枚举哪个位置不选,然后检查一下相同就行了.. 为什么我的\(Hash\)老是\(WA\), 为什么\(Z ...