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 水题

cf 620C Pearls in a Row(贪心)

[Codeforces Round #522 (Div. 2, based on Technocup 2019 Elimination Round 3)][C. Playing Piano](代码片段

c_cpp Codeforces片段

Codeforces 86C Genetic engineering(AC自动机+DP)