acwing第 126 场周赛 (扩展字符串)

5281. 扩展字符串

一、题目要求

某字符串序列 s0,s1,s2,… 的生成规律如下:

  • s0= DKER EPH VOS GOLNJ ER RKH HNG OI RKH UOPMGB CPH VOS FSQVB DLMM VOS QETH SQB
  • sn=DKER EPH VOS GOLNJ UKLMH QHNGLNJ A+sn−1+AB CPH VOS FSQVB DLMM VOS QHNG A+sn−1+AB,其中 n≥1

你需要回答 q个询问,其中第 i 个询问给定两个整数 n,k,并请你输出字符串 sn 中的第 k 个字符(字符串中的字符索引编号从 1 开始),如果 sn 的长度小于 k,则输出 ‘.’

输入格式

第一行包含整数 q。

接下来 q行,每行包含两个整数 n,k,表示一个询问。

输出格式

共一行,一个长度为 q 的字符串,其中第 i 个字符表示第 i 个询问的答案。

保证答案的首尾字符不是空格。

数据范围

前 3 个测试点满足 0≤n≤5。
所有测试点满足 1≤q≤10,0≤n≤10^5,1≤k≤10^18。

输入样例1:
3
1 1
1 2
1 1000000000000000000
输出样例1:
DK.
输入样例2:
5
0 69
1 194
1 139
0 47
1 66

输出样例2:

EFGHI

二、思路 

1.预处理字符串的长度 f[i] ,代表第i个字符串的长度 
2. 通过递归找到第i个字符串长度的第k个位置的字符是多少 

3.推导递归的规律

三、代码

