Submission #6426933


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
typedef int ll;
const ll MAXN=2e5+51;
struct Edge{
	ll from,to,dist;
	inline bool operator <(const Edge &rhs)const
	{
		return this->dist<rhs.dist;
	}
};
Edge ed[MAXN];
ll nc,cnt,x,y,z,tot;
ll dist[MAXN],boss[MAXN];
inline ll read()
{
    register ll num=0,neg=1;
    register char ch=getchar();
    while(!isdigit(ch)&&ch!='-')
    {
        ch=getchar();
    }
    if(ch=='-')
    {
        neg=-1;
        ch=getchar();
    }
    while(isdigit(ch))
    {
        num=(num<<3)+(num<<1)+(ch-'0');
        ch=getchar();
    }
    return num*neg;
} 
inline void setup(ll cnt)
{
	for(register int i=0;i<cnt;i++)
	{
		boss[i]=i;
	}
}
inline void update()
{
	for(register int i=0;i<nc;i++)
	{
		dist[i]=min(dist[i],dist[(i+nc-1)%nc]+2);
	}
}
inline ll findb(ll node)
{
	if(node==boss[node])
	{
		return node;
	}
	boss[node]=findb(boss[node]);
	return boss[node];
}
inline void Union(ll x,ll y)
{
	ll bx=findb(x),by=findb(y);
	if(bx!=by)
	{
		boss[by]=bx;
	}
}
inline ll Kruskal()
{
	ll res=0,k=0;
	sort(ed,ed+tot),setup(nc);
	for(register int i=0;k<nc-1;i++)
	{
		if(findb(ed[i].from)!=findb(ed[i].to))
		{
			Union(ed[i].from,ed[i].to),res+=ed[i].dist,k++;
		}
	}
	return res;
}
int main()
{
	nc=read(),cnt=read(),memset(dist,0x3f,sizeof(dist));
	for(register int i=0;i<cnt;i++)
	{
		x=read(),y=read(),z=read();
		ed[tot++]=(Edge){x,y,z};
		dist[x]=min(dist[x],z+1),dist[y]=min(dist[y],z+2);
	}
	update(),update();
	for(register int i=0;i<=nc;i++)
	{
		ed[tot++]=(Edge){i,(i+1)%nc,dist[i]};
	}
	printf("%d",Kruskal());
}

Submission Info

Submission Time
Task G - Zigzag MST
User luogu_bot1
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1562 Byte
Status RE
Exec Time 314 ms
Memory 4096 KB

Judge Result

Set Name sample all
Score / Max Score 0 / 0 0 / 1300
Status
AC × 3
AC × 8
WA × 5
RE × 23
Set Name Test Cases
sample sample-01.txt, sample-02.txt, sample-03.txt
all sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 01-27.txt, 01-28.txt, 01-29.txt, 01-30.txt, sample-01.txt, sample-02.txt, sample-03.txt
Case Name Status Exec Time Memory
01-01.txt AC 2 ms 1024 KB
01-02.txt AC 38 ms 3328 KB
01-03.txt RE 314 ms 3328 KB
01-04.txt WA 19 ms 4096 KB
01-05.txt WA 13 ms 4096 KB
01-06.txt WA 15 ms 4096 KB
01-07.txt RE 103 ms 3328 KB
01-08.txt RE 104 ms 3328 KB
01-09.txt RE 105 ms 3328 KB
01-10.txt RE 121 ms 3328 KB
01-11.txt RE 141 ms 3328 KB
01-12.txt RE 139 ms 3328 KB
01-13.txt RE 140 ms 3328 KB
01-14.txt RE 141 ms 3328 KB
01-15.txt RE 140 ms 3328 KB
01-16.txt RE 141 ms 3328 KB
01-17.txt RE 140 ms 3328 KB
01-18.txt RE 139 ms 3328 KB
01-19.txt WA 14 ms 4096 KB
01-20.txt RE 106 ms 3328 KB
01-21.txt RE 112 ms 3328 KB
01-22.txt RE 127 ms 3328 KB
01-23.txt RE 133 ms 3328 KB
01-24.txt RE 105 ms 3328 KB
01-25.txt RE 138 ms 3328 KB
01-26.txt WA 19 ms 4096 KB
01-27.txt RE 105 ms 3328 KB
01-28.txt RE 125 ms 3328 KB
01-29.txt RE 137 ms 3328 KB
01-30.txt RE 139 ms 3328 KB
sample-01.txt AC 2 ms 1024 KB
sample-02.txt AC 2 ms 1024 KB
sample-03.txt AC 2 ms 1024 KB