【无标题】2024.6.7

news2025/1/18 16:49:44

2024.6.7 【高考咯!!!学长们加油啊!!!】

Friday 五月初二


A. 双色球

【题目描述】
机房来了新一届的学弟学妹,邪恶的chenzeyu97发现一位学弟与他同名,于是他当起了善良的学长233

“来来来,学弟,我考你道水题检验一下你的水平……”

一个栈内初始有n个红色和蓝色的小球,请你按照以下规则进行操作

只要栈顶的小球是红色的,将其取出,直到栈顶的球是蓝色

然后将栈顶的蓝球变成红色

最后放入若干个蓝球直到栈中的球数为n

以上3步骤为一次操作

如栈中都是红色球,则操作停止,请问几次操作后停止

chenzeyu97出完题发现他自己不能AC所以想请你帮忙

【输入格式】
第一行为一个整数n,表示栈的容量为n

第二行为一个字符串,第i个字符表示自顶向下的第i个球的颜色,R代表红色,B代表蓝色

【输出格式】
一个整数表示操作数

【样例输入】
样例1:

3
RBR

样例2:

4
RBBR

【样例输出】

样例1:2
样例2:6

【样例解释】

样例一
【数据范围】
50%的数据,1<=n<=20

100%的数据,1<=n<=50

//2024.6.7
//by white_ice
#include<bits/stdc++.h>
using namespace std;
#define ll long long
constexpr int oo = 60;

ll pow(int x){long long s=1;for(int i=1;i<x;i++)s*=2;return s;}

int n;
int st[oo];
char sp[oo];
ll out;


int main(){
    cin >> n;
    scanf("%s",sp);
    for(int i=1;i<=n;i++)
        if(sp[i-1]=='R')
            st[i]=1;
        else st[i]=2;  

    for(int i=1;i<=n;i++)
        if(st[i]==2)
            out+=pow(i);

    cout << out;

    return 0;
}

数据看着不大,

但模拟会T掉,

结论题,

一个蓝球耗费n^2次。


B. 魔方

【题目描述】
ccy(ndsf)觉得手动复原魔方太慢了,所以他要借助计算机。

ccy(ndsf)家的魔方都是333的三阶魔方,大家应该都见过。

请添加图片描述
(​3的“顺时针”改为“逆时针”,即3 4以图为准。)

ccy(ndfs)从网上搜了一篇攻略,并找人翻译成了他自己会做的方法。现在告诉你他的魔方情况,以及他从网上搜到的攻略,请你求出最后魔方变成什么样子。

【输入格式】
第一行,一串数字,表示从网上搜到的攻略。

下面6*3行,每行3个数字,每三行表示魔方一个面的情况,六个面的顺序是前、后、左、右、上、下。

【输出格式】
6*3行,表示处理后的魔方,形式同输入。

【样例输入】

23
121
221
111
123
321
111
123
321
132
132
231
132
121
112
233
332
111
332

【样例输出】

123
222
113
212
321
113
122
321
132
121
333
121
211
312
113
331
111
331

【样例解释】
图中有误,是2操作

请添加图片描述
请添加图片描述

【数据范围】
40%的数据,攻略的长度小于5且仅有4种操作的其中一种

100%的数据,攻略的长度小于100

这题样例有问题,极大问题!!!

**才写这大模拟


C. czy的宠物

【题目描述】
czy要妥善安排他的宠物,他想在机房摆一群宠物,一共有n个位置排成一排,每个位置可以摆宠物也可以不摆宠物。有些类型宠物如果摆在相邻的位置(隔着一个空的位置不算相邻),就不好看了。假定每种宠物数量无限,求摆宠物的方案数。

【输入格式】
输入有m+1行,第一行有两个用空格隔开的正整数n、m,m表示宠物的种类数。

接下来的m行,每行有m个字符1或0,若第i行第j列为1,则表示第 i 种宠物第 j 种宠物不能排在相邻的位置,输入保证对称。

(提示:同一种宠物可能不能排在相邻位置)。

