2021 10.26 模拟测试

技术2021 10.26 模拟测试 2021 10.26 模拟测试\(\mathrm{T1}\)
\(\mathrm{Solution}\)
我们可以记录一个\(cnt[x]\)表示到第\(i\)个操作

2021 10.26 模拟测试

\(\mathrm{T1}\)

\(\mathrm{Solution}\)

我们可以记录一个\(cnt[x]\)表示到第\(i\)个操作要让答案是\(x\)的最小操作数。

显然对于操作一等同于将\(cnt[p]\)清零,将除\(p\)以外的所有\(cnt \)

而对于操作2则是将\(cnt[q]\)更新为\(\min(cnt[p],cnt[q])\),而\(cnt[p] \)

但这样做是\(O(n^2)\)的,所以只需要把操作一的区间加法优化为O(1)即可

#包括ebit/stdc .h

#首先定义船方不负担装货费用

#定义硒秒

#在已读()中定义

使用命名空间标准;

内联int read()

{

int data=0,w=1;char ch=getchar();

while((ch'0'||ch'9')ch!='-')ch=getchar();

if(ch=='-') w=-1,ch=getchar();

while(ch=' 0 ' ch=' 9 ')data=(data 3)(data 1)ch-' 0 ',ch=getchar();

返回数据* w;

}

内联无效写入(int x)

{

if(x0) putchar('-'),x=-x;

if(x9)写(x/10);

putchar(x 48);

}

const int N=1e 7 5;

int n,lzy

int cnt[N],懒惰[N];

int main()

