CodeForces 651 B.Beautiful Paintings (贪心)
2017-02-27 16:49
357 查看
Description
给一长度为n的序列,对其重排,使得满足a[i+1]>a[i]的i最多
Input
第一行一整数n表示序列长度,之后n个数a[i]表示该序列(1<=n<=1000,1<=a[i]<=1000)
Output
对该序列适当重排后使得满足a[i+1]>a[i]的i最多
Sample Input
5
20 30 10 50 40
Sample Output
4
Solution
贪心,显然为构造最优解需要将该序列分成数量最少的单增子段,而单增子段的数量必然大于等于出现次数最多的数的个数cnt,那么除了前一个单增子段末尾和后一个单增子段起始的这cnt-1对数不满足之外,任意两个相邻元素都满足a[i+1]>a[i]的条件,故答案<=n-1-(cnt-1)=n-cnt,故根据出现次数最多的元素为基准构造这些单增子段最优,答案就是n-cnt
Code
给一长度为n的序列,对其重排,使得满足a[i+1]>a[i]的i最多
Input
第一行一整数n表示序列长度,之后n个数a[i]表示该序列(1<=n<=1000,1<=a[i]<=1000)
Output
对该序列适当重排后使得满足a[i+1]>a[i]的i最多
Sample Input
5
20 30 10 50 40
Sample Output
4
Solution
贪心,显然为构造最优解需要将该序列分成数量最少的单增子段,而单增子段的数量必然大于等于出现次数最多的数的个数cnt,那么除了前一个单增子段末尾和后一个单增子段起始的这cnt-1对数不满足之外,任意两个相邻元素都满足a[i+1]>a[i]的条件,故答案<=n-1-(cnt-1)=n-cnt,故根据出现次数最多的元素为基准构造这些单增子段最优,答案就是n-cnt
Code
#include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<vector> #include<queue> #include<map> #include<set> #include<ctime> using namespace std; typedef long long ll; #define INF 0x3f3f3f3f #define maxn 1111 int n,a,num[maxn]; int main() { while(~scanf("%d",&n)) { memset(num,0,sizeof(num)); for(int i=1;i<=n;i++) { scanf("%d",&a); num[a]++; } sort(num+1,num+1001); int ans=n-num[1000]; printf("%d\n",ans); } return 0; }
相关文章推荐
- codeforces 651B B. Beautiful Paintings(贪心JAVA代码)
- 【CodeForces 651B】Beautiful Paintings 排序+贪心
- 【codeforces 651B - Beautiful Paintings 】 greedy(贪心)
- CodeForces 651 A.Joysticks(贪心)
- CodeForces 442C Artem and Array(贪心)
- codeforces 798C - Mike and gcd problem 贪心
- codeforces 480B B. Long Jumps(贪心)
- [Codeforces 484A]Bits(拆位贪心)
- 【CodeForces 729C】【二分+贪心】Road to Cinema 题解
- codeforces 651A A. Joysticks
- CodeForces 3D Least Cost Bracket Sequence (贪心+优先队列)
- CodeForces - 651B 一个简单的思考题,暴力也能过
- codeforces 767B The Queue【贪心】
- codeforces-500【B思维】【C贪心】
- CodeForces 261A Maxim and Discounts(贪心)
- codeforces 472C Design Tutorial: Make It Nondeterministic 贪心
- codeforces 613B B. Skills(枚举+二分+贪心)
- codeforces 579D D. "Or" Game(前后缀+贪心)
- Codeforces 719C Efim and Strange Grade【贪心】
- Codeforces 149C Division into Teams【贪心】