9.5 模拟试题

T1           #6090. 「Codeforces Round #418」尘封思绪

题目描述

理由さえも 忘れてた 淚で
哭泣的理由早已遗忘,泪水却依旧不止
凍りついた 想い出は 綺麗で
回忆早已冻结,但仍然美丽

给定两个整数序列 aaa 和 bbb,其中 bbb 的长度等于 aaa 中 000 出现的次数。另外,任意一个非零元素在 aaa 与 bbb 中出现次数总和不超过 111。

判断是否可以将 aaa 中为零的元素与 bbb 中的元素一一对应并替换,使得得到的序列 a′a‘a?′?? 不是一个递增序列。序列 a′a‘a?′?? 是递增序列当且仅当 ai′<ai+1′a‘_i < a‘_{i+1}a?i?′??<a?i+1?′?? 对所有有意义的 iii 成立。

输入格式

输入的第一行包含两个空格分隔的正整数 nnn、kkk —— 分别为序列 aaa 与 bbb 的长度。

第二行包含 nnn 个空格分隔的整数 a1,a2,…,ana_1, a_2, \ldots, a_na?1??,a?2??,…,a?n?? —— 包含恰好 kkk 个 000 的序列 aaa。

第三行包含 kkk 个空格分隔的整数 b1,b2,…,bkb_1, b_2, \ldots, b_kb?1??,b?2??,…,b?k?? —— 用以替换 aaa 中为零元素的序列 bbb。

输入保证任意一个非零元素在 aaa 与 bbb 中出现次数总和不超过 111。

输出格式

如果可以将 aaa 中等于零的元素与 bbb 中的元素一一对应并替换,使得得到的序列 a′a‘a?′?? 不是一个递增序列,输出 Yes;否则输出 No

样例

样例输入 1

4 2
11 0 0 14
5 4

样例输出 1

Yes

样例解释 1

在样例 1 中,通过将两个 000 以任意方式替换,得到的序列 11,5,4,1411, 5, 4, 1411,5,4,14 和 11,4,5,1411, 4, 5, 1411,4,5,14 都不是递增序列,因此答案为 Yes

样例输入 2

6 1
2 3 0 8 9 10
5

样例输出 2

No

样例解释 2

在样例 2 中,惟一能得到的序列 2,3,5,8,9,102, 3, 5, 8, 9, 102,3,5,8,9,10 是递增序列,因此答案为 No

样例输入 3

4 1
8 94 0 4
89

样例输出 3

Yes

样例输入 4

7 7
0 0 0 0 0 0 0
1 2 3 4 5 6 7

样例输出 4

Yes

数据范围与提示

2≤n≤1002 \leq n \leq 1002≤n≤100,1≤k≤n1 \leq k \leq n1≤k≤n
0≤ai≤2000 \leq a_i \leq 2000≤a?i??≤200
1≤bi≤2001 \leq b_i \leq 2001≤b?i??≤200

もう一度 もう二度と 云えない言葉は
一次也好,两次也罢,将说不出口的话语
幼いまま 優しいまま 悴んだ記憶
以最初的状态、以最温柔的状态,存入冻结了的记忆
                  ——「木枯らしセンティメント」

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#define N 1100
using namespace std;
int read()
{
    int x=0,f=1; char ch=getchar();
    while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘)f=-1; ch=getchar();}
    while(ch>=‘0‘&&ch<=‘9‘){x=x*10+ch-‘0‘; ch=getchar();}
    return x*f;
}
int main()
{
    bool flag=false;
    int n,m,a[N],b[N],c[N];
    n=read(),m=read();
    for(int i=1;i<=n;i++)
     a[i]=read(),c[i]=a[i];
    for(int i=1;i<=m;i++)
     b[i]=read();
    if(m>1) printf("Yes\n");
    else
    {
        for(int i=1;i<=n;i++)
         if(a[i]==0) a[i]=c[i]=b[1];
        sort(c+1,c+1+n);
        for(int i=1;i<=n;i++)
         if(a[i]!=c[i]) {flag=true; break;}
        if(flag) printf("Yes\n");
        else printf("No\n");
    }
    return 0;
}

