小美的游戏 小美的01串翻转

简介: 小美的游戏 小美的01串翻转

小美的游戏

题目描述

运行代码
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int main() {
  long long int a,b,sum=0,n=1e9+7;
  cin>>a>>b;    
  long long int s[N];
  for(int i=0;i<a;i++){
    cin>>s[i];
  }
    sort(s,s+a); 
    for(int i=a-1;i>a-b-1;i--){
        s[i-1]*=s[i]%n; 
        s[i]=1; 
    } 
    for(int i=0;i<a;i++){
        sum+=s[i]%n; 
    }
  sum=sum%n;
  cout<<sum; 
}
代码思路
  • 排序:使用 sort(s, s+a) 对数组 s 进行升序排序。这是关键步骤之一,因为代码后续逻辑依赖于排序后的数组顺序。
  • 计算乘积和:
    从数组尾部开始(即最大元素开始),逆序遍历数组。因为乘积和只关心连续子数组,所以从大到小乘可以避免重复计算。对于每个 i(从 a-1a-b),执行以下操作:
  • s[i] = 1:将当前元素置为1,以避免它在下一轮迭代中再次参与乘法(因为乘积计算已经完成)s[i-1] *= s[i] % n:将当前元素与前一个元素的乘积对 n 取模,然后存回 s[i-1]。这一步实际上是在计算一个降序子数组中连续 b 个元素的乘积,然后将乘积累加到前面的元素上,同时避免了不必要的重复计算。
  • 累加并取模:遍历整个数组 s[],累加所有元素的值到 sum,每次累加后对 n 取模,确保结果不会溢出。

小美的01串翻转

题目描述

运行代码

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int p[N],c,a[N],b[N];
int main(){
    char s;
    while(cin>>s){ 
        if(s=='1')p[++c]=1;
        else if(s=='0')p[++c]=0;
        else break;
    }
    for(int i=1;i<=c;i++){
        a[i]=a[i-1];
        b[i]=b[i-1];
        if(p[i]==i%2)a[i]++;
        else b[i]++;
    }
    int sum=0;
    for(int i=1;i<=c;i++){
        for(int j=i;j<=c;j++){
            sum+=min(a[j]-a[i-1],b[j]-b[i-1]);
        }
    }
    cout<<sum;
    return 0;
}

代码思路

  1. 读取输入:循环读取字符直至遇到字符 '2' 结束,遇到 '1' 时在数组 p[] 中存储 1,遇到 '0' 时存储 0。
  2. 计算前缀和:遍历 p[],计算两个前缀和数组 a[]b[]
  • b[i] 类似地,记录位置为偶数且字符为 '0' 的累计数量。注意,这里的初始化 a[i]=a[i-1]b[i]=b[i-1] 实际上未改变前缀和的正确计算,因为正确初始化应直接设置为0。
  • a[i] 记录从序列开头到当前位置 i(包括 i)为止,位置为奇数且字符为 '1' 的累计数量。
  1. 统计子串:双重循环遍历所有子串范围,计算满足条件的子串个数。
    对于每个子串 [i, j],计算 '1' 的数量和奇数位置数量之差与 '0' 数量和偶数位置数量之差的较小值,累加到 sum 中。这里用到了 min(a[j]-a[i-1], b[j]-b[i-1]) 来间接计算子串满足条件的数量,但实际上表达式逻辑可能与问题描述不符,正确逻辑应是检查奇偶性与字符值的一致性。
目录
相关文章
|
7月前
腾讯一面之气球游戏
腾讯一面之气球游戏
33 0
|
机器学习/深度学习 人工智能 自然语言处理
当被大模型输入技术内功,数字人「文画两开花」,还在手机里随时陪你聊天
当被大模型输入技术内功,数字人「文画两开花」,还在手机里随时陪你聊天
264 0
|
机器学习/深度学习 人工智能 自然语言处理
当被大模型输入技术内功,数字人「文画两开花」,还在手机里随时陪你聊天(2)
当被大模型输入技术内功,数字人「文画两开花」,还在手机里随时陪你聊天
224 0
|
SQL 人工智能 算法
芯片“自”造:智能音箱从支点到拼图的进阶史
智能音箱这次把炮火打到了“芯片”战场。
芯片“自”造:智能音箱从支点到拼图的进阶史
|
安全
选对防蓝光眼镜,你需要看“清”这些套路!
随着电脑、手机、平板等数码产品渗透到我们生活,人们被有害蓝光的侵害也愈发严重。公司不近视的同事戴起了防蓝光眼镜,儿童防蓝光眼镜也成了许多微商的热门推荐。周围的信号都告诉我这个IT男,是时候配一幅防蓝光眼镜了……而防蓝光眼镜到底能防掉多少蓝光,对眼睛能有多少保护?如何选择一幅适合自己的防蓝光眼镜?相信许多消费者都会有这种疑问。
369 0
选对防蓝光眼镜,你需要看“清”这些套路!
|
数据安全/隐私保护
2021爱智先行者—我的第一个爱智小游戏之切方块(02)
2021爱智先行者—我的第一个爱智小游戏之切方块
134 0
2021爱智先行者—我的第一个爱智小游戏之切方块(02)
|
边缘计算 人工智能 JavaScript
2021爱智先行者—我的第一个爱智小游戏之切方块(01)
2021爱智先行者—我的第一个爱智小游戏之切方块
241 0
2021爱智先行者—我的第一个爱智小游戏之切方块(01)
“云”上必有一战,商业诱惑的第一颗棋子就是游戏
随着云计算技术和5G的推动和发展,“云游戏”这一模式在特定游戏内容、广告、教育等领域开花亦不是不可能的事情。
380 0
左手握技术,右手握需求,但声纹识别依旧当不了“独行侠”
作为生物识别技术的一种,声纹识别是“低调”的,也是经受磨难较多的。
415 0