Codeforces673C Bear and Colors(枚举区间)
来源:互联网 发布:怎样在淘宝网卖闲置品 编辑:程序博客网 时间:2024/06/07 03:58
Bear Limak has n colored balls, arranged in one long row. Balls are numbered1 through n, from left to right. There aren possible colors, also numbered 1 through n. The i-th ball has color ti.
For a fixed interval (set of consecutive elements) of balls we can define a dominant color. It's a color occurring the biggest number of times in the interval. In case of a tie between some colors, the one with the smallest number (index) is chosen as dominant.
There are non-empty intervals in total. For each color, your task is to count the number of intervals in which this color is dominant.
The first line of the input contains a single integer n (1 ≤ n ≤ 5000) — the number of balls.
The second line contains n integers t1, t2, ..., tn (1 ≤ ti ≤ n) whereti is the color of thei-th ball.
Print n integers. The i-th of them should be equal to the number of intervals where i is a dominant color.
41 2 1 2
7 3 0 0
31 1 1
6 0 0
In the first sample, color 2 is dominant in three intervals:
- An interval [2, 2] contains one ball. This ball's color is2 so it's clearly a dominant color.
- An interval [4, 4] contains one ball, with color2 again.
- An interval [2, 4] contains two balls of color 2 and one ball of color 1.
There are 7 more intervals and color 1 is dominant in all of them.
题意:已知一串数字,每种数字代表一种颜色,如果一个区间[i,j]中, ai颜色出现次数最多或者有和ai出现次数一样多的颜色但是颜色编号都比ai大,那么ai就是这个区间的领导颜色,统计各种颜色领导的区间数量。
思路:枚举所有的区间,维护最大值那个颜色,当出现新的最大值时,作出更改。
#include <bits/stdc++.h>using namespace std;#define maxn 5005int cnt[maxn];int dom[maxn];int a[maxn];int main(){ int n, i, j, best; scanf("%d", &n); for(i = 1;i <= n;i++){ scanf("%d", &a[i]); } for(i = 1;i <= n;i++) { memset(cnt, 0, sizeof cnt); best = a[i]; dom[best]++; cnt[a[i]]++; for(j = i+1;j <= n;j++) { cnt[a[j]]++; if(cnt[a[j]] > cnt[best]){ dom[a[j]]++; best = a[j]; } else if(cnt[a[j]] == cnt[best]&&a[j] < best){ dom[a[j]]++; best = a[j]; }else dom[best]++; } } for(i = 1;i <= n;i++) printf("%d%c", dom[i], i==n?'\n':' ');}
- Codeforces673C Bear and Colors(枚举区间)
- Codeforces 673C Bear and Colors【暴力枚举】
- codeforce之 Bear and Colors
- CodeForces 673C Bear and Colors
- CodeForces 673C - Bear and Colors(模拟)
- 【Codeforces Round #351 Div. 2】 673C Bear and Colors
- CodeForces 643 A.Bear and Colors(水~)
- Codeforces E. Bear and Contribution(枚举维护)
- CF_318_Div.2 Bear and Elections(二分||暴力枚举)
- Codeforces 679C Bear and Square Grid(枚举 标记)
- Codeforces Round #318 (Div. 2) A - Bear and Elections 模拟暴力枚举
- IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2)-C - Bear and Up-Down-暴力枚举
- codeforces 385d bear and floodlight【状压DP之暴力枚举】
- Bear and Raspberry
- codeforces Bear and Raspberry
- Bear and Raspberry
- A. Bear and Raspberry
- B. Bear and Strings
- 完全弄懂JavaScript中的this
- nginx 菜鸟入门一
- 5.5 编写一个程序, 对于二维数组 b[2][3]={{1,2,3},{4,5,6}}, 验证*(*(b+i)+j)、 *(b[i]+j)、 (*(b+i))[j]与 b[i][j]是相同的。
- hdu 4786 Fibonacci Tree 思路
- 数据基本类型和Integer、String之间的转换
- Codeforces673C Bear and Colors(枚举区间)
- Java Web访问Linux的Mysql
- glog
- Linux第二弹
- 【Mongodb】morphia与spring结合使用详解
- Android之简易天气预报小应用(xml解析练手)
- 优秀的第三方库
- UVA1034423 out of 5
- median-of-two-sorted-arrays