T2         #6091. 「Codeforces Round #418」幻想特快

题目描述

もうそうがね ぼうそうする
妄想变得天马行空
ちょうとっきゅうに とびのって いま あいにいきたいの
乘上超特快列车,现在就想去见你

有一个 111 至 nnn 的所有整数形成的排列 p1,p2,…,pnp_1, p_2, \ldots, p_np?1??,p?2??,…,p?n??。

有两个长度为 nnn 的数组 a1,a2,…,ana_1, a_2, \ldots, a_na?1??,a?2??,…,a?n?? 和 b1,b2,…,bnb_1, b_2, \ldots, b_nb?1??,b?2??,…,b?n??。它们分别有恰好 n−1n - 1n−1 个位置上的元素与 ppp 相同,即存在恰好一个 iii(1≤i≤n1 \leq i \leq n1≤i≤n)使得 ai≠pia_i \neq p_ia?i??≠p?i??,存在恰好一个 jjj(1≤j≤n1 \leq j \leq n1≤j≤n)使得 bj≠pjb_j \neq p_jb?j??≠p?j??。另外,aaa 与 bbb 不相同,即存在至少一个 iii(1≤i≤n1 \leq i \leq n1≤i≤n)使得 ai≠bia_i \neq b_ia?i??≠b?i??。

请给出任意一个满足条件的排列 ppp。输入保证这样的排列存在。

输入格式

输入的第一行包含一个正整数 nnn —— ppp、aaa 和 bbb 共同的长度。

输入的第二行包含 nnn 个正整数 a1,a2,…,ana_1, a_2, \ldots, a_na?1??,a?2??,…,a?n?? —— 第一个数组的元素。

输入的第三行包含 nnn 个正整数 b1,b2,…,bnb_1, b_2, \ldots, b_nb?1??,b?2??,…,b?n?? —— 第二个数组的元素。存在至少一个 iii(1≤i≤n1 \leq i \leq n1≤i≤n)使得 ai≠bia_i \neq b_ia?i??≠b?i?? 成立。

输出格式

输出一行,包含 nnn 个空格隔开的整数 p1,p2,…,pnp_1, p_2, \ldots, p_np?1??,p?2??,…,p?n??,表示一个满足条件的排列。如果有多解,输出任意一组即可。输入保证合法的排列存在。

样例

样例输入 1

5
1 2 3 4 3
1 2 5 4 5

样例输出 1

1 2 5 4 3

样例解释 1

1,2,5,4,31, 2, 5, 4, 31,2,5,4,3 和 1,2,3,4,51, 2, 3, 4, 51,2,3,4,5 都是样例 1 的正确输出。

样例输入 2

5
4 4 2 3 1
5 4 5 3 1

样例输出 2

5 4 2 3 1

样例解释 2

5,4,2,3,15, 4, 2, 3, 15,4,2,3,1 是样例 2 的惟一解。

样例输入 3

4
1 1 3 4
1 4 3 4

样例输出 3

1 2 3 4

数据范围与提示

2≤n≤10002 \leq n \leq 1\,0002≤n≤1000
1≤ai≤n1 \leq a_i \leq n1≤a?i??≤n,1≤bi≤n1 \leq b_i \leq n1≤b?i??≤n

