首页 > 其他分享 >8.10第四周周六学习总结

8.10第四周周六学习总结

时间:2024-08-10 11:41:48浏览次数:7  
标签:总结 string ss xx int length 周六 字符串 8.10

1 vj团队12补题

不错的一个题解
https://blog.fishze.com/archives/301

1)字符串变化(模拟+找规律)

题目:
给定一个字符串, 给定一个特定操作方式: 该字符串前半段 + 该字符串自己 + 该字符串后半段求next(每一个字符向后移动一个), 组成一个新字符串, 求经过10^100次这样的操作后, 新字符串的后m位是什么

点击查看代码
#include <iostream>

using namespace std;

const int MOD = 16;

string getNext(string s) {
    string res;
    for(auto ss : s) {
        res += ss == 'z' ? 'a' : (char)(ss + 1);
    }
    return res;
}
//一直变换直到后缀>=m,这样取m就不会在前面取了
//AB 
//A AB B1 
//AA AA,BB1 B1B2  变换几次使得一半的长度>m,后面不断变化,因为是直接取后一半到最后,所以直接考虑这段取m的变化
//AAAA AAAA,BB1B1B2 B1B2B2B3
int main() {
    int n, m;
    string s;
    cin >> n >> m >> s;
    string ss = s.substr(s.length() / 2, s.length() / 2);//取的位置和取的长度
    int cnt = 0;
    while(1) {
        if(ss.length() >= m) {
            break;
        }
        cnt ++;//记录变化了几次
        ss = ss + getNext(ss);//字符串拼接  B-BB1-BB1B1B2
    }
    int xx = MOD - (cnt % 26);//还需变化几次,现在需要对s变化xx次
   /* (a + b) % m = ((a % m) + (b % m)) % m (加法的求余分配律)
      (a * b) % m = ((a % m) * (b % m)) % m (乘法的求余分配律)*/
    if(xx < 0) {
        xx += 26;
    }
    for(int i = ss.length() - m; i < ss.length(); i++){//取后m位
        int now = ss[i] + xx;
        if(now > 'z') {
            now -= 26;
        }
        cout << (char)now;
    }
    cout << endl;
    return 0;
}

标签:总结,string,ss,xx,int,length,周六,字符串,8.10
From: https://www.cnblogs.com/hoshino-/p/18352096

相关文章

  • 8.9考试总结
    谢丰泽8.9考试总结今天题比较可做。T1简单,随便贪了贪就过了。考虑将出现过的数合并,按出现次数排序,从大向小贪,每次从后往前取即可。T2没想法,打了个爆搜+性质就走了,赛后发现性质挂分了。赛时感觉是轮廓线DP,但不会写。猜测有效状态不多,将不会受影响的点分离,搜索,在随机数据下表......
  • 第五周报告总结
    本周打完rk感觉还是有很多不足,比赛红温,没有打好,自己的问题赛后补题,惊奇发现,基本上都是一发就通过了,赛时无论如何都有问题,还是心脏不够强大然后本周还打了两场牛客多校,一场杭电,一场cf牛客挺恶心的两场打下来,难度还是很大,有点困难杭电还行,自己写出了一道题一发ac了,还不错cf场上......
  • JS中原型相关的十个知识点总结
    JavaScript中的原型(Prototype)是理解对象和继承机制的核心概念。以下是我对JavaScript原型相关知识点的总结和详细讲解:1.原型对象(PrototypeObject)在JavaScript中,每个对象都有一个关联的对象,这个关联的对象称为“原型”。当你尝试访问一个对象的属性时,如果该对象本身......
  • cdq分治总结
    \(cdq\)分治是一种离线分治算法,可以将动态问题改变为静态问题,不适用于强制在线。其实现时通常将需要进行的操作存进一个结构体,然后对这些操作进行分治。打\(cdq\)分治时一个直观的感受就是很好想思路,但就是不知道怎么打。。。它一共有三个需要干的1找到范围中点\(mid\)......
  • MR开发恐龙项目总结
    在拥有权限的情况下读取安卓和windows的任意文件路径TArray<FString>ULoadGallery::GetPngFilesInOculusDirectory(){TArray<FString>FilesArray;IFileManager&FileManager=IFileManager::Get();FStringDirectoryPath;#ifPLATFORM_ANDROIDDi......
  • 十大java开发框架总结,微服务开发必备!
     提起java开发框架,大部分工程师可能主要使用的是ssh三件套,在当前微服务作为开发主流的时代,我们有必要也了解下其他java开发框架。1.SpringBoot SpringBoot是当前Java开发框架的首选,几乎是行业标准了。由轻量级Java开发框架spring进化而来。一直被模仿,从未被超越。2. Quar......
  • SpreadJS 个人学习及项目遇到的一些问题的总结
    最近公司有SpreadJS的部分,刚接触挺迷茫的,因为这个文档有点不清晰,有些属性啥的,看到跟没看一样,他没有那种效果图例说明,属性说的就很简单,看了大半天感觉没看出来啥,等开始做的时候就各种问题,感谢有同事替我们负重前行,趟过了很多的坑,这导致比预期入手好很多,目前只是算简单的上手,所以就......
  • C# & Unity 面向对象补全计划 七大原则 之 合成/聚合复用原则( CARP)难度:☆☆☆☆ 总结:
    本文仅作学习笔记与交流,不作任何商业用途,作者能力有限,如有不足还请斧正本系列作为七大原则和设计模式的进阶知识,看不懂没关系请看专栏:http://t.csdnimg.cn/mIitr,查漏补缺1.合成/聚合复用原则(CARP)        合成/聚合复用原则就是在一个新的对象里面使用一些已有的......
  • Hadoop学习总结
    在Hadoop学习的过程中,我进入了更具挑战性的阶段——编写和优化MapReduce任务。MapReduce是一种处理大规模数据集的编程模型,它将复杂的数据处理任务分解为两个主要阶段:Map(映射)和Reduce(归约)。通过这一过程,我不仅能解决实际的数据处理问题,还能在分布式环境中高效地执行计算任务。编......
  • 8.9第四周周五学习总结
    1最小生成树(讲课)【金山文档|WPS云文档】最小生成树https://kdocs.cn/l/cnDfoEEJS694prim模板(不常用)#include<bits/stdc++.h>usingnamespacestd;//#defineintlonglongconstintN=1100;constintmod=998244353;vector<int>v[N];#defineINF0x3f3f3f3f......