# vp Educational Codeforces Round 152 (Rated for Div. 2)|“朝闻道”知识分享大赛

Problem - C - Codeforces

，，调了无数遍才调出来，，有毒

``````#include<bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair<int,int> PII;

#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define _cf() int _;cin>>_;while(_--)

inline ll read(){char c=getchar();ll x=0,f=1;while(c<'0'||c>'9'){if(c=='-')f=-1; c=getchar();}while(c>='0'&&c<='9'){x=x*10+c-'0'; c=getchar();}return x*f;}

const int N = 2e6;
const int inf = 2147483647;

//乘法一定要注意会不会爆!!!

void Solve()
{
int n,m;
cin>>n>>m;
vector<char> a(n+1);
vector<int> pre(n+1),suf(n+1);
for(int i=1;i<=n;i++) cin>>a[i];
pre[1]=0,suf[n]=n+1;
for(int i=2;i<=n;i++)
{
if(a[i]=='0') pre[i]=i;
else
{
if(a[i-1]=='0') pre[i]=i-1;
else pre[i]=pre[i-1];
}

}
for(int i=n-1;i>0;i--)
{
if(a[i]=='1') suf[i]=i;
else
{
if(a[i+1]=='1') suf[i]=i+1;
else suf[i]=suf[i+1];
}
}
set<PII> s;
int x,y;
while(m--)
{
cin>>x>>y;
if(suf[x]>pre[y]) s.insert({-1,-1});
else s.insert({suf[x],pre[y]});
}
cout<<s.size()<<endl;
}

int main()
{
IOS;
_cf()
Solve();
}``````

Problem - D - Codeforces

``````#include<bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair<int,int> PII;

#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define _cf() int _;cin>>_;while(_--)

inline ll read(){char c=getchar();ll x=0,f=1;while(c<'0'||c>'9'){if(c=='-')f=-1; c=getchar();}while(c>='0'&&c<='9'){x=x*10+c-'0'; c=getchar();}return x*f;}

const int N = 2e6;
const int inf = 2147483647;

//乘法一定要注意会不会爆!!!

void Solve()
{
int n;
cin>>n;
vector<int> a(n+2);
vector<PII> a1,a2;
for(int i=1;i<=n;i++) cin>>a[i];
int l=-1,op=0;
for(int i=1;i<=n;i++)
{
if(a[i]>0)
{
if(a[i]==2) op=1;
if(a[i-1]==0)l=i;
if(a[i+1]==0)
{
if(op==1)
{
a2.push_back({l,i});
op=0;
}
else a1.push_back({l,i});
}
}
}
for(auto t:a2)
{
int l=t.first,r=t.second;
a[l-1]=-1;a[r+1]=-1;
}
for(auto t:a1)
{
int l=t.first,r=t.second;
if(a[l-1]==0&&l-1>0) a[l-1]=-1;
else a[r+1]=-1;
}
int cnt=a1.size()+a2.size();
for(int i=1;i<=n;i++) if(a[i]==0) cnt++;
cout<<cnt<<endl;
}

int main()
{
IOS;
//_cf()
Solve();
}``````

E题有时间再补吧（好像一次没补完的都没去补了（））

...全文
57 回复 打赏 收藏 转发到动态 举报

858

• 近7日
• 近30日
• 至今

CSDN高校俱乐部是给大家提供技术分享交流的平台，会不定期的给大家分享CSDN方面的相关比赛以及活动或实习报名链接，希望大家一起努力加油！共同建设中南民族大学良好的技术知识分享社区。

1.社区成员不得在社区发布违反社会主义核心价值观的言论。

2.社区成员不得在社区内谈及政治敏感话题。

3.该社区为知识分享的平台，可以相互探讨、交流学习经验，尽量不在社区谈论其他无关话题。