T1 队长快跑

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5,INF=0x7fffffff;
int n,a[N],b[N],ans,s[N<<1],top;
struct xds
{
int l,r,mx,laz;
}t[N*4];
void build(int p,int l,int r){
t[p].l=l;
t[p].r=r;
if(l==r)return ;
int mid=l+r>>1;
build(p<<1,l,mid);
build(p<<1|1,mid+1,r);
return ;
}
void update(int p){
t[p].mx=max(t[p<<1].mx,t[p<<1|1].mx);
return ;
}
void pushdown(int p)
{
if(t[p].laz)
{
t[p*2].mx+=t[p].laz;
t[p*2+1].mx+=t[p].laz;
t[p*2].laz+=t[p].laz;
t[p*2+1].laz+=t[p].laz;
update(p);
t[p].laz=0;
}
return;
}
void change(int p,int pos,int val)
{
if(t[p].l==pos&&t[p].r==pos)
{
t[p].mx=max(t[p].mx,val);
return;
}
pushdown(p);
int mid=(t[p].l+t[p].r)>>1;
if(pos<=mid)
change(p<<1,pos,val);
else
change(p*2+1,pos,val);
update(p);
return;
}
void add(int p,int l,int r)
{
if(t[p].l>=l&&t[p].r<=r)
{
t[p].mx++;
t[p].laz++;
return;
}
pushdown(p);
int mid=(t[p].l+t[p].r)>>1;
if(l<=mid)
add(p<<1,l,r);
if(r>mid)
add(p*2+1,l,r);
update(p);
}
int ask(int p,int l)
{
if(l==0)
return 0;
if(t[p].r<=l)
return t[p].mx;
if(t[p].laz)
pushdown(p);
int mid=(t[p].l+t[p].r)>>1;
if(l<=mid)
return ask(p<<1,l);
return
max(t[p<<1].mx,ask(p*2+1,l));
}
int find(long long x)
{
int l=1,r=top,mid;
while(1)
{
mid=(l+r)>>1;
if(s[mid]>x)
r=mid-1;
else if(s[mid]<x)
l=mid+1;
else
return mid;
}
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d%d",&a[i],&b[i]);
s[i*2-1]=a[i];s[i*2]=b[i];
}
sort(s+1,s+1+2*n);
for(int i=1;i<2*n;i++)
{
if(s[i]==s[i+1])
s[i]=INF;
}
sort(s+1,s+1+2*n);
top=2*n;
for(int i=1;i<=2*n;i++)
{
if(s[i]==INF)
{
top=i-1;
break;
}
}
for(int i=1;i<=n;i++)
{
a[i]=find(a[i]);
b[i]=find(b[i]);
}
build(1,1,top);
for(int i=n;i>=1;i--)
{
if(b[i]>=a[i])
{
int x=ask(1,a[i]-1)+1;
change(1,b[i],x);
}
else
{
add(1,b[i],a[i]-1);
int x=ask(1,b[i]-1)+1;
change(1,b[i],x);
}
}
printf("%d\n",t[1].mx);
return 0;
}

T2 影魔