【输出格式】
输出只有一个整数,为方案数(这个数字可能很大,请输出方案数除以1000000007的余数。

【样例输入】

2 2
01
10

【样例输出】

7

【样例说明】
七种方案为(空,空)、(空,1)、(1、空)、(2、空)、(空、2)、(1,1)、(2,2)。

【数据范围】
20%的数据,1<n≤5,0<m≤10。

60%的数据,1<n≤200,0<m≤100。

100%的数据,1<n≤1000000000,0<m≤100。

//2024.6.7
//by white_ice
#include<bits/stdc++.h>
#define int long long 
#define itn long long
using namespace std;
constexpr int oo = 102;
constexpr itn mod = 1000000007;

int n,m;
char st[101];

int c[101],out;
int a[101][101],b[101][101];

void mul(int a[101][101],int b[101][101],int s[101][101]){
    int t[101][101];
    for(int i=0;i<=m;i++)
       for(int j=0;j<=m;j++){
            t[i][j]=0;
            for(int k=0;k<=m;k++)
                t[i][j]=(t[i][j]+a[i][k]*b[k][j])%mod;
        }
    for(int i=0;i<=m;i++)
        for(int j=0;j<=m;j++)
            s[i][j]=t[i][j];
}

void mul2(int a[101][101],int b[101],int s[101]){
    int t[101];
    for(int i=0;i<=m;i++){
        t[i]=0;
        for(int k=0;k<=m;k++)
            t[i]=(t[i]+a[i][k]*b[k])%mod;
    }
    for(int i=0;i<=m;i++)
        s[i]=t[i];
}

signed main(){
	cin >> n >> m;
	for(int i=1;i<=m;i++){
		scanf("%s",st);
		for(int j=1;j<=m;j++)
		   if(st[j-1]=='0')
		      a[i][j]=1;
	}
	for(int i=0;i<=m;i++)
        a[i][0]=a[0][i]=1;
	for(int i=0;i<=m;i++)
        b[i][i]=1;

	while(n){
        if(n&1)
            mul(a,b,b);
        n>>=1;
        mul(a,a,a);
    }

    c[0]=1;
    mul2(b,c,c);

    for(int i=0;i<=m;i++){
        out+=c[i];
        out%=mod;
    }
    cout << out;
	return 0;
}

DP,但是要优化,

矩阵优化,太玄学了这东西,

DP柿子其实并不难推,主要是

1000000000这个数太吓人了。。。


D. Mex

题目描述
请添加图片描述
输入格式
请添加图片描述
输出格式
输出文件应当包含 q 行, 每行一个正整数,表示输入文件中对应询问的答案。

样例输入

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

样例输出

3
0
3
2
4

样例解释与数据范围
请添加图片描述
请添加图片描述

//2024.6.7
//by white_ice
#include <bits/stdc++.h>
//#include"fopen.cpp"
using namespace std;
#define itn int
constexpr itn oo = 200005;
 
int n,m;
itn num[oo],rt[oo];
int cnt ;

struct {int l,r,mned;} t[oo<<5] ;

namespace TREE{

void pushup(int ned) {t[ned].mned = min(t[t[ned].l].mned,t[t[ned].r].mned);}
void buiild(int x,int v,int l,int r,int &ned) {
    t[++cnt] = t[ned] ; ned = cnt ;
    if(l == r) {
        t[ned].mned = v;
        return ; }
    int mid = (l + r) >> 1 ;
    if(mid >= x)
        buiild(x,v,l , mid , t[ned].l) ;
    else buiild(x,v,mid+1 , r , t[ned].r) ;
    pushup(ned) ;
}
int find(int x, int l , int r , int ned) {
    if(l == r)
        return l ;
    int mid = (l + r) >> 1 ;
    if(t[t[ned].l].mned <= x)
        return find(x , l , mid , t[ned].l) ;
    else return find(x , mid+1 , r , t[ned].r) ;
}
}

int main() {
    //fre();

    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);

    using namespace TREE;

    cin >> n >> m ;
    for(int i=1;i<=n;i++)
        cin >> num[i];

    for(int i=1;i<=n;i++) {
        rt[i] = rt[i-1] ;
        if(num[i]>n+1)
             continue ;
        buiild(num[i],i,0,n+1,rt[i]) ;
    }

    int l , r ;
    while(m --) {
        cin >> l >> r;
        cout << find(l-1,0,n+1,rt[r])<< endl;
    }
    
    return 0 ;
}

