专栏文章
题解:P13413 [COCI 2012/2013 #4] OREHNJACA
P13413题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mior3u0q
- 此快照首次捕获于
- 2025/12/02 23:46 3 个月前
- 此快照最后确认于
- 2025/12/02 23:46 3 个月前
通过首尾相减再加上 ,可以得到每个选手期望获得的核桃卷段的长度。使用打擂台可以得到期望获得的核桃卷段的长度最长的观众。
实际获得的核桃卷段的长度可以考虑如下方案实现:
-
建立一个长度为 的数组 ,对于 , 表示核桃卷段是否已经被拿走。 表示核桃卷段没有被取走, 表示该段已经被拿走。
-
对于每次输入的 ,使用变量 记录对于 中的 的和。每次取走之后将 设为 。
用这种方法可以求出每个观众实际获得的核桃卷段的长度。
代码如下。
CPP#include<bits/stdc++.h>
using namespace std;
int main()
{
long long L,n;
cin>>L>>n;
int a[L+5],l,r,maxn=0,mn=0,maxa=0,ma=0,sum=0;
for(long long i=1;i<=L;i++) a[i]=1;
for(long long i=1;i<=n;i++)
{
cin>>l>>r;
if(maxn<r-l+1)
{
maxn=r-l+1;
mn=i;
}
sum=0;
for(long long j=l;j<=r;j++)
{
sum+=a[j];
a[j]=0;
}
if(maxa<sum)
{
maxa=sum;
ma=i;
}
}
cout<<mn<<endl<<ma;
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...