
原题:AcWing 3805. 环形数组[1]
给定一个长度为 的道简单题代码的地由小写字母构成的字符串 。
请你构造一个长度为 的总C自己由小写字母构成的字符串 。
要求,风格方字符串 需满足:
字符串 在字典序上大于字符串 。优于 字符串 的道简单题代码的地字母集是字符串 的字母集的子集。一个字符串的总C自己字母集是指该字符串包含的所有不同字母的集合,例如 abadaba 的风格方字母集为 。站群服务器 字符串 在字典序上尽可能小。优于保证答案存在。道简单题代码的地
第一行包含整数 ,总C自己表示共有 组测试数据。风格方
每组数据第一行包含两个整数 和 。优于
第二行包含一个长度为 的道简单题代码的地字符串表示 。
每组数据输出一行满足所有条件的总C自己字符串 。
思路:分情况讨论
当 k 大于 n 时,前 n 位不变,免费源码下载我们让 n 位开始填补出现过的最小字符就行 当 k 小于等于 n 时,我们从原字符串 k - 1 位开始往前找,如果当前字符还有变小的可能,那么就让其变小,寻找停止,输出新字符串可以看出我的代码思路很清晰,但是写得有一点冗余。
看看 y 总的代码。
#include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N = 100010; int n, k; char s1[N], s2[N]; bool st[26]; char get_min() { for (int i = 0; i < 26; i ++ ) if (st[i]) return i + a; return -1; } char get_next(int t) { for (int i = t + 1; i < 26; i ++ ) if (st[i]) return i + a; return -1; } int main() { int T; scanf("%d", &T); while (T -- ) { scanf("%d%d", &n, &k); scanf("%s", s1); memset(st, 0, sizeof st); for (int i = 0; i < n; i ++ ) st[s1[i] - a] = true; if (k > n) { printf("%s", s1); char c = get_min(); for (int i = n; i < k; i ++ ) printf("%c", c); puts(""); } else { s2[k] = 0; for (int i = k - 1; i >= 0; i -- ) { char c = get_next(s1[i] - a); if (c != -1) { s2[i] = c; for (int j = 0; j < i; j ++ ) s2[j] = s1[j]; break; } s2[i] = get_min(); } puts(s2); } } return 0; } // 作者:yxc // 链接:https://www.acwing.com/activity/content/code/content/1634481/ // 来源:AcWing // 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。很简洁。
[1]AcWing 3805. 环形数组:
https://www.acwing.com/activity/content/problem/content/5457/
在Deepin上安装SPSS V22 for linux版,并完成破解激活以及解决中文乱问题,其它Linux版本以及SPSS其它版本基本同法。1、下载好IBM.SPSS.Statistics.v22.Linux-EQUiNOX,这个网上到处都是。解压后在终端进入解压好的文件夹,在终端中运行sudo sh ./SPSS_Statistics_22_Lx.bin以运行安装文件。2、选择安装语言为English,中文安装的话会全是乱码。然后按照指示一路NEXT。3、用户名可以随意填写。默认安装的帮助文档是洋文的,需要什么语言的需要自已勾选。4、接下来会询问你需不需要安装Python,默认安装就可以了。安装路径可以更改,一般默认就可以了。5、下面会问你是否注册,这里不勾选。6、按下来会弹出激活页面,无论安装里选什么语言这里都是调用的系统语言,中文的话就是乱码。这里第一项是叫填激活码,第二个是选用临时激活证书,但是只有14天的试用时间,因为网上的激活码都是针对windows的,对于linux版无效,所以选择临时证书,然后下一步,在弹出的页面选择Temple.txt使用临时证书。以后再激活。继续下一步,安装完成后终端中会显示回到当前的目录。7、在终端中运行 cd /opt/IBM/SPSS/Statistics/22/bin进入程序所在目录,然后运行 ./spssclient打开软件,这时已经可以运行SPSS了,不过在弹出的窗口中可以看到使用期只有14天,而且输入中文的话仍然是乱码,下一步需要激活它然后解决中文乱码的问题。8、激活首先需要破解了的注册文件,文件名称为lservrc,在网上搜SPSSv22破解就可以搜到。然后使用root用户权限进入到/opt/IBM/SPSS/Statistics/22/bin目录,将原本的lservrc文件替换为破解以后的即可,再次运行SPSS软件就会发现试用期提示不见了,说明激活成功。9、之所以中文显示为乱码是因为SPSS自带的JRE没有自带中文字体,解决乱码首先要找到一个中文字体,WINDOWS下随便拷一个就可以,也可以随便网上下一个。然后在使用root用户权限在/opt/IBM/SPSS/Statistics/22/bin/JRE/lib/fonts目录下新建fallback目录,然后将中文字体拷到这个目录里面。再次运行SPSS就会发现中文乱码已经解决了。
抖音云原生向量数据库从“非主流”到“新常态”的演变