【Week15实验 D】瑞瑞爱上字符串【模拟】

2023-05-16

题意:

瑞瑞最近迷上了字符串,因此决定出一个字符串的题。
给定两个正整数 N、K,考虑所有由 N - 2 个 a 和 2 个 b 组成的字符串,要求输出其中字典序第 K 小的。
例如当 N = 5 时,共有如下 10 种组成方式:
aaabb、aabab、aabba、abaab、ababa、abbaa、baaab、baaba、babaa、bbaaa。

多组数据,第一行给定 T,表示数据组数。(1 ≤ T ≤ 1e4)
对于每组数据,给出两个正整数 N、K。(3 ≤ N ≤ 1e5, 1 ≤ K ≤ min(2e9, N * (N-1) / 2 ))
N 的总和不会超过 1e5。

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


思路:

可以将所有字符设为a,然后寻找b的位置。默认b在字符串倒数第二个和倒数第一个。
在这里插入图片描述
根据上图可以找到两个b前进的格数,倒数第二个b要前进y-1格,倒数第一个b要前进k-z格。


总结:

一道求公式的模拟题。


代码:

#include <iostream>
#include <cmath>
using namespace std;

long long int n,k;
char c[100010];
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
		cin>>n>>k;
		for(int i=0;i<n;i++)
			c[i]='a';
		c[n]='\0';
		long long int sq=1+8*k;	//k最大2e9,会爆int 
		double x=(sqrt(sq)-1)/2;
		long long int y=ceil(x);
		//倒数第二个b要往前y-1格
		long long int index1=n-2-(y-1);
		c[index1]='b';
		long long int z=(1+y-1)*(y-1)/2+1;
		//倒数第一个b要往前k-z格
		long long int index2=n-1-(k-z);
		c[index2]='b';
		cout<<c<<endl; 
	}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Week15实验 D】瑞瑞爱上字符串【模拟】 的相关文章