なにもしらない めをとじて
闭上眼睛,什么也不知道
かわいいままで ほしにねがった
保持可爱的样子,向着星星许下愿望
            ——「もうそう?えくすぷれす」

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 2100
using namespace std;
bool vis[N],flag;
int n,s,a[N],b[N],c[N],d[3],x[3],y[3];
int read()
{
    int x=0,f=1; char ch=getchar();
    while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘)f=-1; ch=getchar();}
    while(ch>=‘0‘&&ch<=‘9‘){x=x*10+ch-‘0‘; ch=getchar();}
    return x*f;
}
int main()
{
    n=read();
    for(int i=1;i<=n;i++) a[i]=read();
    for(int i=1;i<=n;i++) b[i]=read();
    for(int i=1;i<=n;i++)
     if(a[i]==b[i]) c[i]=a[i],vis[c[i]]=true;
     else x[++s]=a[i],y[s]=b[i],d[s]=i;
    if(s==2)
    {
         if(!vis[x[1]])
         {
             vis[x[1]]=true;//c[d[1]]=x[1],
             if(!vis[x[2]]||!vis[y[2]]) c[d[1]]=x[1],flag=true;
             else vis[x[1]]=false;
         }
         if(!vis[y[1]]&&!flag) vis[y[1]]=true,c[d[1]]=y[1];
         if(!vis[x[2]]) c[d[2]]=x[2]; else c[d[2]]=y[2];
    }
    else
     for(int i=1;i<=n;i++)
      if(i!=x[1]&&i!=y[1]&&!vis[i]) {c[d[1]]=i; break;}
    for(int i=1;i<=n;i++)
     printf("%d ",c[i]);
    return 0;
}

AC

T3             #6092. 「Codeforces Round #418」恋爱循环

题目描述

セーノ
预备、起

字符串 sss 对于字符 ccc 的权值,定义为 sss 中仅由 ccc 组成的最长连续子串的长度。例如,对于 s=kooomio,其由字符 o 组成的最长连续子串为 ooo,因此它对于字符 o 的权值为 333。

给定由小写字母组成的字符串 sss 以及 qqq 个询问。每个询问形如 (mi,ci)(m_i, c_i)(m?i??,c?i??),表示「求出在 sss 中至多更改 mim_im?i?? 个位置的字符后所得的字符串 s′s‘s?′?? 对于字符 cic_ic?i?? 的最大权值」。

输入格式

输入的第一行包含一个正整数 nnn —— 字符串 sss 的长度。

第二行包含 nnn 个小写英文字母组成的字符串 s1s2…sns_{1} s_2 \ldots s_ns?1??s?2??…s?n?? —— 给定的初始字符串。

第三行包含一个正整数 qqq —— 询问的数目。

接下来 qqq 行,每行包含一个正整数 mim_im?i?? —— 至多在 sss 中更改的字符数目,和以一个空格分隔的小写字母 mim_im?i?? —— 计算权值时使用的字符。

输出格式

输出 qqq 行:对于每个询问输出一行,包含一个整数 —— 进行更改后所得字符串 s′s‘s?′?? 的最大权值。

样例

样例输入 1

6
koyomi
3
1 o
4 o
4 m

样例输出 1

3
6
5

样例解释 1

在样例 1 中,有三个询问:

  • 在第一个询问中,最多可以更改 sss 一个位置上的字符,将 y 所处的位置改为 o 得到 s′=kooomi,权值为 333;
  • 在第二个询问中,最多可以更改 sss 四个位置上的字符,s′=oooooo 的权值为 666;
  • 在第三个询问中,最多可以更改 sss 四个位置上的字符,s′=mmmmmi 和 s′=kmmmmm 的权值均为 555。

样例输入 2

15
yamatonadeshiko
10
1 a
2 a
3 a
4 a
5 a
1 b
2 b
3 b
4 b
5 b

样例输出 2

3
4
5
7
8
1
2
3
4
5

样例输入 3

10
aaaaaaaaaa
2
10 b
10 z

样例输出 3

10
10

数据范围与提示

1≤n≤15001 \leq n \leq 1\,5001≤n≤1500
1≤q≤2000001 \leq q \leq 200\,0001≤q≤200000
1≤mi≤n1 \leq m_i \leq n1≤m?i??≤n,cic_ic?i?? 为小写英文字母

