codeforces 620C
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codeforces 620C相关的知识,希望对你有一定的参考价值。
题意:给你n个数,一段子序列拥有两个相同的数就称为happy segment,求最多的happy segment,没有的话就输出-1,否则第一行输出happy segment的个数a,接下来a行输出每个happy segment的起始位置和终止位置.
思路:用stl的set做,只需记录每个happy segment的终止位置就好了,
1 #include<iostream> 2 #include<set> 3 const int qq=3e5+10; 4 using namespace std; 5 set<int>p; 6 int x[qq]; 7 int main() 8 { 9 int n,m,c; cin >> n; 10 c=0; 11 for(int i=1;i<=n;++i){ 12 cin >> m; 13 if(p.count(m)==0) p.insert(m); 14 else{ 15 x[c++]=i; 16 p.clear(); 17 } 18 } 19 if(!c) cout << "-1" << endl; 20 else{ 21 x[c-1]=n; 22 cout << c << endl; 23 cout << "1" << " " << x[0] << endl; 24 for(int i=0;i<c-1;++i) 25 cout << x[i]+1 << " " << x[i+1] << endl; 26 } 27 return 0; 28 }
以上是关于codeforces 620C的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces 620C EDU C.Pearls in a Row ( set + greed )
Pearls in a Row CodeForces 620C 水题
[Codeforces Round #522 (Div. 2, based on Technocup 2019 Elimination Round 3)][C. Playing Piano](代码片段