随机推荐

  • 解决 npm ERR! node-sass 和 gyp ERR! node-gyp 报错问题

    一 需要安装 msbuild 微软构建工具 span class token function npm span span class token function install span windows build tools span
  • Permutation 排列组合,主要是字符串的排列offer上的题目,还有leetcode的组合

    一个简洁版的结果过程说明 xff0c 固定一个位 xff0c 变换其他位 a b c d a b d c a c b d a c d b a d c b a d b c void perm char list int i int n int
  • winpcap编程函数介绍

    1 int pcap findalldevs pcap if t char 说明 xff1a 用来获得网卡的列表 参数 xff1a 指向pcap if t 类型的列表的指针的指针 char型指针 当打开列表错误时返回错误信息 返回值 为in
  • shell脚本实现数据库自动备份

    自动备份参考一 三步骤即可 xff0c 二步骤实现备份成功的同时推送消息到钉钉群 xff08 可省略 xff09 一 shell脚本实现数据库自动备份内容如下 xff08 我将脚本名称命名为back sh xff09 xff08 可复制以下
  • 【Week4 CSP B】咕咕东想吃饭【模拟】

    题意 xff1a 一共有n天 xff0c 每天需要买ai个生煎 共有两种购买方式 xff1a 在某一天一次性买两个 xff0c 或者为今明两天各买一个 每种购买方式都可以使用无数次 请问是否能每天恰好买ai个生煎 xff08 最后一天不能用
  • 【Week4 CSP C】可怕的宇宙射线【dfs剪枝】

    题意 xff1a 宇宙射线会在无限的二维平面上传播 xff08 可以看做一个二维网格图 xff09 xff0c 初始方向默认向上 宇宙射线会在发射出一段距离后分裂 xff0c 向该方向的左右45度方向分裂出两条宇宙射线 xff0c 同时威力
  • 【Week4作业 A】DDL的恐惧【贪心】

    题意 xff1a 有n个作业 1 lt 61 n lt 61 1000 xff0c 每个作业都有自己的DDL与平时分 请安排做作业的顺序 xff0c 拿到最多的平时分 输入 xff1a 共T个测试样例 xff0c 每个测试样例共三行 xff
  • 【Week5作业 C】平衡字符串【尺取法】

    题意 xff1a 一个长度为n xff08 n是4的倍数 xff09 的字符串s xff0c 其中仅包含 Q W E 39 R 四种字符 若四种字符在字符串中出现次数均为n 4 xff0c 则其为一个平衡字符串 现可以将s中连续的一段子串替
  • 【Week8作业 A】区间选点II【差分约束】

    题意 xff1a 给定一个数轴上的n个区间 xff0c 要求在数轴上选取最少的点使得第i个区间 ai bi 里至少有ci个点 1 lt 61 n lt 61 50000 0 lt 61 ai lt 61 bi lt 61 50000 1 l
  • 【Week8作业 B】猫猫向前冲【拓扑排序】

    题意 xff1a 一共n只猫猫 xff0c 编号依次为1至n 有m场猫猫比赛 xff0c p1 p2表示猫猫p1赢了猫猫p2 现求字典序最小的名次序列 思路 xff1a 猫猫之间的胜负关系可以构成一张有向无环图 xff0c p1赢了p2等价
  • 【Week8作业 C】班长竞选【SCC缩点】

    题意 xff1a 大学班级选班长 xff0c n个同学均可以发表意见 若意见为A B xff0c 则表示A认为B合适 意见具有传递性 xff0c 即A认为B合适 xff0c B认为C合适 xff0c 则A也认为C合适 共m条意见 xff0c
  • 【Week9作业 A】咕咕东的目录管理器【模拟】

    题意 xff1a 咕咕东的雪梨电脑的操作系统在上个月受到宇宙射线的影响 xff0c 时不时发生故障 xff0c 他受不了了 xff0c 想要写一个高效易用零bug的操作系统 这工程量太大了 xff0c 所以他定了一个小目标 xff0c 从实
  • 【Week12作业 B】必做题-2【模拟】

    题意 xff1a zjm被困在一个三维的空间中 现在要寻找最短路径逃生 xff01 空间由立方体单位构成 zjm每次向上下前后左右移动一个单位需要一分钟 xff0c 且zjm不能对角线移动 空间的四周封闭 zjm的目标是走到空间的出口 是否
  • 【Week12作业 C】必做题-3【动态规划】

    题意 xff1a 东东每个学期都会去寝室接受扫楼的任务 xff0c 并清点每个寝室的人数 每个寝室里面有ai个人 1 lt 61 i lt 61 n 从第i到第j个宿舍一共有sum i j 61 a i 43 43 a j 个人 这让宿管阿
  • selenium重要功能应用

    当使用C 编写爬虫时 xff0c 以下是一些常用的爬虫框架 xff1a AngleSharp xff08 用于HTML解析 xff09 HtmlAgilityPack xff08 用于HTML解析 xff09 ScrapySharp xff
  • 【CSP201809-3】元素选择器【模拟】

    题意 思路 xff1a 用point来存储结构化文档 xff0c 里面string label string id为标签和id xff0c int c为所在层数 xff0c 两个点就为一层 读入结构化文档 xff1a 用getline读入一
  • 【Week14作业 B】Q老师与十字叉【模拟】

    题意 xff1a 思路 xff1a 存储网格图不可能开数组a 50000 50000 xff0c 发现n m lt 61 400000 xff0c 可以用a 400001 来存储 xff0c i j gt a i 1 m 43 j 读入数据
  • 【Week14作业 C】Q老师的考验【矩阵快速幂】

    题意 xff1a Q老师 对数列有一种非同一般的热爱 xff0c 尤其是优美的斐波那契数列 这一天 xff0c Q老师 为了增强大家对于斐波那契数列的理解 xff0c 决定在斐波那契的基础上创建一个新的数列 f x 来考一考大家 数列 f
  • 【Week14作业 D】Q老师染砖【矩阵快速幂优化dp】

    题意 xff1a 衣食无忧的 Q老师 有一天突发奇想 xff0c 想要去感受一下劳动人民的艰苦生活 具体工作是这样的 xff0c 有 N 块砖排成一排染色 xff0c 每一块砖需要涂上红 蓝 绿 黄这 4 种颜色中的其中 1 种 且当这 N
  • 【Week15实验 D】瑞瑞爱上字符串【模拟】

    题意 xff1a 瑞瑞最近迷上了字符串 xff0c 因此决定出一个字符串的题 给定两个正整数 N K xff0c 考虑所有由 N 2 个 a 和 2 个 b 组成的字符串 xff0c 要求输出其中字典序第 K 小的 例如当 N 61 5 时