数据结构,但是,

考试的时候开小了,RE爆掉了

打一颗持久一点的线段树


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1802020.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Text2SQL 论文】PET-SQL:用 Cross-Consistency 的 prompt 增强的两阶段 Text2SQL 框架

论文&#xff1a;PET-SQL: A Prompt-enhanced Two-stage Text-to-SQL Framework with Cross-consistency ⭐⭐⭐ arXiv:2403.09732&#xff0c;商汤 & 北大 Code&#xff1a;GitHub 一、论文速读 论文一开始提出了以往 prompt-based 的 Text2SQL 方法的一些缺点&#xff1…

JVM学习-监控工具(三)

jconsole 从Java5开始&#xff0c;在JDK中自带的java监控和管理控制台用于对JVM中内存、线程、和类等的监控&#xff0c;是一个基本JMX(java management extendsions)的GUI性能监控工具 三种连接方式 Local&#xff1a;使用JConsole连接是一个正在本地系统运行的JVM&#xf…

Python通过数据验证功能在Excel文件中创建下拉列表

Excel表格的灵活性和功能性深受各行各业人士的喜爱。在Excel表格中&#xff0c;下拉列表功能是提升数据录入效率与准确性的一个重要利器&#xff0c;能够为用户提供预设的选择项&#xff0c;限制输入范围&#xff0c;避免手动输入错误&#xff0c;还能够简化数据录入过程&#…

命令行打包最简单的android项目从零开始到最终apk文件

准备好需要的工具 AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Gradle下载 SDK Tools下载 jdk的链接我就不发出来,自己选择,我接下来用的是8版本的jdk和android10的sdk sdk的安装和环境变量的配置 sdk tool压缩包打开后是这样子,打开sdk mana…

nodeJs项目完结

文章目录 项目总结对象.addEventListener(事件, 函数)事件类型&#xff1a; 本地存储的方式cookielocalStoragesessionStorage 客户端获取与服务端获取服务端渲染客户端渲染 POST&GETfor of & for InPromise的方法1. Promise.resolve2. Promise.reject3. Promise.final…

阿里云活动推荐:AI 应用 DevOps 新体验

活动简介 阿里云新活动&#xff0c;体验阿里云的云效应用交付平台。体验了下&#xff0c;总体感觉还不错。平台把常规的开发过程封装成了模板&#xff0c;部署发布基本都是一键式操作&#xff0c;并且对自定义支持的比较好。 如果考虑将发布和部署搬到云上&#xff0c;可以玩一…

算法人生(21):从“React框架”看“情绪管理”

说起React框架&#xff0c;我们知道它是一种由Facebook开发和维护的开源JavaScript库&#xff0c;主要用于构建用户界面&#xff0c;特别是单页应用程序&#xff08;SPA&#xff09;。React框架围绕组件化&#xff0c;即把用户界面拆分为可复用的独立组件&#xff0c;每个组件负…

【进程调度的基本过程】初步认识进程和线程的区别与联系:计算机是如何工作的

​ &#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【Java】登神长阶 史诗般的Java成神之路 &#x1f43a;一.冯诺依曼体系结构 认识计算机的祖师爷 -- 冯诺依曼 冯诺依曼&#xff08;John von Neumann&#xff0c;1903年12⽉28⽇-1957年2⽉8⽇&…

Linux:动态库和静态库的编译与使用

目录 1.前言 2.静态链接库 3.静态链接库生成步骤 4.静态链接库的使用 5.动态链接库 6.动态链接库生成步骤 7.动态链接库的使用 8.动态链接库无法加载 9.解决动态链接库无法加载问题 前言 在《MinGW&#xff1a;从入门到链接库》博客中简单介绍了如何编译动态链接库和静态链接库…

