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

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

字符迁移

心有猛虎,细嗅蔷薇。你好朋友,这里是锅巴的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;
}

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

相关推荐
无小道35 分钟前
C++——列表初始化
c++·列表初始化
小哈里43 分钟前
【知识】从学科到实践:自然・工程・社科・人文|算法・研发・产品・品牌设计
程序人生·算法·产品·设计·工程
blueSatchel1 小时前
c++action 编写(ros-humble)
c++·ros2
小π军1 小时前
最大重叠区间数量
数据结构·算法
镜像视界(浙江)科技有限公司2 小时前
《视频孪生之上:二维展示终结,三维空间计算重构城市逻辑》——跨摄像连续表达 × 三角测量厘米级定位 × 动态轨迹建模,构建新一代城市空间
大数据·人工智能·算法·矩阵·音视频·空间计算
泡泡鱼(敲代码中)2 小时前
MySQL基础学习笔记:从数据模型到DDL全掌握
开发语言·数据库·笔记·学习·mysql
a187927218312 小时前
【算法】双指针与滑动窗口(二):滑动窗口——吃进、判定、吐出
算法·leetcode·双指针·滑动窗口·原理·模板·算法讲解
铭哥的编程日记2 小时前
从一道 LeetCode Hard 到吃透一类题:加权区间调度「排序 + 二分 + DP」
算法·leetcode·职场和发展
江湖人称菠萝包2 小时前
【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter4-进程
windows·笔记
老赵的博客3 小时前
c++面试之从虚函数表到Rtti一次性讲清楚
c++·qt