模拟题【Week15实验】

2023-05-16

A题

题意:
Q 老师有 N 个学生,每个学生都有各自独立的编号,且编号范围在 1 ~ N 之间。

这一天,所有学生都在不同的时间进入教室。

Q 老师记录了当编号为 i 的学生进入教室时,教室中共有 Ai 个学生(包括编号为 i 的学生)。

现要求根据这些记录,给出学生进入教室的顺序。

Constrains:

1 ≤ N ≤ 1e5
1 ≤ Ai ≤ N,Ai 各不相同

所有数字均为整数

Input:
N
A1 A2 … AN

Output:
根据学生进入教室的顺序输出学生的编号.

Sample Input&Output

  1. 3
    2 3 1
    3 1 2
  2. 5
    1 2 3 4 5
    1 2 3 4 5
  3. 8
    8 2 7 3 4 5 6 1
    8 2 4 5 6 7 3 1

**思路:**使用了一个结构person来表示人的序号以及进来的时候教室里有多少人。并且声明了一个p[1000005]的数组来储存进来的同学。将p重新排序,根据此同学进来的时候教室里有的同学个数升序排序,然后在遍历数组输出同学的序号即可。

代码:

#include <iostream>
#include <cstring>
#include<algorithm>
using namespace std;
int n;
struct person
{
	int i;
	int Ai;
}p[100005];

bool cmp(person&p1,person&p2)
{
	return p1.Ai<p2.Ai;
}

int main()
{
	cin>>n;
	for(int j=1;j<=n;j++)
	{
		p[j].i=j;
		cin>>p[j].Ai;
	}
	sort(p+1,p+1+n,cmp);
	for(int j=1;j<=n;j++)
	{
		cout<<p[j].i<<" ";
	}
 } 

B题

题意:
众所周知,ZJM 住在 B 站。

这一天 Q 老师来找 ZJM 玩,ZJM 决定向 Q 老师展现一下自己快速看番的本领。

ZJM 让 Q 老师任意挑选了一部番,Q老师一眼看中了《辉夜大小姐想让我告白》,已知这部番一共有 N 个精彩片段,每个精彩片段用 [L[i], R[i]] 来表示。

ZJM 从第一分钟开始看,每次可以按下快进键,快进 X 分钟,问 ZJM 最快需要多久可以看完这部番。

Input:
第一行给出两个整数 N、X(1 ≤ N ≤ 50, 1 ≤ X ≤ 1e5)

接下来 N 行,每行给出两个整数,L[i]、R[i](1 ≤ L[i] ≤ R[i] ≤ 1e5)

数据保证,R[i-1] < L[i]
Ouput:
输出一个整数,表示 ZJM 最快看完这部番的时间。

Examples:

Input

2 3
5 6
10 12

Output

6

Input

1 1
1 100000

Output

100000

Note:
在第一个样例中,ZJM 从第 1 分钟开始看,由于 [1, 3] 区间内没有精彩片段,因此 ZJM 快进到了第 4 分钟。

观看完 [4, 6] 区间的内容后,时间来到了第 7 分钟,由于 [7, 9] 区间内没有精彩片段,因此 ZJM 快进到了第 10 分钟,观看完 [10, 12] 区间的内容后,看番结束。

一共耗时 3 + 3 = 6 分钟。

思路: 和之前那个猫猫又要睡觉又要看番的那个题稍微有点类似。

代码:

#include <iostream>
#include <cstring>
#include<algorithm>
using namespace std;
int n,x;
struct Time
{
	int l;
	int r;
}tm[55];


int main()
{
	cin>>n>>x;
	for(int i=1;i<=n;i++)
	{
		cin>>tm[i].l>>tm[i].r;
	}
	int j=1,now=1;
	int ans=0;
	while(now<=tm[n].r)
	{
		if(now+x<=tm[j].l)
		{
			now=now+x;
			//cout<<now<<endl;
		}
		else
		{
			//cout<<ans<<endl;
			ans=ans+tm[j].r-now+1;
			now=tm[j].r+1;
			j++;
			//cout<<ans<<endl;
		}
	}
	cout<<ans<<endl;
}

C题

题意:
TT 的神秘任务系列。

这一次,TT 得到了一个长度为 N 的字符串,任务要求在原字符串中至多删去一个字符,使得字符串的字典序尽可能小。

字符串字典序的比较优先级如下:

1.从左往右第一个不同字符的 ASCII 值的大小关系

2.字符串长度

Input:
第一行给出 N(2 ≤ N ≤ 2e5)。

第二行给出一个长度为 N,且仅包含小写字母的字符串.

Output:
输出字典序最小的字符串。

Examples:

Input

3
aaa

Output

aa

Input

5
abcda

Output

abca

思路: 删掉第一个字符比比它后面的字符大的这个元素,或者如果全部都一样则删掉字符串最后一个。