#include<bits/stdc++.h>
#define lowbit(x) (x&(-x))
using namespace std;
const int N=110000,M=210000;
int n,m,cnt,val[N],dep[N],c[N],x,y,w;
vector<pair<int,int> >ask[N];
vector<int>b[N];
namespace xds
{
struct Seg
{
int son[2],dep;
}t[N*30];
int ans[N],rot[N],tot;
void plus(int x,int y)
{
for(;x<=n;x+=lowbit(x))
c[x]+=y;
return;
}
int find(int x)
{
int res=0;
for(;x;x-=lowbit(x)) res+=c[x];
return res;
}
int change(int pos,int l,int r,int dep)
{
int p=++tot;
if(l==r&&l==pos)
{
plus(dep,1);
t[p].dep=dep;
return p;
}
int mid=(l+r)>>1;
if(pos<=mid)
t[p].son[0]=change(pos,l,mid,dep);
else
t[p].son[1]=change(pos,mid+1,r,dep);
return p;
}
int merge(int p,int q,int l,int r)
{
if((!p)||(!q))
return p+q;
if(l==r)
{
plus(max(t[p].dep,t[q].dep),-1);
t[p].dep=min(t[p].dep,t[q].dep);
return p;
}
int mid=(l+r)>>1;
if(t[p].son[0]||t[q].son[0])
t[p].son[0]=merge(t[p].son[0],t[q].son[0],l,mid);
if(t[p].son[1]||t[q].son[1])
t[p].son[1]=merge(t[p].son[1],t[q].son[1],mid+1,r);
return p;
}
void dfs(int u)
{
for(int i=0;i<ask[u].size();i++)
{
ans[ask[u][i].first]-=find(min(n,dep[u]+ask[u][i].second))-find(dep[u]-1);
}
rot[u]=change(val[u],1,n,dep[u]);
for(int i=0;i<b[u].size();i++)
{
int v=b[u][i];
dep[v]=dep[u]+1;
dfs(v);
rot[u]=merge(rot[u],rot[v],1,n);
}
for(int i=0;i<ask[u].size();i++)
{
ans[ask[u][i].first]+=find(min(n,dep[u]+ask[u][i].second))-find(dep[u]-1);
}
return;
}
}
using namespace xds;
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
scanf("%d",&val[i]);
}
for(int i=2;i<=n;i++)
{
scanf("%d",&x);
b[x].push_back(i);
}
for(int i=1;i<=m;i++)
{
scanf("%d%d",&x,&w);
ask[x].push_back(make_pair(i,w));
}
dep[1]=1;
dfs(1);
for(int i=1;i<=m;i++)
printf("%d\n",ans[i]);
return 0;
}

T3 抛硬币

#include<bits/stdc++.h>
using namespace std;
const int N=3100,mod=998244353;
int l,n,sum[N],las[N],has[27];
char s[N];
long long f[N][N];
int main()
{
scanf("%s",s+1);
n=strlen(s+1);
scanf("%d",&l);
for(int i=1;i<=n;i++)
{
sum[i]=sum[i-1];
if(!has[s[i]-'a'])
{
sum[i]++;
}
las[i]=has[s[i]-'a'];
has[s[i]-'a']=i;
}
for(int i=1;i<=n;i++)
{
f[i][1]=sum[i];
}
for(int i=2;i<=n;i++)
{
for(int len=2;len<=i;len++)
{
f[i][len]=((f[i-1][len]+f[i-1][len-1]%mod-f[las[i]-1==-1?0:las[i]-1][len-1])%mod+mod)%mod;
}
}
printf("%lld\n",f[n][l]); return 0;
}

