7 条题解
-
1
题目大意
给一个长度为 的序列 ,每次操作可以选择一个整数 ,在 的情况下删除 并修改 ,求共可以进行几次操作。
思路
通过观察样例可以发现,当序列中的每一项都相等时,是无法进行操作的,因为没有任意 满足 ,此时答案为0。
此外,只要有一个与其它项不同的项,那么我们可以操作到序列中仅有一个项,在这里放个图:
可见其中 个数都被删除了,则结果为 。
那么我们可以愉快地写代码啦!代码实现
#include<bits/stdc++.h> using namespace std; int main(void) { int n,a[100005]= {0},b,flag=1; //开的空间比数据范围大5是个好习惯 cin>>n>>a[1],b=a[1]; for(int i=2; i<=n; i++) { cin>>a[i]; if(a[i]!=b)flag=0; } if(flag)cout<<0; else cout<<n-1; return 0; }
信息
- ID
- 21
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 2
- 标签
- 递交数
- 1499
- 已通过
- 386
- 上传者