CF. Mark and His Unfinished Essay

对于巨长的字符串复制后进行查询可以逐层向上推导前一次复制所在的位置,复制前所在的位置等于复制的字符串在当前字符串的左端点减去复制的字符串在没有复制之前的字符串左端点的位置

#include<bits/stdc++.h>
using namespace std;
#define x first
#define y second
const int N = 2e5 + 10;
typedef long long LL;
LL l[N], r[N], lc[N], rc[N];
int main()
{
  int t;
  cin >> t;
   while(t --)
   {
     int n, k , c;
     cin >> n >> k >> c;
     string s;
     cin >> s;
     LL len = s.size();
     for(int i = 1; i <= k; i ++)
     {
       cin >> l[i] >> r[i];
       
       LL tp = r[i] - l[i] + 1;
       lc[i] = len + 1, rc[i] = lc[i] + tp - 1;
       len += tp;
     }
     
     while(c --)
     {
       LL q;
       cin >> q;
       for(int i = k; i >= 1; i --)
       {
         if(q >= lc[i] && q <= rc[i])
         {
           q -= lc[i] - l[i];
           
         }
        
       }
      cout << s[q - 1]<< endl;
       
     }
   }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 14:00
林子大了什么鸟都有啊,我觉得我说的已经很客气了,阴阳谁呢
牛客62656195...:应该不是阴阳吧?你第一次注册的时候boss就说你是牛人
点赞 评论 收藏
分享
Twilight_m...:表格简历有点难绷。说说个人看法: 1.个人基本情况里好多无意义信息,什么婚姻状况、健康状况、兴趣爱好、户口所在地、身份证号码、邮政编码,不知道的以为你填什么申请表呢。 2.校内实践个人认为对找工作几乎没帮助,建议换成和测开有关的项目,实在没得写留着也行。 3.工作经历完全看不出来是干什么的,起码看着和计算机没啥关系,建议加强描述,写点你在工作期间的实际产出、解决了什么问题。 4.个人简述大而空,看着像AI生成,感觉问题最大。“Python,C,C++成为我打造高效稳定服务的得力工具”、“我渴望凭借自身技术知识与创新能力,推动人工智能技术的应用发展,助力社会实现智能化转型”有种小学作文的美感。而且你确定你个人简述里写的你都会嘛?你AI这块写的什么“深入研究”,发几篇顶会的硕博生都不一定敢这么写。而且你AI这块的能力和软测也完全无关啊。个人简述建议写你对哪些技术栈、哪些语言、哪些生产工具的掌握,写的有条理些,而且最好是和测开强相关的。
点赞 评论 收藏
分享
代码飞升:别用口语,后端就写后端,前端就写前端,最后别光后悔
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务