总结: 这道题其实栽坑里去了,我把删掉第一比后面大的元素变为删掉字符串中最大的那个字符。为什么删掉最大的字符不对呢?因为最大的那个字符不一定是第一个比后面的大字符所以不对。
这道模拟题其实挺简单的,但是理解错题意了。失策失策。

代码:

#include <iostream>
#include <cstring>
#include<algorithm>
using namespace std;
const int maxp=2*1e5+5;
int n;
char s[maxp]; 
int main()
{
	cin>>n;
	int maxc=0,rand=0;
	char c;
	for(int i=1;i<=n;i++)
	{
		cin>>s[i];
	}
	for(int i=1;i<=n;i++)
	{
		if(s[i]>s[i+1])
		{
			rand=i;
			maxc=s[i]-'a';
			break;
		}
		else 
			continue;
	}
	if(maxc==0)//如果从头到尾都一样 
	{
		for(int i=1;i<=n-1;i++)
			cout<<s[i];
		cout<<endl; 
	}
	else
	{
		for(int i=1;i<=n;i++)
		{
			if(i==rand)
				continue;
			else
				cout<<s[i];
		}
		cout<<endl;
	}
}

D题

题意:
瑞瑞最近迷上了字符串,因此决定出一个字符串的题。

给定两个正整数 N、K,考虑所有由 N - 2 个 a 和 2 个 b 组成的字符串,要求输出其中字典序第 K 小的。

例如当 N = 5 时,共有如下 10 种组成方式:

    aaabb
    aabab
    aabba
    abaab
    ababa
    abbaa
    baaab
    baaba
    babaa
    bbaaa

Input:
多组数据,第一行给定 T,表示数据组数。(1 ≤ T ≤ 1e4)

对于每组数据,给出两个正整数 N、K。(3 ≤ N ≤ 1e5, 1 ≤ K ≤ min(2e9, N * (N-1) / 2 ))

N 的总和不会超过 1e5.

Output:
对于每组数据,输出长度为 N 的字典序第 K 小的字符串。

Examples:

Input

7
5 1
5 2
5 8
5 10
3 1
3 2
20 100

Output

aaabb
aabab
baaba
bbaaa
abb
bab
aaaaabaaaaabaaaaaaaa

思路:
在这里插入图片描述

**总结:**记得要初始化字符串,我的天,我在这里栽了好多次了

代码:

#include <iostream>
#include <cstring>
#include<algorithm>
using namespace std;
int t,n;
long long int k; 
char c[100010];
int main()
{
	cin>>t;
	while(t--)
	{
		cin>>n>>k;
		memset(c,'\0',sizeof(c));
		for(int i=1;i<=n;i++)
			c[i]='a';
		long long int s1=1+8*k;
		long long int w=ceil((double)(sqrt(s1)-1)/2);
		long long int s=w*(w+1)/2-k;
		long long int index1=s;
		c[n-w+1+s]='b';
		c[n-w]='b';
		for(int i=1;i<=n;i++)
			cout<<c[i];
		cout<<endl;
	}
}

E题

题意:
苟狗定义了一种新式字符串,只有掌握了这种字符串的构造方法,才可以避免宇宙射线的打击。

新式字符串定义如下:

长度为偶数(可以为空)
每一个奇数位置的字符都不等于它后面的那个字符

例如,字符串 good、string、xyyx 都符合要求,而字符串 bad、aa、aabc 则不符合。

现在你获得了一个字符串 S,你需要从该字符串中删除最少的字符数,使其变成一个新式字符串,否则你就会受到宇宙射线的打击,众所周知宇宙射线是降智射线。

那么你能够避开宇宙射线吗?

Input:
一个行给定一个整数 N(1 <= N <= 200000),表示字符串 S 的长度。

第二行给定长度为 N 且仅包含小写字母的字符串 S.

Output:
第一行输出一个数 K(0 <= K <= N),表示需要从 S 中删除的最少的字符数量。

第二行输出删除后的字符串 S。如果为空,你可以输出一个空字符串或者什么都不输出。

Examples:

Input

4
good

Output

0
good

Input

4
aabc

Output

2
ab

Input

3
aaa

Output
3

总结:是一道蛮简单的模拟题,但是我居然在test4超时了,我想了一下估计是因为我是删掉一个元素以后把之后的元素又挪了一遍,当数据量大的时候会超时
所以我有采用了两个数组,一个是答案数组。思路类似

代码:

#include <iostream>
using namespace std;

int n,k=0;
char s[200010];
char ans[200010];

