2026/2/5 5:26:39
网站建设
项目流程
怎么登陆自己的公司网站,怎样防止别人利用自己电脑做网站,修改备案网站信息,顺德网站建设jinqiye游游的字母翻倍
时间限制#xff1a;1秒 空间限制#xff1a;256M
网页链接
牛客tracker
牛客tracker 每日一题#xff0c;完成每日打卡#xff0c;即可获得牛币。获得相应数量的牛币#xff0c;能在【牛币兑换中心】#xff0c;换取相应奖品#xff01;助力每…游游的字母翻倍时间限制1秒 空间限制256M网页链接牛客tracker牛客tracker 每日一题完成每日打卡即可获得牛币。获得相应数量的牛币能在【牛币兑换中心】换取相应奖品助力每日有题做丰盈牛币日益多题目描述游游拿到了一个长度为n nn的字符串她每次操作会选择一个区间[ l , r ] [l,r][l,r]将第l ll个字母到第r rr个字母各重复一次插入到该字母的后面。例如对于字符串a b c d abcdabcd“若选择区间[ 2 , 3 ] [2,3][2,3]进行操作字符串将变成”a b b c c d abbccdabbccd游游将进行q qq次操作。她想知道q qq次操作结束后最终的字符串是什么样子输入描述第一行输入两个正整数n nn和q qq分别代表字符串长度和操作次数。第二行输入一个仅由小写英文字母组成的字符串代表初始的字符串。接下来的q qq行每行输入两个正整数l , r l,rl,r代表操作的区间。1 ≤ n ≤ 1000 1≤n≤10001≤n≤10001 ≤ q ≤ 10 1≤q≤101≤q≤101 ≤ l ≤ r ≤ 1 0 6 1≤l≤r≤10^61≤l≤r≤106保证每次操作时r rr不大于当前的字符串长度。输出描述一个字符串代表所有操作结束后形成的字符串。示例1输入6 2 abcdef 2 4 3 6输出abbbccccdddef说明第一次操作后字符串变成a b b c c d d e f abbccddefabbccddef第二次操作后字符串变成a b b b c c c c d d d e f abbbccccdddefabbbccccdddef解题思路首先读取初始字符串的长度n nn、操作次数q qq及初始字符串对于每次操作的区间[ l , r ] [l,r][l,r]先转换为0 − b a s e d 0-based0−based的起始位置k s l − 1 ksl-1ksl−1和结束位置e n d r − 1 endr-1endr−1计算区间长度l e n lenlen随后从区间末尾向前遍历每个位置逆序遍历可避免正向插入时字符位置偏移导致的遍历错误在每个位置p o s pospos的下一个位置插入与p o s pospos处相同的字符由于n ≤ 1000 n≤1000n≤1000、q ≤ 10 q≤10q≤10即使多次插入操作使字符串长度增长该直接模拟的方式时间复杂度仍在可控范围内能精准还原每次区间字符翻倍的操作效果最终输出所有操作完成后的字符串高效且准确地解决问题。代码内容#includebits/stdc.husingnamespacestd;typedeflonglongll;typedefpairll,llpii;constll p1e97;constll N1e510;intmain(){ll n,q;cinnq;string s;cins;while(q--){ll l,r;cinlr;ll ksl-1,endr-1;ll lenend-ks1;for(ll ilen-1;i0;i--){ll posksi;charcs[pos];s.insert(pos1,1,c);}}coutsendl;return0;}