Code Forces 558 B. Amr and The Large Array(水~)
来源:互联网 发布:微信破解密码软件 编辑:程序博客网 时间:2024/06/08 07:42
Description
给一个数组,记数组中出现次数最多的元素出现的次数为这个数组的美丽值,求这个数组长度最短的子数组(要连续),使得该子数组的美丽值与原数组美丽值相等。要求输出子数组的起始和结束位置下标(从1开始)
Input
第一行为一个整数n表示数组长度,第二行n个整数表示该数组
Output
输出子数组的起始及结束下标
Sample Input
6
1 2 2 1 1 2
Sample Output
1 5
Solution
统计每个数字出现的次数及其起始结束位置,对次数排序,次数相同则对结束位置与起始位置的差值排序即可
Code
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;#define maxn 1000005struct node{ int l,r,num,d;}a[maxn];int cmp(node a,node b){ if(a.num!=b.num)//对出现次数排序 return a.num>b.num; if(a.d!=b.d)//对出现的结束位置与起始位置的差值排序 return a.d<b.d; return a.l<b.l;//对出现的起始位置排序 }int main(){ int n; while(scanf("%d",&n)!=EOF) { memset(a,0,sizeof(a)); for(int i=1;i<=n;i++) { int temp; scanf("%d",&temp); if(a[temp].num)//该数已经出现过,更新其出现的结束位置 a[temp].r=i; else//该数未出现过,更新其出现的起始以及结束位置 a[temp].r=a[temp].l=i; a[temp].num++;//该数的出现次数加一 } int k=0; for(int i=0;i<=maxn;i++) if(a[i].num) { a[k].num=a[i].num; a[k].l=a[i].l; a[k].r=a[i].r; a[k].d=a[i].r-a[i].l; k++; } sort(a,a+k,cmp); printf("%d %d\n",a[0].l,a[0].r); } return 0;}
0 0
- Code Forces 558 B. Amr and The Large Array(水~)
- Codeforces 558B Amr and The Large Array(hash)
- B. Amr and The Large Array
- B-codeforces558B-Amr and The Large Array
- CF 558B(Amr and The Large Array-计数)
- Codeforces 558B Amr and The Large Array
- codeforces 558B Amr and The Large Array-yy
- CF 558B Amr and The Large Array
- codeforce 558B Amr and The Large Array 思维题
- 【36.86%】【codeforces 558B】Amr and The Large Array
- CF 558B Amr and The Large Array(暴力法)
- codeforces #312 B B. Amr and The Large Array(统计)
- Amr and The Large Array
- Amr and The Large Array
- Amr and The Large Array
- Codeforces 558B Amr and The Large Array 数组美丽值
- codeforcesB. Amr and The Large Array
- codeforce Amr and The Large Array
- 简单选择排序算法原理及JAVA实现
- 为什么匿名内部类访问当前方法的局部变量必须为final类型
- 南阳 oj 兰州烧饼
- Struts2 vs SpringMVC for Me
- java中类型int转化为Byte
- Code Forces 558 B. Amr and The Large Array(水~)
- GDI/GDI+/D2D/D3D
- Unable to execute dex: Multiple dex files define 解决方法
- 准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure
- GTK入门学习:信号与回调函数
- 谈谈MySQL水平扩展--分库分表
- 概率论与数理统计--大数定律与中心极限定理
- Jquery中dialog属性小记
- 括号配对问题