int main()
{
	cin>>n>>s;
	int index1=0;
	int index2=0;
	while(index1<n-1)
	{
		if((index2+1)%2==1)	
		{
			if(s[index1]!=s[index1+1])	
				ans[index2]=s[index1],index1++,index2++;
			else	
				k++,index1++;
		}
		else	
			ans[index2]=s[index1],index1++,index2++; 
	}
	
	if(index2%2==0)	
		ans[index2]='\0',k++;
	else
		ans[index2]=s[n-1],ans[index2+1]='\0';
	cout<<k<<endl;
	cout<<ans<<endl; 
	
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

模拟题【Week15实验】 的相关文章

  • Spring Security配置访问权限在登录页循环并报错302

    事情是这样的 xff0c 在学习Spring Security框架时 xff0c 使用框架默认的登录页面 xff0c 没有任何问题输入正确的账户和密码后都能登录 xff0c 但是将登录页面换为自定义的页面后就无法登录了 如下 xff1a 密
  • .net core基于Oauth2+jwt两种方式实现身份认证(附单点登录)

    引用地址 xff1a net core基于Oauth2 43 jwt两种方式实现身份认证 附单点登录 cslx5zx5的博客 CSDN博客 net core oauth2 基于 net core 3 1微服务架构的SSO单点登录实战 本文所
  • wordpress中文网站代码下载

    wordpress下载中文网站代码 wordpress网站 https cn wordpress org 下载各个中文版本的 xff1a 提示 xff1a 不用用积分去下载了 方法 xff1a 登录网站 xff1a
  • 源码编译装redis

    源码编译装redis 1 下载包 span class token punctuation span root 64 ZZQVM1 span class token punctuation span span class token com
  • I2C协议

    文章目录 一 什么是I2C xff1f 二 物理层与协议层1 物理层 xff08 1 xff09 I2C总线 xff1a xff08 2 xff09 从地址 xff1a xff08 2 xff09 三种传输模式 2 协议层 xff08 1
  • C++智能指针

    文章目录 前言shared ptrunique ptrweak ptr使用智能指针安全吗 xff1f 前言 下面简单的概括了 3中智能指针的在使用时候需要注意的一些地方 xff0c 三种智能指针在离开其作用域之后都会被自动释放 xff0c
  • centos 7 安装 samba

    centos 7 安装 samba 最近想在linux系统下开发C 43 43 程序 xff0c 想用window的编辑器写代码 xff0c 所以在centos 系统下安装了samba xff0c 让window系统挂载centos 系统的
  • win10如何退出“暂停7天更新”? 恢复自动更新

    services msc 微软社区的解答 xff0c 我复bai制的 断开网络进du行如下操作 xff0c 如果遇到zhi程序占用的问题 xff0c 操作进入到dao安全模式 xff08 设置 更新和安全 恢复 立即重启 xff09 进行
  • 关于Qt中线程的挂起和唤醒问题

    为了平台的可移植性 xff0c 现在好多公司或开发者都在用Qt开发 xff0c 但是Qt开发文档有一个不非常理想的问题是 xff0c 有些问题描述的不是太详细 xff0c 特别是涉及到线程的挂起 xff0c 唤醒 和sleep 等问题 在Q
  • vscode不能跳转到定义的解决方法

    vscode不能跳转到定义的解决方法 0 分析1 安装global的依赖2 安装global3 安装插件并生成索引文件 0 分析 在Linux上使用vscode时发现跳转到定义非常缓慢 xff0c 甚至不能用 打开扩展C 43 43 Int
  • UI----UIslider 和UIcontrol的属性

    UISlide 属性 minimumValue 当值可以改变时 xff0c 滑块可以滑动到最小位置的值 xff0c 默认为 0 0 slider minimumValue 61 10 0 maximumValue 当值可以改变时 xff0c
  • JAVA转义字符详解

    一 JAVA中反斜杠 的作用 在不同的系统中 xff0c 路径的分隔符不同 xff0c 故需要做出判断 xff0c 并切换分隔符 VBS代码中确实不用转义 xff0c 但是在JAVA或JS中 xff0c 它采用的是C语言的语法 xff0c

随机推荐

  • 枚举(enum)

    一 什么是枚举 我们学习过单例模式 xff0c 即一个类只有一个实例 而枚举其实就是多例 xff0c 一个类有多个实例 xff0c 但实例的个数不是无穷的 xff0c 是有限个数的 例如word文档的对齐方式有几种 xff1a 左对齐 居中
  • 安卓so包常见报错问题

    一 lib arm64 system lib64 vendor lib64 couldn 39 t find 34 libAndroidIDCard so 我没有在libs文件夹下面创建类似 arm64 v8a 这个文件夹 xff0c 因为
  • Ubuntu详解

    介绍 Ubuntu是一个以桌面应用为主的Linux操作系统 xff0c 其名称来自非洲南部祖鲁语或豪萨语的 ubuntu 34 一词 xff0c 意思是 人性 我的存在是因为大家的存在 34 xff0c 是非洲传统的一种价值观 Ubuntu
  • Selinux详解

    一 介绍 1 1百度百科 SELinux Security Enhanced Linux 是美国国家安全局 xff08 NSA xff09 对于强制访问控制的实现 xff0c 是 Linux历史上最杰出的新安全子系统 NSA是在Linux社
  • repo init详解

    首先选择manifest源 xff0c 一般直接使用清华或中科大的镜像源 repo init u https aosp tuna tsinghua edu cn platform manifest是清华提供的镜像源 repo init u
  • Android Gradle plugin requires Java 11 to run.

    报错分析 因为别人拷过来的项目gradle版本不同 xff0c 对于jdk的兼容性要求不同 之前调试什么东西 xff0c 不小心改了环境的的某个部分 xff0c 现在莫名其妙所有的项目都运行不了了 后来百度翻译了一下 xff0c Andro
  • 安卓稳定性技术栈

    涉及技术内容 xff1a framework java层 语言 xff1a Java 1 开机启动流程 xff1a Android 7 0平台开机启动 android7 0开机自启 jamousjang的博客 CSDN博客 Android系
  • keil在线调试STM32,点三次运行才能跑到main的问题解决。

    现象 使用keil开发STM32 xff0c 下载完程序后 xff0c 不能运行 在main 的入口处加打印 xff0c 啥也没打出来 xff0c 说明程序都没跑到main 在线调试debug时发现了个有意思的现象 xff0c 每次都是点击
  • JAVA中“...”三个点

    可变长参数 xff0c 就是这个位置可以传入任意个该类型参数 简单来说就是个数组 1 testPoints 7 2 testPoints 7 9 11 3 testPoints new Integer 7 9 11 1 public sta
  • IMSI,SN,IMEI分别是什么意思

    1 IMSI 国际移动用户识别码 xff08 IMSI xff1a International Mobile Subscriber Identification Number xff09 是区别 移动用户 的标志 xff0c 储存在 SIM
  • Glide详解

    现在Android上的图片加载框架非常成熟 xff0c 从最早的老牌图片加载框架UniversalImageLoader xff0c 到后来Google推出的Volley xff0c 再到后来的新兴军Glide和Picasso xff0c
  • ubuntu软件包系统已损坏

    多半是上次更新没有更新完 span class hljs built in sudo span apt get clean 说明 删除包缓存中的所有包 将 var cache apt archives 的 所有 deb 删掉 span cl
  • 机器学习及深度学习中的符号说明

    文章目录 数和数组集合和图索引线性代数中的操作微积分概率和信息论函数数据集和分布 数和数组 a a a 标
  • 51单片机系列外部中断(附源码)

    要求 用STC89C51单片机 xff0c 按键 xff0c LED灯完成外部中断实验 程序中点亮LED流水灯 xff0c 当按键按下时 xff0c 外部中断触发 xff0c 程序转至中断服务程序 xff0c 在中断服务程序中使LED灯全亮
  • Linux执行Jar包出现ClassNotFound、“main”找不到主类

    在Linux虚拟机系统执行jar包的过程中 xff0c 经常会出现类似ClassNotFound等类似的错误 xff0c 无法完成jar包的运行 xff0c 根据经验 xff0c 总结几点如下 xff0c 便于自己记忆 xff0c 后期查看
  • Linux中文乱码问题终极解决方法

    方法一 xff1a 修改 root bash profile文件 xff0c 增加export LANG 61 zh CN GB18030 该文件在用户目录下 xff0c 对于其他用户 xff0c 也必须相应修改该文件 使用该方法时putt
  • CentOS7

    Konsole使用方法 root用户 su su root 打开文件修改文件 按 i 编辑 xff0c esc退出编辑 xff0c 然后 wq 保存退出 vi etc selinux config 桌面环境 yum y groups ins
  • 【模拟测试题】

    B题 题意 xff1a 在另一个位面 xff0c 世界末日发生了 东东作为诺亚方舟的船长 xff0c 他现在从月球开始启动诺亚方舟去其他星球营救民众 东东从若干星球将人运回大本营 xff0c 星球的数目以及每个星球的坐标和人数都将由输入决定
  • 解决Qt Qml应用使用windeployqt部署后仍不能运行的问题

    问题描述 在Windows系统中官方推荐使用windeployqt xff0c 使用C 43 43 开发的应用程序使用windeployqt很好用 xff0c 但是使用Qml开发的应用却不能运行 xff0c 双击之后一点反应也没有 解决方法
  • 模拟题【Week15实验】

    A题 题意 xff1a Q 老师有 N 个学生 xff0c 每个学生都有各自独立的编号 xff0c 且编号范围在 1 N 之间 这一天 xff0c 所有学生都在不同的时间进入教室 Q 老师记录了当编号为 i 的学生进入教室时 xff0c 教