首页 > 其他分享 >B. Swap and Delete

B. Swap and Delete

时间:2024-04-22 23:23:31浏览次数:20  
标签:-- sum1 else Swap sum0 Delete

B. Swap and Delete
想到了用1和0的数量判断交换几次后再之后全部删除,
但是想到二重暴力会超时。
看了题解才发现可以用计数判断哪个多一点,多的全部删除

#include <iostream>
#include <string>
using namespace std;



void solve()
{
    string s;
    cin >> s;
    int n = s.size();
    int sum0 = 0, sum1 = 0;
    for (auto i : s)
    {
        if (i == '0') sum0 ++;
        else sum1 ++;
    }
    for (auto i : s)
    {
        if (i == '0') 
        {
            if (sum1) sum1 --;
            else break;
        }
        else 
        {
            if (sum0) sum0 --;
            else break;
        }
    }
    cout << sum1 + sum0 << endl;
}


int main()
{
    int t;
    cin >> t;
    while (t -- )
    {
        solve();
    }
    return 0;
}

标签:--,sum1,else,Swap,sum0,Delete
From: https://www.cnblogs.com/isomer/p/18151802

相关文章

  • delete/声明语句/赋值操作
    deletevarx1={a:1}x1=>{a:1}deletex1=>falsewindow.x2={a:1}x2=>{a:1}deletex2=>truevar声明的全局变量和使用let或const声明的全局变量都不能被delete删除,因为它们都是不可配置的。只有直接在全局对象上设置的属性才可以被delete成功删除。delete运......
  • void swap(double& val1,double& val2); 这是什么意思
    voidswap(double&val1,double&val2);这是什么意思?定义了一个叫做swap的函数,它接受两个双精度数的引用作为参数在C++中,&符号用于表示引用。通过传递引用作为参数,函数可以直接修改传递给它的参数的值,而不是创建参数的副本。通过传递引用而不是传递参数的副本,可以避免不必......
  • 重载全局的new和delete
    重载全局的new和delete::operatornew::operatornew[]->不可以被声明与同一个namespace之内new会执行三个动作:->之前的代码提到:new本身会开辟内存空间.所以声明方法需要一个size_tsize的参数inlinevoid*operatornew(size_tsize){}::operatordelete::......
  • 关于post、get、put、delete的区别
    post和put的区别put和post操作都是向服务器端发送数据,但是put是幂等的,而post是非幂等的。所谓幂等,即多次发送同一个请求时候,产生的结果是一样的就是幂等性原则,这是为了当网络出现延迟等,服务器(客户端)之间发送请求没有收到回应,再重新发一次,实际上另一端已经接收到了第一次的请求,接......
  • MySQL 中 DELETE 语句中可以使用别名么?
    1情境deletefromtest1t1wherenotexists(select1fromtest2t2wheret1.id=t2.id);以上sql报错:ERROR1064(42000):YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtouse......
  • Linux云服务器文件删除恢复方法命令extundelete工具testdisk使用
    如果不小心删除了系统盘的文件,尤其是使用了rm-rf*,请立即停止对磁盘的写入,并且使用数据恢复软件进行恢复(下文有详细的步骤)。立即停止对磁盘的写入实际情况可能没那么容易。服务器可能是云服务器也可能是物理机,下面是可能的情况以及操作方法:1、云服务器:立即去控制台创建快照(防......
  • 使用dd命令创建swap交换分区
    [root@k-DevOps-10-13~]#ddif=/dev/zeroof=/data/swapfilebs=1Mcount=3072030720+0recordsin30720+0recordsout32212254720bytes(32GB)copied,148.272s,217MB/s[root@k-DevOps-10-13~]#chmod666/data/swapfile[root@k-DevOps-10-13~]#mkswap/......
  • 内存管理new and delete(C++)
        在本篇中,将会较为详细的介绍在Cpp中的两个新操作符new和delete,将会介绍其中的底层原理,以及这两个操作符的使用方法。其中还介绍了new/delete操作符使用的细节,还扩展了一些有关定位new表达式的知识点。最后总结了malloc/free与new/delete的区别。目......
  • CF1913B Swap and Delete 题解
    翻译给定一个字符串\(s\),你有两种操作:删除一个字符。(花费一枚金币)交换某两个字符的位置。(不花费金币)假设经过若干次操作后得到的字符串为\(t\)。\(t\)是好的当且仅当对于任意的\(i\)(\(1\lei\le|t|\),\(|t|\)为字符串\(t\)的长度),均满足\(t_i\nes_i\)。(\(s\)是......
  • c++内存管理(new、delete)
    目录前言c/c++中程序内存区域划分c++函数之new的使用方法第一个场景:对任意类型动态开辟一个类型大小的空间第二个场景:对任意类型动态开辟多个类型大小的空间第三个场景:在第一、二场景下还需要对数据初始化c++函数之delete的使用方法第一个场景:对任意开辟一个类型大小......