社区讨论
考场上那个电脑无端就退出程序,搞得我最后0分,回来改了一下就AC了
P7912[CSP-J 2021] 小熊的果篮参与者 4已保存回复 8
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 8 条
- 当前快照
- 1 份
- 快照标识符
- @lobhly8d
- 此快照首次捕获于
- 2023/10/29 21:08 2 年前
- 此快照最后确认于
- 2023/11/04 02:24 2 年前
CPP
#include<bits/stdc++.h>
using namespace std;
const int r=200010;
int n,m,t,hs,daa,x[r],xyg[r],st[r],gs[r],da[r];
map<int,map<int,int> >b;
int find(int hm)
{
if (gs[xyg[hm]]>0) return xyg[hm];
return xyg[hm]=find(xyg[hm]);
}
int main ()
{
cin>>n;
for (int i=1;i<=n;i++)
{
cin>>x[i];x[i]++;
if (t!=x[i]||i==1)
{
t=x[i];hs++;
xyg[hs]=hs+1;
}
b[hs][++gs[hs]]=i;
}
gs[hs+1]=r;
for (int i=1;i<=hs;i++) st[i]=1;
while (0==0)
{
daa=0;t=0;
for (int i=1;i<=hs;i=find(i))
if (gs[i]>0&&(x[b[i][st[i]]]!=t||daa==0))
{
daa++;
da[daa]=b[i][st[i]];
b[i][st[i]]=0;
st[i]++;
gs[i]--;
t=x[da[daa]];
}
if (daa==0) break;
for (int i=1;i<=daa;i++) cout<<da[i]<<" ";
cout<<endl;
}
return 0;
}
回复
共 8 条回复,欢迎继续交流。
正在加载回复...