每日一题|字符迁移【算法赛】|字符数组+前缀和+差分

每日一题|字符迁移【算法赛】

字符迁移

心有猛虎,细嗅蔷薇。你好朋友,这里是锅巴的C\C++学习笔记,常言道,不积跬步无以至千里,希望有朝一日我们积累的滴水可以击穿顽石。

字符迁移

注意
预习知识:前缀和+差分

实践代码

c 复制代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
#define INF 0x3f3f3f3f
#define PII pair<int,int>
const int N = 1e6+10;
const int mod = 1e9+7;
int a[N],b[N];
char c[N];
void solve(){
    int n,q;cin>>n>>q;
    string s;cin>>s;
    for(int i=1;i<=n;i++){
        a[i]=s[i-1]-'a';
        b[i]=a[i]-a[i-1];//差分数组
    }
    while(q--){
        int l,r,k;cin>>l>>r>>k;
        /*差分的关键一步*/
        b[l]+=k;
        b[r+1]-=k;
    }
    for(int i=1;i<=n;i++) a[i]=a[i-1]+b[i];//前缀和
    for(int i=1;i<=n;i++) {c[i]=(a[i])%26+'a';cout<<c[i];}//右移且在26个小写字母中循环
}
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout<<fixed<<setprecision(2);//保留两位小数
    int t=1;
    //cin>>t;
    while(t--){
        solve();
    }
    return 0;
}

心有猛虎,细嗅蔷薇。再见了朋友~

相关推荐
霍格沃兹测试开发学社测试人社区几秒前
软件测试学习笔记丨Flask操作数据库-数据库和表的管理
软件测试·笔记·测试开发·学习·flask
可均可可6 分钟前
C++之OpenCV入门到提高004:Mat 对象的使用
c++·opencv·mat·imread·imwrite
今天我又学废了17 分钟前
Scala学习记录,List
学习
幸运超级加倍~21 分钟前
软件设计师-上午题-16 算法(4-5分)
笔记·算法
白子寰28 分钟前
【C++打怪之路Lv14】- “多态“篇
开发语言·c++
yannan2019031328 分钟前
【算法】(Python)动态规划
python·算法·动态规划
埃菲尔铁塔_CV算法30 分钟前
人工智能图像算法:开启视觉新时代的钥匙
人工智能·算法
EasyCVR31 分钟前
EHOME视频平台EasyCVR视频融合平台使用OBS进行RTMP推流,WebRTC播放出现抖动、卡顿如何解决?
人工智能·算法·ffmpeg·音视频·webrtc·监控视频接入
linsa_pursuer32 分钟前
快乐数算法
算法·leetcode·职场和发展
小芒果_0133 分钟前
P11229 [CSP-J 2024] 小木棍
c++·算法·信息学奥赛