码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 小白月赛96


    小白月赛96

      • a最小胜利数
      • b最小操作次数
      • c最多数组数量

    a最小胜利数

    最小胜利数

    1. 只要有一个超过6次,那么便不可能反败为胜
    2. 求出两位选手的题目差+1,即为反败为胜的条件

    ac code

    #include<iostream>
    using namespace std;
    int main(){
        string a;cin>>a;int alen=a.length();
        string b;cin>>b;int blen=b.length();
        if(alen==6||blen==6)cout<<"-1";
        else{
            int res;
            res=abs(alen-blen)+1;
            cout<<res;
        }
        return 0;
    }
    

    b最小操作次数

    最小操作次数

    这题分情况讨论吧

    1. 如果0,1的数量不一样的话,一次操作即可全部转换
    2. 如果全为0或者全为1的话,就不需要任何操作,答案为0
    3. 如果0和1的个数相等的话,那么就需要两次,比如010101010101,需要先把任何一段变成1或者0,这样全部序列中0和1的数量就不对等了,便可得到答案,总次数为2次

    ac code

    #include<iostream>
    using namespace std;
    int main(){
        int n;cin>>n;
        string a;cin>>a;
        int tmp1=0,tmp2=0;
        for(int i=0;i<a.length();i++){
            if(a[i]=='0')tmp1++;
            else tmp2++;
        }
        if(tmp1==tmp2){
            if(a.length()==2)cout<<"-1";
            else
            cout<<"2";
        }
        else if(tmp1==0||tmp2==0){
            cout<<"0";
        }
        //cout<
        else cout<<"1";
        return 0;
    }
    

    c最多数组数量

    最多数组数量

    1. 做法是双指针+前缀和,前缀和处理的目的是方便每次求和,双指针用来快速求符合的条件
    2. i,j作为指针,从1,2分别开始向后走,当i,j区间内的和大于两边区间的和的时候,就视为一种情况,那么这时候j一直向后延申,条件也一直成立,那么res=n-2-j,2是因为下标为0且不能与数组结尾重合

    ac code

    #include<iostream>
    using namespace std;
    
    const int N=1e6;
    int arr[N];
    int res;
    int main(){
        int n;cin>>n;
        //这里首先处理一下前缀和
        for(int i=0;i<n;i++){
            cin>>arr[i];
            arr[i]+=arr[i-1];
        }
        //接下来是双指针
        for(int i=0,j=1;i<n-1&&j<n-1&&i<j;){
            int tmp1=arr[i];
            int tmp2=arr[j]-arr[i];
            int tmp3=arr[n-1]-arr[j];
            //cout<
            //cout<
            if(tmp2>tmp1&&tmp2>tmp3&&i<j){
                res++;
                res+=(n-2-j);
                //cout<
                i++;
                //cout<
            }
            else j++;
        }
        cout<<res;
        return 0;
    }
    
  • 相关阅读:
    服装界BOM的管理方式
    串口通信之计算校验和
    无序列表 – ul - li
    复变函数 知识结构
    抗真菌新策略:抑制线粒体磷酸盐转运 | MedChemExpress
    聊聊(微服务之SpringCloud+Boot共11章节)看看你会多少?
    Unity的WebGL平台动态加载glb/gltf测试
    酒石酸盐晶体是优质葡萄酒的一个特征?
    C4 数据集基本信息速览
    宝塔面板如何设置301重定向,为什么网站要设置重定向?
  • 原文地址:https://blog.csdn.net/2302_80729149/article/details/139708997
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号