week15课上实验csp

2023-05-16

问题A - Q 老师的记录册

问题描述

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

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

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

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

1 ≤ Ai ≤ N,Ai 各不相同

所有数字均为整数

题目分析

这个就是将输入的第i个数是j,转换成第j个数是i;
所以直接用一个数组,将输入的数字shu,把那个数组的第shu个值更新为第几个输入的值即可

代码

#include<iostream>
using namespace std;
int N,a[100002],shu;
int main()
{
	cin>>N;
	for(int i=1;i<=N;i++)
	{
		cin>>shu;
		a[shu]=i;
	}
	for(int i=1;i<=N;i++)
	{
		cout<<a[i];
		if(i==N)cout<<endl;
		else cout<<" ";
	}
 } 

问题B - ZJM 的本领

问题描述

众所周知,ZJM 住在 B 站。

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

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

ZJM 从第一分钟开始看,每次可以按下快进键,快进 X 分钟,问 ZJM 最快需要多久可以看完这部番。
第一行给出两个整数 N、X(1 ≤ N ≤ 50, 1 ≤ X ≤ 1e5)

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

数据保证,R[i-1] < L[i]

题目分析

分别用l两个数组来表示左端点和右端点,因为已经排好序,这里就不多做处理
先把总的时间拿出来,再将每一段非重要部分,尽可能的减去X,也就是先整除,知道整数能有几个X,然后再减去这几个X,注意一下最前面的多减上最开始到第一段精彩部分的时间能否跳过这个要单独算一下。

代码

#include<iostream>
using namespace std;
int N,X; 
int R[100],L[100];
int time;
int main()
{
	cin>>N>>X;
	time=0;
	for(int n1=0;n1<N;n1++)
	{
		cin>>L[n1]>>R[n1];
		
	}
	time=R[N-1];
	for(int n1=0;n1<N;n1++)
	{
		if(n1==0)
		{
			time=time-X*((L[n1]-1)/X);
			
		}
		else
		time=time-X*((L[n1]-R[n1-1]-1)/X);
		
	}
	
	cout<<time;
}

遇到的问题

本来的想法是,一次次的累加,精彩的时刻,和没法跳转的时刻一起加起来
但是不知道为啥出现了毛病,就改变了自己的思路,改成总的减去可跳过的。

问题C - TT 的神秘任务 - X

问题描述

TT 的神秘任务系列。

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

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

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

字符串长度
第一行给出 N(2 ≤ N ≤ 2e5)。

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

题目分析

这个很简单,就是找到从右往左第一个左边ASCII 大于右边的,把那个删掉,这样右边那个小的就会顶替前面的位置,会变小,同时它改动的位置最为左边,会使得它的减小最大化。
如果遍历完都没有找到这么一个结果,就把最后一个字符删掉。

代码

#include<iostream>
using namespace std;
int N;
char zi[200002];
int main()
{
	scanf("%d",&N);
	int shu=-1;
	getchar();
	for(int i=0;i<N;i++)
	{
		scanf("%c",&zi[i]);
		if(zi[i]<zi[i-1]&&i!=0&&shu==-1)
		{
			shu=i-1;
		}
		
	}
	//cout<<zi<<endl;
	if(shu==-1)shu=N-1;
	//cout<<shu;
//	for(int i=0;i<N;i++)
	//{
//		 printf("%c",zi[i]);
	
//	}
//	printf("\n");
	for(int i=0;i<N;i++)
	{
		if(i==shu)continue;
		else printf("%c",zi[i]);
	
	}
	printf("\n");
}

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