20210713考试-2021noip14的更多相关文章

  1. 20210713考试-2021noip13

    这位巨佬的博客还是比我好多了 T1 工业题 考场: 暴力挺香的,不想正解了. 题解: $f(i,j)$ 只会得到 $f(i-1,j)$ 和 $f(i,j-1)$ 的贡献.每向右一步乘 $a$ ,向下一 ...

  2. 全网独家MongoDB Certified DBA Associate考试认证视频

    该视频意在让所有学员一次通过考试,避免重复考试而承担的巨额考试费用! 目前MongDB发展迅猛,有赶超mysql,和oracle看齐的苗头.在这个时候MongoDB也适时的推出了官方的认证考试&quo ...

  3. 记lrd的高二上学期第五次调研考试

    河北某某中学的调研考试其实是很好玩的经历呢.可惜没有太多机会了. 背景: NOIP2016回来之后没有好好学文化课-.自习能翘就翘了,衡中特产学案自助没有好好写(说来我好像从来没被老师查到过,上课写学 ...

  4. 1009: [HNOI2008]GT考试

    1009: [HNOI2008]GT考试 Time Limit: 1 Sec Memory Limit: 162 MB Description 阿申准备报名参加GT考试,准考证号为N位数\(X_1X_ ...

  5. mysql练习题-查询同时参加计算机和英语考试的学生的信息-遁地龙卷风

    (-1)写在前面 文章参考http://blog.sina.com.cn/willcaty. 针对其中的一道练习题想出两种其他的答案,希望网友给出更多回答. (0) 基础数据 student表 +-- ...

  6. js封装用户选项传递给Servlet之考试系统二

    <%@ page language="java" import="java.util.*" contentType="text/html; ch ...

  7. js动态生成选项之考试系统(一)

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...

  8. 分享一个LiteDB做的简单考试系统辅助工具

    凌晨,被安排在公司值班,因为台风“灿鸿”即将登陆,风力太大,办公楼,车间等重要部分需要关注.所以无聊,那就分享一下,今天给朋友临时做的一个小的考试系统辅助工具吧.其实非常小,需求也很简单,但是可以根据 ...

  9. CCF考试

    第八次CCF考试记录 代码还不知道对不对,过两天出成绩. 成绩出来了,310分. 100+100+100+10+0: 考试13:27开始,17:30结束,提交第4题后不再答题,只是检查前四题的代码 第 ...

随机推荐

  1. GitHub秘钥(SSH Key)

    一.公钥的作用 公钥一般给服务器,别人权限中加入我给的公钥,当我们从远地仓库中下载项目(git clone xxx)的时 那个服务器通过他的绑定的公钥来匹配我的私钥,如果匹配,则就可以正常下载,如果不 ...

  2. noip模拟测试21

    考试总结:这次考试,前两道题的题面描述不是很清楚,导致我不知道输出格式到底是什么,挂了差不多80分(好多人也是这样),总体来说,这次考试的前两道题暴力分是打满了,最后一道题打了一个假的暴搜,在考场上没 ...

  3. AT指令集及其通信测试方式

    1 前言 AT即Attention,AT指令集是从终端设备(Terminal Equipment,TE)向终端适配器(Terminal Adapter, TA)发送的.通过TA,TE发送AT指令来控制 ...

  4. shell的图形排列

    目录 一.矩形 二.直角三角形 三.倒直角三角形 四.靠右的直角三角形 五.等腰三角形 六.平行四边形 七.等腰梯形 八.菱形 九.可变动菱形 一.矩形 二.直角三角形 三.倒直角三角形 四.靠右的直 ...

  5. Vue实现多文件上传功能(前端 + 后端代码)

    本人业余前端开发,因为公司(很坑)觉得我很牛逼,所以让我前后端一起玩,无奈的我只能磕磕碰碰的研究起了vue. 开发项目的时候,用到文件上传的功能很常见,包括单文件上传和多文件上传,上传各种类型的文件. ...

  6. 案例分享:Qt政务标签设计器,标签排版软件定制与打印

    需求   1.标签设计器:  2.具备文字排版功能:  3.支持六种排版格式:  4.排版后可以输出打印(demo中不包含):  5.排版后可以输出标签的指定协议文本FBD格式:  6.可以调整对应标 ...

  7. MySQL-18-MHA+Atlas读写分离架构

    Atlas介绍 Atlas是由Qihoo 360 Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目 它是在mysql-proxy 0.8.2版本的基础上,对其进行了优化,增加了 ...

  8. Kali 2.0 安装教程

    本文适合KALI初学者,将详细介绍Kali Linux 2.0的安装过程. 首先我们到KALI的官网下载镜像,大家可以自己选择下载32或64位的KALI 2.0系统. KALI 官网:https:// ...

  9. 【C语言】浮点型在内存中的存储

    1. 摘要 在了解到C语言中整型是以二进制补码形式存储在内存中后,我们不禁很好奇:那么浮点型的数据是以什么形式存储在内存中的呢? 实际上,早在1985年,电气电子工程师学会就制定了IEEE 754标准 ...

  10. Java入门姿势【面向对象3】构造方法及其重载_方法的调用

    上次我为大家写出啦"定义类与创建对象_了解局部变量",上篇文章代码可能较多,如没有了解透彻的话请打开下方文章在进行观看一下哦!! [Java入门姿势[面向对象2]定义类与创建对象_ ...