コイスル キセツハ ヨクバリ サーキュレーション
恋爱的季节是激情洋溢的循环
コイスル キモチハ ヨクバリ サーキュレーション
恋爱的心情是激情洋溢的循环
            ——「恋愛サーキュレーション」

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 2600
using namespace std;
char ch[N];
int n,m,s,q,a[N],f[N][N];
int read()
{
    int x=0,f=1; char ch=getchar();
    while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘)f=-1; ch=getchar();}
    while(ch>=‘0‘&&ch<=‘9‘){x=x*10+ch-‘0‘; ch=getchar();}
    return x*f;
}
int main()
{
    n=read();scanf("%s",ch);
    for(int i=0;i<=n;i++)
     for(int j=0;j<26;j++)
      f[i][j]=i;
    for(int i=0;i<=n;i++)
    {
        s=0;memset(a,0,sizeof(a));
        for(int j=i;j<=n;j++)
        {
            a[ch[j]-‘a‘]++;
            s++;
            for(int k=0;k<26;k++)
              f[s-a[k]][k]=max(f[s-a[k]][k],s);
        }
    }
    q=read();
    while(q--)
    {
        scanf("%d%s",&m,ch);
        printf("%d\n",f[m][ch[0]-‘a‘]);
    }
    return 0;
}

暴力 30

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 1000
using namespace std;
bool ch[N];
int n,m,q,s,mid,l,r,ans;
int read()
{
    int x=0,f=1; char ch=getchar();
    while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘)f=-1; ch=getchar();}
    while(ch>=‘0‘&&ch<=‘9‘){x=x*10+ch-‘0‘; ch=getchar();}
    return x*f;
}
bool erf(int mid)
{
    s=0;
    for(int i=1;i<=mid;i++)
     if(ch[i]!=ch[0]) s++;
    if(s<=m) return true;
    for(int i=1;i<=mid;i++)
    {
        for(int j=1;j<i;j++)
        {
            if(ch[j]!=ch[0]) s--;
            if(ch[j+mid]!=ch[0]) s++;
        }
        if(s<=m) return true;
    }
    return false;
}
int main()
{
    n=read(),scanf("%s",ch+1);
    q=read();
    while(q--)
    {
        scanf("%d%s",&m,ch);
        l=m,r=n;
        while(l<=r)
        {
            mid=(l+r)>>1;
            if(erf(mid)) ans=mid,l=mid+1;
            else r=mid-1;
        }
        printf("%d\n",ans);
    }
    return 0;
}

二分 27

我就纳闷了、、为什么输入字符的时候用一个数组43,用两个数组97!!
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 2100
using namespace std;
bool ch[N],c[3];
int n,m,q,mid,l,r,ans;
int read()
{
    int x=0,f=1; char ch=getchar();
    while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘)f=-1; ch=getchar();}
    while(ch>=‘0‘&&ch<=‘9‘){x=x*10+ch-‘0‘; ch=getchar();}
    return x*f;
}
bool erf(int mid)
{
    int s=0;
    for(int i=1;i<=mid;i++)
     if(ch[i]!=c[0]) s++;
    if(s<=m) return true;
    for(int i=mid+1;i<=n;i++)
    {
        if(ch[i-mid]!=c[0]) s--;
        if(ch[i]!=c[0]) s++;
        if(s<=m) return true;
    }
    return false;
}
int main()
{
    n=read(),scanf("%s",ch+1);
    q=read();
    while(q--)
    {
        scanf("%d%s",&m,c);
        ans=0,l=m,r=n;
        while(l<=r)
        {
            mid=(l+r)>>1;
            if(erf(mid)) ans=mid,l=mid+1;
            else r=mid-1;
        }
        printf("%d\n",ans);
    }
    return 0;
}

二分 97

#include <cstdio>
#include <map>

const int N(1526);
int n,f[27][N],a[N];
std::map<char,bool>ma;
char s[N];

inline void read(int &x)
{
    x=0; register char ch=getchar();
    for(;ch>‘9‘||ch<‘0‘;) ch=getchar();
    for(;ch>=‘0‘&&ch<=‘9‘;ch=getchar()) x=x*10+ch-‘0‘;
}