#include<bits/stdc++.h>
#define endl '\n'
#define int long long
#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
using namespace std;
const int N=1e5+10;
const int inf=0x3f3f3f3f;
int n,k=0;
int f[N];
string s="#DKER EPH VOS GOLNJ UKLMH QHNGLNJ A";//长度34 
string ss="#AB CPH VOS FSQVB DLMM VOS QHNG A";//长度32 
string t="#AB";//长度2 
string s0="#DKER EPH VOS GOLNJ ER RKH HNG OI RKH UOPMGB CPH VOS FSQVB DLMM VOS QETH SQB";
//s0长度75 
struct node
{int f,x;
} q[N];
void init()//预处理字符串的长度 
{int i;f[0]=75;for(i=1;;i++){f[i]=f[i-1]*2+68;//s+ss+s0=34+32+2=68; if(f[i]>1e18)break;}for(i++;i<=1e5;i++)//当n还未达到1e5的时候,若对应的字符串长度达到了1e18 {f[i]=f[i-1];//让之后的字符串长度就等于接近1e18那时候的最大长度 }
}
char dfs(int n,int k)
{if(n==0)return s0[k];else if(k<=34)return s[k];else if(k<=34+f[n-1])return dfs(n-1,k-34);else if(k<=34+f[n-1]+32)return ss[k-34-f[n-1]];else if(k<=34+32+f[n-1]*2)return dfs(n-1,k-34-32-f[n-1]);elsereturn t[k-32-34-f[n-1]*2];}
void solve()
{init();cin>>n;
//	cout<<"s0="<<s0.size()<<' '<<"s="<<s.size()<<' '<<"ss="<<ss.size()<<' '<<"t="<<t.size()<<endl;int i,j;for(i=1; i<=n; i++){cin>>q[i].f>>q[i].x;}for(i=1;i<=n;i++){if(q[i].x>f[q[i].f])cout<<'.';elsecout<<dfs(q[i].f,q[i].x);}cout<<endl;
}
signed main()
{int t=1;while(t--){solve();}return 0;
}

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

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

相关文章

MyBatis源码基础-常用类-Configuration

Configuration Configuration类a.java配置b.构建配置类 Configuration类 a.java配置 针对上述的xml配置&#xff0c;可以使用如下的java代码替换&#xff1a; Test public void testConfiguration() {Configuration configuration new Configuration();// 配置propertiesPr…

C++中作为类实例的对象

C中作为类实例的对象 类相当于蓝图&#xff0c;仅声明类并不会对程序的执行产生影响。在程序执行阶段&#xff0c;对象是类的化身。要使用类的功能&#xff0c;通常需要创建其实例—对象&#xff0c;并通过对象访问成员方法和属性。 在C中。类的对象就是该类的某一特定实体&a…

canvas绘制动态视频并且在视频上加上自定义logo

实现的效果&#xff1a;可以在画布上播放动态视频&#xff0c;并且加上自定义的图片logo放在视频的右下角 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthd…

找不到conda可执行文件:解决方法

1.在新版本的pycharm出现的问题如下&#xff1a; 2.解决方法: 2.1 将anaconda\Scripts\conda.exe选中 2.2选择自己的anconda自己的环境&#xff0c;之后就可以正常创建conda环境

自然语言处理---Transformer机制详解之BERT GPT ELMo模型的对比

1 BERT、GPT、ELMo的不同点 关于特征提取器: ELMo采用两部分双层双向LSTM进行特征提取, 然后再进行特征拼接来融合语义信息.GPT和BERT采用Transformer进行特征提取.很多NLP任务表明Transformer的特征提取能力强于LSTM, 对于ELMo而言, 采用1层静态token embedding 2层LSTM, 提取…

IT行业就业方向:探索未来的职业机会

引言&#xff1a; 随着信息技术的飞速发展&#xff0c;IT行业已经成为了当前最具活力和发展潜力的行业之一。在这个充满机遇和挑战的时代&#xff0c;选择一个好的就业方向对于个人的职业发展至关重要。本文将探讨IT行业中哪些方向具有更好的就业前景&#xff0c;并提供一些建…

云原生之深入解析如何使用Vcluster Kubernetes加速开发效率

一、背景 为什么一个已经在使用 Kubernetes 本身方面已经很挣扎的开发人员还要处理虚拟集群呢&#xff1f;答案可能会让您感到惊讶&#xff0c;但我相信虚拟集群实际上比单独的物理集群更容易处理&#xff0c;并且与本地 k3d、KinD 或 minikube 部署的集群相比具有相当多的优势…

node教程(二)

文章目录 1.模块化1.1模块化介绍1.2模块化初体验1.3模块暴露数据(&#x1f53a;)1.4引入&#xff08;导入&#xff09;模块 1.模块化 1.1模块化介绍 ⭐什么是模块化与模块&#xff1f; 将一个复杂的程序文件依据一定规则&#xff08;规范&#xff09;拆分成多个文件的过程称之…

python 之numpy 之随机生成数

文章目录 1. **生成均匀分布的随机浮点数**&#xff1a;2. **生成随机整数**&#xff1a;3. **生成标准正态分布随机数**&#xff1a;4. **生成正态分布随机数**&#xff1a;5. **生成均匀分布的随机浮点数**&#xff1a;6. **生成随机抽样**&#xff1a;7. **设置随机数种子**…

Axi_Lite接口的IP核与地址与缓冲与AxiGP0

AXI Interconnect互连内核将一个或多个 AXI 内存映射主设备连接到一个或多个内存映射从设备。 AXI_GP 接口 AXI_GP 接口是直接连接主机互联和从机互联的端口的。 AXI_HP 接口具有一个 1kB 的数据 FIFO 来做缓冲 [4]&#xff0c;但是 AXI_GP 接口与它不同&#xff0c;没…

24东北大学计算机计划招生数据

2.结语 24的保研名额很多&#xff0c;统考名额就这些&#xff0c;大家根据自己的情况做出选择 东大计算机不好考&#xff0c;但是不代表考不上&#xff01;加油 3.数据来源于官网 官网链接

从传统云架构到云原生生态体系架构的演进

文章目录 概述传统云架构&#xff1a;虚拟化的时代云原生生态体系架构的兴起容器化和微服务架构自动化和自动伸缩基础设施即代码云原生存储和数据库 云原生的影响结语 概述 随着科技的不断发展&#xff0c;云计算领域也经历了巨大的变革。这一演进的核心焦点是从传统云架构过渡…

【Java集合类面试七】、 JDK7和JDK8中的HashMap有什么区别?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;JDK7和JDK8中的HashMap有…

pyflink 环境测试以及测试案例

1. py 的 环境以来采用Anaconda环境包 安装版本&#xff1a;https://www.anaconda.com/distribution/#download-section Python3.8.8版本&#xff1a;Anaconda3-2021.05-Linux-x86_64.sh 下载地址 https://repo.anaconda.com/archive/ 2. 安装 bash Anaconda3-2021.05-Linux-x…

基于深度学习网络的蔬菜水果种类识别算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1数据集准备 4.2构建深度学习模型 4.3模型训练 4.4模型评估 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 clc; clear; close all; wa…

java基础面试题

java后端面试题大全 1.java基础1.1 java中和equals的区别1.2 String、StringBuffer、StringBuilder的区别1.3 intern方法的作用及原理1.4 String不可变的含义1.5 static用法、使用位置、实例1.6 为什么静态方法不能调用非静态方法和变量1.7 异常/Exception1.7 try/catch/finall…

【CNN-LSTM预测】基于卷积神经网络-长短期记忆网络的数据分类预测研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

递增的三元子序列

给你一个整数数组 nums &#xff0c;判断这个数组中是否存在长度为 3 的递增子序列。 如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k &#xff0c;使得 nums[i] < nums[j] < nums[k] &#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示…

头脑风暴之约瑟夫环问题

一 问题的引入 约瑟夫问题的源头完全可以命名为“自杀游戏”。本着和谐友爱和追求本质的目的&#xff0c;可以把问题描述如下&#xff1a; 现有n个人围成一桌坐下&#xff0c;编号从1到n&#xff0c;从编号为1的人开始报数。报数也从1开始&#xff0c;报到m人离席&#xff0c…

YOLOv5项目实战(1)— 如何去训练模型

前言:Hello大家好,我是小哥谈。YOLOv5基础知识入门系列、YOLOv5源码中的参数超详细解析系列、YOLOv5入门实践系列、YOLOv5论文作图教程系列和YOLOv5算法改进系列学习完成之后,接着就进入YOLOv5项目实战系列了。🎉为了让大家能够牢固地掌握YOLOv5算法,本系列文章就通过一个…