【Codeforces Global Round 23】B. Rebellion
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相关推荐
- codeforces global round 23
constest :codeforces global round 23 contest time:2022.10.16 contest grade: 2800 contest rating chan ...
- Codeforces Global Round 23 C. Permutation Operations
赛时随便写了个做法,看standing,发现很多人的做法也是很奇特 赛后看了官方题解..翻译下 题意: 每次可以给一个任意的后缀里的所有数 + i +i +i 执行n次. 使得逆序对最少. 思路: t ...
- Codeforces Global Round 23 E CF1746E Joking (Hard Version)
题意 互动题 你需要猜一个数 范围e5 询问在不在数集中 限最多52次 猜测是不是某个数 最多两次 其中询问反馈你的答案未必是对的,只保证2次连续询问至少有一次是对的 猜测都是对的 思路 对同一个数集 ...
- Codeforces Global Round 1 晕阙记
Codeforces Global Round 1 晕阙记 我做这场比赛的时候晕得要死.做这三道题做太久了,rating涨不起来啊! A 如果愿意的话你可以看做是膜2意义下的运算,写快速幂等各种膜运算 ...
- Codeforces Global Round 3
Codeforces Global Round 3 A. Another One Bites The Dust 有若干个a,有若干个b,有若干个ab.你现在要把这些串拼成一个串,使得任意两个相邻的位置 ...
- Codeforces Global Round 14 F. Phoenix and Earthquake 思维 + 并查集
传送门 文章目录 题意: 思路: 题意: 给你nnn个点,mmm条边,限制xxx,每个点都有沥青aia_iai,定义合并两个点即两点之间有边且au+av≥xa_u+a_v\ge xau+av≥x ...
- Codeforces Global Round 1
Codeforces Global Round 1 题解:The Editorial of the First Codeforces Global Round A:其实mod 2计算一下就行了 B:删 ...
- 【CodeForces 332B --- Maximum Absurdity】递推
[CodeForces 332B --- Maximum Absurdity]递推 题目来源:点击进入[CodeForces 332B - Maximum Absurdity] Description ...
- 【CodeForces 1255D --- Feeding Chicken】
[CodeForces 1255D --- Feeding Chicken] Description Long is a huge fan of CFC (Codeforces Fried Chick ...
最新文章
- Android自带语音播报+讯飞语音播报封装(直接用)
- 【Linux】【服务器】 CentOS7下安装Redis详细过程步骤
- pythoncharm快捷键_Pycharm最常用的快捷键及使用技巧
- php 代码如何使用,PHP如何使用strval()函数?用法和代码示例
- Blazor University (1)介绍 - 什么是 Blazor?
- java将mysql数据写入到txt_java 追加写入数据到txt
- Mac上的一位数密码你知道吗
- STM32H743+CubeMX-ADC(16bit分辨率)+DMA采样三路模拟量,硬件过采样器实现1024倍过采样
- 写好数据分析报告,数据的思路非常重要
- Java使用循环创建多个线程
- SpringBoot23 分模块开发
- Linux安装samba服务
- 绝地求生 java 雷达透视_绝地求生jar雷达透视辅助
- 如何实现向APP推送消息
- Spark Streaming系列-1、什么是Spark Streaming?
- excel批量将数字转为文本格式
- 大屏可视化低代码开发平台网址
- frameset和frame的使用方法
- java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.gaobo.e5community/com.g
- 洛谷P5804 [SEERC2019]Absolute Game