#define max(a,b) (a>b?a:b)
#define min(a,b) (a<b?a:b)

int l,r,mid,cnt,ans;
bool check(int num,char zm,int len)
{
    int nowlen=0,cnt=0;
    int zmth=zm-‘a‘;
    for(int i=1;i<=n-len+1;i++)
        if(f[zmth][i+len-1]-f[zmth][i-1]>=len-num) return true;
    return false;
}

int AC()
{
    read(n); scanf("%s",s+1);
    for(int i=1;i<=n;i++)
      for(int j=0;j<26;j++)
      {
        f[j][i]+=f[j][i-1];
          if(s[i]-‘a‘==j) f[j][i]++;
      }
    int q,x; read(q);
    for(char ch[2];q--;)
    {
        read(x); scanf("%s",ch);
        for(l=0,r=n+1;l<=r;)
        {
            mid=l+r>>1;
            if(check(x,ch[0],mid))
            {
                ans=mid;
                l=mid+1;
            }
            else r=mid-1;
        }
        printf("%d\n",ans);
    }
    return 0;
}

int Hope=AC();
int main(){;}

扒的某位大佬的ac代码

时间: 2024-10-12 05:36:34

9.5 模拟试题的相关文章

模拟试题B

模拟试题B 一.单项选择题(2′*8 =16′) 1.灰度等级为256级,分辨率为2048*1024的显示器,至少需要的帧缓存容量为( ) A)512KB B)1MB C)2MB D)3MB 2.在多形边面片的数量非常大的情况下,哪一个消隐算法速度最快? ( ) A)深度缓存算法(Z-Buffer) B)光线跟踪算法 C)画家算法 D)不确定 3.双线性光强插值法(Gouraud Shading)存在哪些问题?( ) A)光照强度在数值上不连续 B)生成多面体真实感图形效果差 C)生成曲面体真实

模拟试题C

模拟试题C 一.单项选择题(2′*14 =28′) 1.双线性法向插值法(Phong Shading)的优点是( ) A)法向计算精确 B)高光域准确 C)对光源和视点没有限制 D)速度较快 2.用编码裁剪法裁剪二维线段时,判断下列直线段采用哪种处理方法.假设直线段两个端点M.N的编码为1000和1001(按TBRL顺序)( ) A)直接舍弃 B)直接保留 C)对MN再分割求交 D)不能判断 3.下面哪个不是齐次坐标的特点( ) A)用n+1维向量表示一个n维向量 B)将图形的变换统一为图形的坐

计算机职称考试题库Internet模块操作练习模拟试题(一)

1.请为当前计算机添加连接到com1口的标准56000 bps调制解调器设备,要求不检测当前连接设备. 当前界面:开始à控制面板 方法一: 打开[电话和调整解调器选项]à[调整解调器]选项卡à[添加]按钮à选中[不要检测我的调制解调器设备……]à下一步à型号:标准 56000 bps 调制解调器à下一步à选定的端口:com1à下一步à完成 方法二: 添加新硬件à下一步à选择[是,我已经连接了此硬件]à下一步à列表拉到最后选择[添加新的硬件设备]à下一步à选择[安装我手动从列表选择的硬件(高级)]

2014年软考-信息技术处理员-模拟试题及答案【第一章】

51CTO学院,在软考备考季特别整理了"2014年软考信息技术处理员模拟试题及答案[汇总篇]",帮助各位学院顺利过关!更多软件水平考试辅导及试题,请关注51CTO学院-软考分类吧! 查看汇总:2014年软考-信息技术处理员-模拟试题及答案[汇总篇]  ●在计算机内部用来传送.存储.加工处理的数据或指令都是以____(1)_B___形式进行的. A. 十进制码 B.二进制码 C.八进制码 D.十六进制码 ●如果一个存储单元能存放一个字节,那么一个32KB的存储器共有____(2)_B__