{

//freopen('order.in ',' r ',stdin);

//freopen('order.out ',' w ',stdout);

n=in

memset(cnt,-1,sizeof(CNT));

CNT[1]=0;

for(int I=1;I=n;(一)

{

int op=in

if(op==1)

{

lzy

//for(int I=1;I=n;(一)

//if(~ CNT[I])CNT[I];

int p=in

CNT[p]=0;懒惰[p]=lzy;

}

if(op==2)

{

int p=in,q=in

if(~ CNT[p]((CNT[q]lzy-lazy[q])(CNT[p]lzy-lazy[p])| | CNT[q]===-1))

cnt[q]=cnt[p],lazy[q]=lazy[p];

if(~ CNT[p])CNT[p];

}

//cout 1 ' \ n ';

//cout CNT[2]' \ n ';

}

for(int I=1;I=n;i ) //write(cnt[i]),放char(');

写(~ CNT[I]CNT[I]lzy-lazy[I]:-1),放char(');

}

/*

5

2 1 4

1 3

2 3 5

1 2

1 5

*/

\(\mathrm{T2}\)

\(\mathrm{Solution}\)

对于暴力枚举点是\(O(n^2)\)的,但是发现每一个点对答案的贡献只有自己的度数减去与其他点的连的边的个数,而度数最多只有\(\sqrt{m}\)个,所以如果我们先不考虑重边而去枚举度数的话效率是\(O(m)\)的,最后在枚举点去把重复的点删掉即可

效率\(O(n)m \)

为什么最多只有\(\sqrt{m}\)个呢,因为对于所有点来说度数之和为\(2m\),而最坏情况就是\(1 2 …… k=2m\),解得\(k\)约等于\(\sqrt{m}\)

#包括ebit/stdc .h

#首先定义船方不负担装货费用

#定义硒秒

#定义pii pairint,int

#定义国会议员制作对

#定义整数长

#在已读()中定义

使用命名空间标准;

内联int read()

{

int data=0,w=1;char ch=getchar();

while((ch'0'||ch'9')ch!='-')ch=getchar();

if(ch=='-') w=-1,ch=getchar();

while(ch=' 0 ' ch=' 9 ')data=(data 3)(data 1)ch-' 0 ',ch=getchar();

返回数据* w;

}

内联无效写入(int x)

{

if(x0) putchar('-'),x=-x;

if(x9)写(x/10);

putchar(x 48);

}

const int N=1e 6 5;

int n,m,Q,rd[N],t[N];

int a[N1];

向量[N];

vectorpiic

签名main()

{

n=in,m=in

for(int i=1,u,v;I=m;(一)

{

u=in,v=in

e[u].push _ back(v);

if(u!=v) e[v].push _ back(u);

}

for(int I=1;I=n;i ) t[rd[i]=e[i].size()];

for(int I=0;I=m;i ) if(t[i]0) c.push_back(mp(i,t[I]);

for(int I=0;IC。size();(一)

for(int j=I;JC。size();j)

if(i==j) a[c[i].fi c[i].fi]=(c[i].se*(c[i]).se-1))1;

否则a[c[I]].金融情报中心.fi]=c[i].se*c[j].se;

for(int u=1;u=n;u)

{

静态int CNT[N];

for(int v:e[u])

if(vu)CNT[v];

for(int v:e[u])

if(cnt[v])

{

a[rd[u]rd[v]]-;

a[rd[u]rd[v]-CNT[v]];

CNT[v]=0;

}

}

for(int I=m1;~我;-I)a[I]=a[I 1];

Q=in

而(Q -)写(a[in 1]),puts(');

}

\(\mathrm{T3}\)

\(\mathrm{Solution}\)

设\(dp[i][mov]\)表示考虑第\(i\)个到第\(n\)个操作,能有至少一次到当前位置\(mov\)的概率

转移即

\[DP[I][mov]=p \乘以dp[i 1][mov]

\]\[DP[I][mov a[I]]=(1-p)\乘以dp[i 1][mov]

\]\[dp[i][0]=1

\]最后\(dp[1][i]\)就是答案

#包括ebit/stdc .h

#在已读()中定义

使用命名空间标准;

内联int read()

{

int data=0,w=1;char ch=getchar();

while(ch!='-'(ch ' 0 ' | | ch ' 9 ')ch=getchar();

if(ch=='-') w=-1,ch=getchar();

while(ch=' 0 ' ch=' 9 ')data=(data 3)(data 1)ch-' 0 ',ch=getchar();

返回数据* w;

}

内联无效写入(int x)

{

if(x0) putchar('-'),x=-x;

if(x9)写(x/10);

putchar(x"0”);

}

const int mod=998244353

const int N=5e 3 5;

const int _ 100=828542813

整数N,p,a[N];

N1;

内联int add(int a,int B){ return a B=moda B- mod : a B;}

inline int mul(int a,int b){ return(1ll * a * b)% mod;}

inline int dec(int a,int b){ return a-b0a-b mod : a-b;}

void solve()

{

f[n ^ 1][n]=1;int l=0,r=0;

for(int I=n;我;我)

{

a[I]==1r : l;

for(int j=N-l;j=N r;j)

{

f[i][j]=add(f[i][j],mul(p,f[I 1][j]);

f[i][j a[i]]=add(f[i][j a[i]],mul(dec(1,p),f[I 1][j]);

}

f[I][N]=1;

}

for(int I=N-N;i=N n(一)

write(f[1][i]),puts(');

}

int main()

{

n=in,p=mul(in,_ 100);

for(int I=1;I=n;I)a[I]=in;

puts(' 0 ');solve();

}

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/51629.html

(0)

相关推荐

  • csgo国服下载,怎么区分csgo国服和国际服

    技术csgo国服下载,怎么区分csgo国服和国际服1、首先,我们需要在计算机上找到steam的引导端,然后单击打开它csgo国服下载。2、复制后,我们需要输入之前已经在STEAM购买过CSGO的游戏账号。3、进入到STE

    生活 2021年10月28日
  • 美国服务器:为什么跨境电商建站首选美国服务器

    技术美国服务器:为什么跨境电商建站首选美国服务器如果您拥有一个跨境电商独立网站,而且收益还不错,那么您的网站每时每刻都有离线的风险,如果机房的抗攻击和抗流量的能力不够强而导致网站崩溃的话,会让您付出严重的代价。对于这些网

    礼包 2021年10月19日
  • JavaWeb中Tomcat和其他WEB容器的区别有哪些

    技术JavaWeb中Tomcat和其他WEB容器的区别有哪些这篇文章主要介绍JavaWeb中Tomcat和其他WEB容器的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!主要介绍下tomc

    攻略 2021年12月11日
  • ios性能优化与调试(ios 性能优化和内存优化)

    技术iOS如何实现图形性能优化这篇文章将为大家详细讲解有关iOS如何实现图形性能优化,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。引言当一个产品渐渐成熟,我们便开始重视产品性能的优化。

    攻略 2021年12月24日
  • 栩栩如生和惟妙惟肖的区别,惟妙惟肖这个成语是对的嘛

    技术栩栩如生和惟妙惟肖的区别,惟妙惟肖这个成语是对的嘛一、与惟妙惟肖意思相近的成语栩栩如生和惟妙惟肖的区别:栩栩如生 1、成语读音:xǔ xǔ rú shēng 2、释义:形容画作、雕塑中的艺术形象等生动逼真,就像活的一

    生活 2021年10月23日
  • 人有多少块肌肉,人最坚硬的肌肉是哪块啊`?

    技术人有多少块肌肉,人最坚硬的肌肉是哪块啊`?人体共约639块肌肉,我们生活中的一切动作,都是在神经系统的调控下,由肌肉的收缩和舒张带动骨人有多少块肌肉、关节运动而实现的。现在,摸摸你的身体,你觉得哪块肌肉最强壮?舌头、

    生活 2021年10月27日