快速安装Windows和Ubuntu双系统

一、参考资料 用UltraISO制作Ubuntu16.04 U盘启动盘 DiskPart Command-Line Options 二、相关介绍 1. MBR和GPT分区模式 MBR分区模式 MBR最大仅支持2TB磁盘&#xff0c;超过2TB不可识别。 MBR&#xff08;Master Boot Record&#xff09;&#xff0c;即硬盘的主引导记录分…

统计信号处理基础 习题解答10-8

题目 一个随机变量具有PDF 。希望在没有任何可用数据的情况下估计的一个现实。为此提出了使最小的MMSE估计量&#xff0c;其中期望仅是对求的。证明MMSE估计量为。将你的结果应用到例10.1&#xff0c;当把数据考虑进去时&#xff0c;证明最小贝叶斯MSE是减少的。 解答 在贝叶…

python -- series和 DataFrame增删改数据

学习目标 知道df添加新列的操作 知道insert函数插入列数据 知道drop函数删除df的行或列数据 知道drop_duplicates函数对df或series进行数据去重 知道unique函数对series进行数据去重 知道apply函数的使用方法 1 DataFrame添加列 注意:本文用到的数据集在文章顶部 1.1 直…

Servlet基础(续集)

Servlet原理 Servlet是由Web服务器调用&#xff0c;Web服务器在收到浏览器请求之后&#xff0c;会&#xff1a; Mapping问题 一个Servlet可以指定一个映射路径 <servlet-mapping><servlet-name>hello</servlet-name><url-pattern>/hello</url-pa…

物联网8大协议介绍及对比

一.物联网主流协议介绍 1.MQTT 协议 MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;即消息队列遥测传输。 MQTT 协议最初是在 1999 年由 IBM 公司开发的&#xff0c;用于将石油管道上的传感器与卫星相连接。2014 年正式成为 OASIS 开放标准。 MQTT 使用…

Element UI上传图片和PDF,支持预览,并支持复制黏贴上传

背景 如上图&#xff0c;使用Element UI的el-upload组件&#xff0c;并且预览的时候可以展示图片和PDF格式文件&#xff1b; 做法 index.vue <template><div><el-uploadv-model"diaForm.list":limit"5":on-exceed"handleExceed"…

使用AutoGen框架进行多智能体协作:AI Agentic Design Patterns with AutoGen

AI Agentic Design Patterns with AutoGen 本文是学习https://www.deeplearning.ai/short-courses/ai-agentic-design-patterns-with-autogen/ 这门课的学习笔记。 What you’ll learn in this course In AI Agentic Design Patterns with AutoGen you’ll learn how to buil…

vue+vscode 快速搭建运行调试环境与发布

1.安装node.js Node.js — Run JavaScript Everywhere 默认不断next 2.更换镜像地址 运行-cmd 执行以下代码安装 npm config set registry https://registry.npmmirror.com 检查node.js和镜像是否是否成功 node -v npm -v npm config get registry 3.安装打包工具 …

【SpringBoot】SpringBoot整合RabbitMQ消息中间件,实现延迟队列和死信队列

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 目录 一、&#x1f525;死信队列 RabbitMQ的工作模式 死信队列的工作模式 二、&#x1f349;RabbitMQ相关的安装 三、&#x1f34e;SpringBoot引入RabbitMQ 1.引入依赖 2.创建队列和交换器 2.1 变量声明 2.2 创建…

Java采取擦除式泛型到底兼容了什么场景?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「 Java的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;Java擦除式泛型是一个妥协,…

高光谱图像聚类的像素-超像素对比学习与伪标签校正

Pixel-Superpixel Contrastive Learning and Pseudo-Label Correction for Hyperspectral Image Clustering 文章目录 Pixel-Superpixel Contrastive Learning and Pseudo-Label Correction for Hyperspectral Image Clustering摘要引言相关方法对比学习 方法超像素对比学习像素…