Codeforces Global Round 23中B. Rebellion
Codeforces比赛记录

文章目录

  • 题目链接:
    • 一、B. Rebellion
      • 题目意思:
      • 上思路:
  • 总结

B. Rebellion

题目链接:

一、B. Rebellion

题目意思:

一个数组内全是0和1,你有两种操作:1)把ai加到aj上2)把ai删除。
现在问你为了让这个数组递增,最少可以进行几次操作。

上思路:

我们先统计数组中0的个数cnt,然后统计数组的前cnt个元素中1的个数,1的个数就是我们需要的答案。
为什么?
举个例子:0 1 0 0 1 1 1 0,一共是四个0,那么前四个0中只有一个1,我们把这个1加在最后一个0的位置上即可。
换一种说法,在数组中共有cnt个0,那么如果这些0都在最前面,我们就不用操作了。
如果这些0随机分布,我们把这些0直接删除肯定不行。
因为我们可以把在一群0之间的1加在最后一个位置上,这个样子我们就可以让至少两个位置都变成递增(就可以理解为我们常说的贡献,这种操作的贡献就大)
对于数组的前cnt项来说,我们把分布在这里面的1加在后面0的位置上即可(因为虽然前cnt中除去0就是1,我们把这些1加在后面那些0上面就可以了)。这就是最优的答案。

#include<bits/stdc++.h>
#define ll long long
#define INF 0x3f3f3f3f
#define fi first
#define se second
#define pb push_back
#define db double
#define sc scanf
#define pf printf
using namespace std;
const int maxn = 1e5 + 10;
const int mod = 1e9 + 7;
int n, T;
int main() {cin>>T;while(T--) {cin>>n;vector<int> a(n+1);int cnt = 0, res = 0;for(int i = 1; i <= n; ++i) {cin>>a[i];if(a[i] == 0) cnt++;}for(int i = 1; i <= cnt; ++i) {if(a[i]) res++;}cout<<res<<endl;}
}

总结

数学题,仔细认真分析数据,从小入手,推出答案。

【Codeforces Global Round 23】B. Rebellion相关推荐

  1. codeforces global round 23

    constest :codeforces global round 23 contest time:2022.10.16 contest grade: 2800 contest rating chan ...

  2. Codeforces Global Round 23 C. Permutation Operations

    赛时随便写了个做法,看standing,发现很多人的做法也是很奇特 赛后看了官方题解..翻译下 题意: 每次可以给一个任意的后缀里的所有数 + i +i +i 执行n次. 使得逆序对最少. 思路: t ...

  3. Codeforces Global Round 23 E CF1746E Joking (Hard Version)

    题意 互动题 你需要猜一个数 范围e5 询问在不在数集中 限最多52次 猜测是不是某个数 最多两次 其中询问反馈你的答案未必是对的,只保证2次连续询问至少有一次是对的 猜测都是对的 思路 对同一个数集 ...

  4. Codeforces Global Round 1 晕阙记

    Codeforces Global Round 1 晕阙记 我做这场比赛的时候晕得要死.做这三道题做太久了,rating涨不起来啊! A 如果愿意的话你可以看做是膜2意义下的运算,写快速幂等各种膜运算 ...

  5. Codeforces Global Round 3

    Codeforces Global Round 3 A. Another One Bites The Dust 有若干个a,有若干个b,有若干个ab.你现在要把这些串拼成一个串,使得任意两个相邻的位置 ...

  6. Codeforces Global Round 14 F. Phoenix and Earthquake 思维 + 并查集

    传送门 文章目录 题意: 思路: 题意: 给你nnn个点,mmm条边,限制xxx,每个点都有沥青aia_iai​,定义合并两个点即两点之间有边且au+av≥xa_u+a_v\ge xau​+av​≥x ...

  7. Codeforces Global Round 1

    Codeforces Global Round 1 题解:The Editorial of the First Codeforces Global Round A:其实mod 2计算一下就行了 B:删 ...

  8. 【CodeForces 332B --- Maximum Absurdity】递推

    [CodeForces 332B --- Maximum Absurdity]递推 题目来源:点击进入[CodeForces 332B - Maximum Absurdity] Description ...

  9. 【CodeForces 1255D --- Feeding Chicken】

    [CodeForces 1255D --- Feeding Chicken] Description Long is a huge fan of CFC (Codeforces Fried Chick ...

最新文章

  1. Android自带语音播报+讯飞语音播报封装(直接用)
  2. 【Linux】【服务器】 CentOS7下安装Redis详细过程步骤
  3. pythoncharm快捷键_Pycharm最常用的快捷键及使用技巧
  4. php 代码如何使用,PHP如何使用strval()函数?用法和代码示例
  5. Blazor University (1)介绍 - 什么是 Blazor?
  6. java将mysql数据写入到txt_java 追加写入数据到txt
  7. Mac上的一位数密码你知道吗
  8. STM32H743+CubeMX-ADC(16bit分辨率)+DMA采样三路模拟量,硬件过采样器实现1024倍过采样
  9. 写好数据分析报告,数据的思路非常重要
  10. Java使用循环创建多个线程
  11. SpringBoot23 分模块开发
  12. Linux安装samba服务
  13. 绝地求生 java 雷达透视_绝地求生jar雷达透视辅助
  14. 如何实现向APP推送消息
  15. Spark Streaming系列-1、什么是Spark Streaming?
  16. excel批量将数字转为文本格式
  17. 大屏可视化低代码开发平台网址
  18. frameset和frame的使用方法
  19. java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.gaobo.e5community/com.g
  20. 洛谷P5804 [SEERC2019]Absolute Game

热门文章

  1. 计算机网络-——网络层
  2. 什么是享乐型人格?享乐型人格的职业发展方向
  3. pycharm导入皮肤jar包方式
  4. 初链—区块链混合共识的领航者
  5. Flate压缩(2019.10.23)
  6. java评卷系统_GitHub - Ju5ticeGit/ExamSym: 基于java的考试及阅卷系统
  7. java EasyExcel 的使用
  8. AutoCAD二次开发实现简单的自动编号
  9. 电子货架标签应用浅析(ESL)
  10. html中滚动代码怎么写,网页HTML滚动代码大全(一)