题目链接:D-瑞瑞爱上字符串

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

1、aaabb
2、aabab
3、aabba
4、abaab
5、ababa
6、abbaa
7、baaab
8、baaba
9、babaa
10、bbaaa

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

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

Sample Input:

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

Sample Output:

aaabb
aabab
baaba
bbaaa
abb
bab
aaaaabaaaaabaaaaaaaa

思路:
既然只有ab两种字符,且只有两个b,那么只需要考虑b的位置就OK了。对于n个字符,优先级顺序共有(n-1)(1+n-1)/2种。首先确定第一个b的位置,不妨令第一个b在i坐标处且在第二个左边,则第二个b的位置有n-i个,不妨使第二个b在尾端,找到不大于k的最大值,然后左移第二个b即可。

代码:

#include<iostream>
using namespace std;
const int maxn=2e5+10;
int T;
long long n,k,a,b,op;
int main(){cin>>T;while(T--){cin>>n>>k;for(long long i=1;i<=n;i++)if(i*(i+1)/2>=k){op=i;break;}for(int j=1;j<=n;j++){if(j==n-op||j==n-(k-(op-1)*op/2-1))cout<<'b';else cout<<'a';}cout<<endl;}return 0;
}

程序设计思维与实践 Week15 实验 D-瑞瑞爱上字符串相关推荐

  1. 程序设计思维与实践 Week15 实验

    目录 A - Q 老师的记录册 输入 输出 输入样例1 输出样例1 输入样例2 输出样例2 输入样例3 输出样例3 思路 代码 B - ZJM的本领 输入 输出 样例输入1 样例输出1 样例输入2 样 ...

  2. 程序设计思维与实践 Week15 作业A - ZJM 与霍格沃兹

    题意: ZJM 为了准备霍格沃兹的期末考试,决心背魔咒词典,一举拿下咒语翻译题 题库格式:[魔咒] 对应功能 背完题库后,ZJM 开始刷题,现共有 N 道题,每道题给出一个字符串,可能是 [魔咒],也 ...

  3. 程序设计思维与实践 Week15 作业 A-ZJM与霍格沃兹

    题目链接:A-ZJM与霍格沃兹 题目描述: ZJM 为了准备霍格沃兹的期末考试,决心背魔咒词典,一举拿下咒语翻译题 题库格式:[魔咒] 对应功能 背完题库后,ZJM 开始刷题,现共有 N 道题,每道题 ...

  4. 山大程序设计思维与实践 六月模拟:猪国杀

    六月模拟:猪国杀 山东大学计算机科学与技术学院程序设计思维与实践作业 山大程序设计思维与实践 sdu程序设计思维与实践 山东大学程序设计思维实践作业H 山大程序设计思维实践作业H 山东大学程序设计思维 ...

  5. 程序设计思维与实践 Week9 作业三道

    A - 咕咕东的目录管理器 题面 咕咕东的雪梨电脑的操作系统在上个月受到宇宙射线的影响,时不时发生故障,他受不了了,想要写一个高效易用零bug的操作系统 -- 这工程量太大了,所以他定了一个小目标,从 ...

  6. 山东大学程序设计思维与实践 四月模拟:TT与可怜的猫

    4月模拟-TT与可怜的猫 程序设计思维实践-复杂模拟题训练2 山东大学计算机科学与技术学院程序设计思维与实践 sdu程序设计思维与实践 山东大学程序设计思维实践作业 山大程序设计思维实践 山东大学程序 ...

  7. 山东大学计算机科学与技术学院程序设计思维与实践作业 week10-树型数据结构及其应用

    山东大学计算机科学与技术学院程序设计思维与实践作业 山大程序设计思维与实践作业 sdu程序设计思维与实践 山东大学程序设计思维实践作业H10 山大程序设计思维实践作业H10 山东大学程序设计思维与实践 ...

  8. 山东大学计算机科学与技术学院程序设计思维与实践作业 week5-数学基础与线性结构

    山东大学计算机科学与技术学院程序设计思维与实践作业 山大程序设计思维与实践作业 sdu程序设计思维与实践 山东大学程序设计思维实践作业H5 山大程序设计思维实践作业H5 山东大学程序设计思维与实践 w ...

  9. 程序设计思维与实践 CSP-M2 (3/4/数据班)

    HRZ的序列 题意: 相较于咕咕东,瑞神是个起早贪黑的好孩子,今天早上瑞神起得很早,刷B站时看到了一个序列a,他对这个序列产生了浓厚的兴趣. 他好奇是否存在一个数K,使得一些数加上K,一些数减去K,一 ...

最新文章

  1. python打印表格_使用 Python 打印漂亮的表格,这两项基本功你可会?
  2. 使用预训练的卷积神经网络(猫狗图片分类)
  3. RocketMQ:消费端的消息消息队列负载均衡与重新发布机制源码解析
  4. Android-View点击事件短时间重复点击的过滤
  5. Spring面试题(70道,史上最全)
  6. java包名命名规则_告别编码5分钟,命名2小时!史上最全的Java命名规范参考!
  7. WPF 创建右键菜单
  8. 百度编辑器ueditor字体添加
  9. 一个人学习3D视觉太痛苦了怎么办?
  10. Flink Forward Asia 2021 延期,线上相见
  11. 【机器学习系列】隐马尔科夫模型第一讲:通俗易懂概述HMM
  12. 驾校一点通电脑版2015 v1.5 最新版
  13. EMC-电磁兼容-电磁骚扰的耦合机理
  14. php5.6.40 在 win10下安装全过程 ( 图文教程、附官方下载链接 )
  15. 使用USB Key Utility工具制作bootable USB Key
  16. 4、计算矩阵A的平方
  17. 交叉碳市场和 Web3 以实现再生变革
  18. win10如何设置有线和无线同时上内网和外网?
  19. 张正友标定法几个坐标系的意思
  20. 用java语言编写程序计算九宫图

热门文章

  1. html二级菜单的创建
  2. 层次分析法 计算机程序,层次分析法(AHP)程序的设计
  3. 企业为什么要选择OEM代加工?OEM代加工有哪些好处?
  4. 社群运营,用户转化工作该怎么做?
  5. 分苹果 (民间比赛)
  6. 2018计算机教室管理计划,学校计算机教室使用管理制度(2018).docx
  7. 使用正则表达式验证邮箱格式?
  8. Axure中继器的使用(一)
  9. linux下oracle导出dmp文件,并排除不需要导出的表
  10. HDFS-HA集群搭建(搭建的时候,请仔细仔细再仔细!!!)