P1197 [JSOI2008]星球大战 https://www.luogu.com.cn/problem/P1197 我真的心态崩了,找了三个小时才发现错误在哪里。我的习惯是从1开始记录数据,一直就超时,怎么都超时,但还是能过几组样例,我以为是算法问题,没想到是head[0]没更新成-1,只要u的位置上出现0,第一组的cnt直接存成0。本题星球是从0到n-1编号的。。。。。 啊啊啊啊,好烦,浪费了这么久,好在是发现错哪了,交了整整两页才发现。 真的巨坑,巨坑,好大的陷阱!!!我说题解为什么从0开始记录数据,原来就是去避免链式前向星存在的这个陷阱。 表示没有,可用0或者-1来表示,head是用来表示变得下标 如果初始化为0,那么head[0]是不能保存信息的; 如果初始化成-1,一定要记得head[0]=-1;
#include
using namespace std;
const int maxn=4e5+5;
struct node
{
int from,to,nxt;
}e[maxn];
int f[maxn],n,m,ans,p[maxn],q[maxn],cnt,k,total,head[2*maxn];
bool vis[maxn];
inline void add_edge(int u,int v)
{
e[++cnt].to=v;
e[cnt].from=u;
e[cnt].nxt=head[u];
head[u]=cnt;
}
int r_find(int x)
{
if(x!=f[x])
f[x]=r_find(f[x]);
return f[x];
}
inline void mg(int x,int y)
{
int fx,fy;
fx=r_find(x);fy=r_find(y);
if(fx!=fy)
f[fx]=fy;
}
int main()
{
head[0]=-1;
scanf("%d%d",&n,&m);
for(register int i=1;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?