社区讨论
求问关于迭代器的语法错误QWQ
P8819[CSP-S 2022] 星战参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mhj3ovtq
- 此快照首次捕获于
- 2025/11/03 20:12 4 个月前
- 此快照最后确认于
- 2025/11/03 20:12 4 个月前
在solve1和solve3中的"int nv=(*it).first 都报错了,说it没定义,为什么?怎么改?求QWQ
CPP#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define PII pair<int,int>
using namespace std;
const int N=5e5+10;
int n,m,q;
vector<PII> g[N],fan_g[N];
void check()
{
for(int u=1;u<=n;u++)
{
int cnt=0;
for(PII t:g[u])
{
int v=t.first,w=t.second;
if(w==1)
{
for(PII p:fan_g[v])
{
int fan_u=p.first,fan_w=p.second;
if(fan_u==u && fan_w==1) cnt++;
}
}
}
if(cnt!=1)
{
printf("NO");
return;
}
}
printf("YES");
return;
}
void solve1()
{
int u,v;
scanf("%d%d",&u,&v);
for(auto it=g[u].begin();it!=g[u].end();it++);
{
int nt=(*it).first;
if(v==nv) (*it).second=0;
}
for(auto it=fan_g[v].begin();it!=fan_g[v].end();it++);
{
int nu=(*it).first;
if(u==nu) (*it).second=0;
}
check();
return;
}
void solve2()
{
int u;
scanf("%d",&u);
for(auto it=fan_g[u].begin();it!=fan_g[u].end();it++)
{
(*it).second=0;
}
check();
return;
}
void solve3()
{
int u,v;
scanf("%d%d",&u,&v);
for(auto it=g[u].begin();it!=g[u].end();it++);
{
int nv=(*it).first;
if(v==nv) (*it).second=1;
}
for(auto it=fan_g[v].begin();it!=fan_g[v].end();it++);
{
int nu=(*it).first;
if(u==nu) (*it).second=1;
}
check();
return;
}
void solve4()
{
int u;
scanf("%d",&u);
for(auto it=fan_g[u].begin();it!=fan_g[u].end();it++)
{
(*it).second=1;
}
check();
return;
}
int main()
{
scanf("%d%d",&n,&m);
while(m--)
{
int u,v;
scanf("%d%d",&u,&v);
g[u].push_back({v,1});
fan_g[v].push_back({u,1});
}
scanf("%d",&q);
int t;
while(q--)
{
scanf("%d",&t);
if(t==1) solve1();
if(t==2) solve2();
if(t==3) solve3();
if(t==4) solve4();
}
return 0;
}
//----------------------------------------
回复
共 1 条回复,欢迎继续交流。
正在加载回复...