week15课上实验csp 的相关文章

  • 已经成功安装了但是jupyter notebook仍然找不到模块

    问题描述 工具 语言 jupyter notebook 43 anaconda python 有时会遇到这样的情况 xff0c 命名已经install了模块 xff0c notebook还是报找不到模块错误 再装已经提示satisfied
  • pyecharts 地图绘制

    环境描述 win11 jupyter notebook 目标效果 世界地图 43 按数据进行分级着色 xff1b 最终效果图如下 xff1a pyecharts 绘制地图时注意点 可以实现目标地图绘制效果的python库很多 xff0c 这
  • 指定wb用户在指定日期范围内的wb内容抓取

    一 操作步骤 只记录过程 xff0c 不讲述原理 1 获取用户ID和cookie 用户ID在进入个人主页时导航栏中就会有显示 xff0c 例如下面这样 xff1a cookie获取 xff08 有的代码无需cookie也能运行 xff09
  • 中介变量、调节变量与协变量

    在平时看论文过程中偶会接触到这几个概念 xff0c 然而都没想过弄明白 xff0c 每次总觉得只要看明白个大概反正自己又不用这种方法 作为科研人 xff0c 还是应该保持谦逊 xff0c 保持学习 一 中介变量 1 概念 中介变量 xff0
  • linux环境搭建

    文章目录 linux环境搭建基础工具环境docker镜像docker 的基本操作git amp amp sshbash脚本 python 环境 linux环境搭建 基础工具环境 docker镜像 Docker CE 镜像源站 docker如
  • 【Linux】状态机

    Linux 状态机 首先感谢阅读 xff0c 作者是在工作中学习与积累 xff0c 每一个笔记都是心得和积累 xff0c 希望可以和大家一起交流学习 学习咱们先定好计划 xff0c 需要了解的都一样 xff0c 有 xff1a xff08
  • MyBatisPlus源码

    MyBatisPlus源码 文章目录 MyBatisPlus源码1 通用Mapper 96 BaseMapper 96 2 顶级Mapper 96 Mapper 96 3 通用Service 96 IService 96 4 通用Servi
  • bomb二进制炸弹拆除实验(MIPS)

    上学期计算机系统基础课程的一个实验 xff0c 在这里再简略整理一下 xff1a 实验要求 xff1a 仅给定一个MIPS二进制可执行文件bomb xff0c 要求运用GDB调试工具 xff0c 通过分析反汇编代码来输入正确的参数以拆除炸弹
  • 图与网络可视化实战(matlab实现)

    本篇以2020年数学建模美赛D题的足球传球网络可视化为例 xff0c 分三大步骤来简单讲解一下matlab在图与网络可视化方面的应用 xff1a Step1 构图 xff1a 首先根据输入数据构造邻接矩阵 xff0c 然后调用matlab中
  • Week8 - 程序设计思维与实践 - HRZ的序列(第二次CSP模拟T1)

    T1 HRZ的序列 该比赛已结束 xff0c 您无法在比赛模式下递交该题目 您可以点击 在题库中打开 以普通模式查看和递交本题 题目描述 相较于咕咕东 xff0c 瑞神是个起早贪黑的好孩子 xff0c 今天早上瑞神起得很早 xff0c 刷B
  • Week8 - 程序设计思维与实践 - HRZ学英语(第二次CSP模拟T2)

    T2 HRZ学英语 该比赛已结束 xff0c 您无法在比赛模式下递交该题目 您可以点击 在题库中打开 以普通模式查看和递交本题 题目描述 瑞神今年大三了 xff0c 他在寒假学会了英文的26个字母 xff0c 所以他很兴奋 xff01 于是
  • Week14 - 程序设计思维与实践 - 矩阵快速幂(+优化DP)

    题目连接 A Q老师与石头剪刀布 xff08 必做 xff09 题意 每一个大人曾经都是一个小孩 xff0c Q老师 也一样 为了回忆童年 xff0c Q老师 和 Monika 玩起了石头剪刀布的游戏 xff0c 游戏一共 n 轮 无所不知
  • Week14 - 程序设计思维与实践 - HDU3700 - Cat(限时模拟)

    Problem Description There is a cat cat likes to sleep If he sleeps he sleeps continuously no less than A hours For some
  • SDU《程序设计思维与实践》课程个人感想

    这门课到此也就宣告结束了呀 xff0c 回想过去居家学习的 16 周真的是既辛酸又充实 由于是非竞赛生 xff0c 之前没怎么接触过算法刷题这一方面 xff0c 唯一学的点算法也是来自上学期的数据结构 xff0c 回想刚开始上这门课的时候
  • 跳表的实现、分析以及可视化(Qt C++、Graphviz)

    演示程序截图 实现功能 跳表初始化跳表的查找操作跳表的插入操作跳表的删除操作 xff08 指定关键字的元素 关键字最小的元素 关键字最大的元素 xff09 跳表可视化 程序结构设计 初始化模块 xff1a void Initializati
  • 1、stm32F103入门学习--开发环境搭建(一)

    stm32简介 这款是网上销量比较多的板子 xff0c 我找板子主要还是看价格 xff0c 20元左右 xff0c 不需要太贵 xff0c 只是做个核心入门 xff0c 不要太多的外设 xff0c 特别是对初学者 xff0c 因为从来没见过
  • 森林与二叉树之间的转换以及可视化演示(C++实现)

    演示程序截图 基本要求 构造并实现森林的ADT和二叉树ADT xff0c 森林ADT中应包括初始化 插入元素 删除元素 xff0c 插入边 xff0c 删除边 xff0c 转换成二叉树 xff0c 显示森林及对应的二叉树等基本操作 xff0
  • 应用竞赛树结构模拟实现外排序(C++实现)

    基本要求 xff08 1 xff09 设计实现最小输者树结构 A D T ADT A D T xff0c A D
  • Ubuntu20.04 安装 Python 3.10

    通过APT 方式获取 进入终端后输入以下 sudo apt update 接着 xff0c 你需要安装PPA需要的软件源 sudo apt install software properties common y 然后 xff0c 添加名为
  • 求和问题

    给一个长度为n的序列 xff0c 你需要求出其中连续m个数的和的最大值是多少 输入 第一行给出一个数字T xff0c 表示数组总数 xff08 t lt 100 xff09 每组数据的第一行有两个数字 n m xff08 0 lt m n

随机推荐