社区讨论
黑漆覆盖了最后两片青青草原
P5019[NOIP 2018 提高组] 铺设道路参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lozuvzut
- 此快照首次捕获于
- 2023/11/15 22:26 2 年前
- 此快照最后确认于
- 2023/11/16 10:42 2 年前
CPP
#include<bits/stdc++.h>
using namespace std;
int a[100005],n,ans,maxn;
string str[10005],M;
int num(string alg)
{
int cnt=0;
string alg1="";
char Last;
if(alg[0]=='0') Last='1';
else Last='0';
for(int i=0;i<alg.length();i++)
{
if(Last!=alg[i])
{
Last=alg[i];
alg1+=alg[i];
}
}
for(int i=0;i<alg1.length();i++)
{
if(alg1[i]=='1')
{
cnt++;
}
}
return(cnt);
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
M+="0";
}
for(int i=1;i<=n;i++)
{
int x;
scanf("%d",&x);
a[i]=x;maxn=max(maxn,x);
}
for(int i=1;i<=maxn;i++)
{
str[i]=M;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=a[i];j++)
{
str[j][i-1]='1';
}
}
for(int i=1;i<=maxn;i++)
{
ans+=num(str[i]);
}
cout<<ans;
return(0);
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...