2014年软考-信息技术处理员-模拟试题及答案【第二章】

51CTO学院,在软考备考季特别整理了"2014年软考信息技术处理员模拟试题及答案[汇总篇]",帮助各位学院顺利过关!更多软件水平考试辅导及试题,请关注51CTO学院-软考分类吧! 查看汇总:2014年软考-信息技术处理员-模拟试题及答案[汇总篇]  ●计算机网络的主要目标是实现____(16 )__C__. A.数据处理 B.文献检索 C.资源共享和信息传输 D.信息传输 ●Internet上,访问Web网站时用的工具是浏览器.下列____(17 )_A___就是目前常用的Web浏览

2014年软考-信息技术处理员-模拟试题及答案【第三章】

51CTO学院,在软考备考季特别整理了"2014年软考信息技术处理员模拟试题及答案[汇总篇]",帮助各位学院顺利过关!更多软件水平考试辅导及试题,请关注51CTO学院-软考分类吧! 查看汇总:2014年软考-信息技术处理员-模拟试题及答案[汇总篇]  ●备注视图中的注释信息在文稿演示时____(31)__B__. A.会显示 B.不会显示 C.显示一部分 D.显示标题 ●Access 2000关系数据库是____(32)_D___的集合. A.数据 B.数据库对象 C.表 D.关系 ●

2014年软考-信息技术处理员-模拟试题及答案【第四章】

51CTO学院,在软考备考季特别整理了"2014年软考信息技术处理员模拟试题及答案[汇总篇]",帮助各位学院顺利过关!更多软件水平考试辅导及试题,请关注51CTO学院-软考分类吧! 查看汇总:2014年软考-信息技术处理员-模拟试题及答案[汇总篇]  ●Office家族为用户提供了各种不同类型的模板.扩展名为.mdz的模板是____(41)D____中的模板. A.Word B.Excel C.PowerPoint D.Access ●在Excel中,选取一行单元格的方法是____(4

2014年软考-信息技术处理员-模拟试题及答案【第五章】

51CTO学院,在软考备考季特别整理了"2014年软考信息技术处理员模拟试题及答案[汇总篇]",帮助各位学院顺利过关!更多软件水平考试辅导及试题,请关注51CTO学院-软考分类吧! 查看汇总:2014年软考-信息技术处理员-模拟试题及答案[汇总篇]  ●管理信息系统科学的3要素是系统的观点.数学的方法和____(51)A____. A.计算机的应用 B.计算机科学 C.计算机理论 D.计算机方法 ●知识产权可分为:____(52)___C_两类. A.农业产权和著作权 C.工业产权和著

2014年软考-信息技术处理员-模拟试题及答案【第六章】

51CTO学院,在软考备考季特别整理了"2014年软考信息技术处理员模拟试题及答案[汇总篇]",帮助各位学院顺利过关!更多软件水平考试辅导及试题,请关注51CTO学院-软考分类吧! 查看汇总:2014年软考-信息技术处理员-模拟试题及答案[汇总篇]  ●Access数据库的类型是____(61)_C___. A.层次数据库 B.网状数据库 C.关系数据库 D.面向对象数据库 ●在Word文档操作中,经常利用____(62)_C___操作过程相互配合,用以将一段文本内容移到另一处. A.

2014年软考-信息技术处理员-模拟试题及答案【第七章】

51CTO学院,在软考备考季特别整理了"2014年软考信息技术处理员模拟试题及答案[汇总篇]",帮助各位学院顺利过关!更多软件水平考试辅导及试题,请关注51CTO学院-软考分类吧! 查看汇总:2014年软考-信息技术处理员-模拟试题及答案[汇总篇]  ●办公自动化(OA)是计算机的一项应用,按计算机应用的分类,它属于____(1)D____. A.科学计算 B.辅助设计 C.实时控制 D.信息处理 ●下列关于软件的叙述中,错误的是____(2)A____. A.计算机软件系统由程序和相