Submission #7940031


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
#define il inline
#define int long long
const int inf=2147483647;
il int read()
{
int x=0;int f=1;
char s=getchar();
while(s<'0' || s>'9')
{if(s=='-')f=-1;s=getchar();}
while(s>='0' && s<='9')
{x=x*10+s-'0';s=getchar();
}
return x*f;		
}

struct Edge
{int u,v,w;}edge[2001000];
int head[2001000],tot;
//void add(int x,int y,int w){
  //  ed[++tot].nxt=head[x];
	//ed[tot].to=y;
	///./ed[tot].w=w;
	//head[x]
int Min_value[2001000];
int fa[555000],n,q,ans,eu,ev,cnt;

il bool cmp(Edge a,Edge b)
{return a.w<b.w;}

il int Union(int x)
{while(x!=fa[x])x=fa[x]=fa[fa[x]];
return x;}

il void kruscal()
{
sort (edge+1,edge+1+cnt,cmp);
for(int i=1;i<=cnt;i++)
{int ttt=0;
int eu=Union(edge[i].u);
int ev=Union(edge[i].v);
if(eu==ev){continue;}
	ans+=edge[i].w;
	fa[eu]=ev;++ttt; 
	if(ttt==n-1)
	{break;}}}
signed main()
{
	n=read();
	q=read();
    memset(Min_value,0x3f,sizeof(Min_value));
    while(q--)
    {
        int u=read()+1;int v=read()+1;int w=read();
        edge[++cnt]=(Edge){u,v,w};
        Min_value[u]=min(Min_value[u],w+1);
        Min_value[v]=min(Min_value[v],w+2);
    }
	for(int i=1;i<=n;i++)
	{fa[i]=i;}
	for(int i=1;i<=n;i++){
		Min_value[i%n+1]=min(Min_value[i%n+1],Min_value[i]+2);
	}
	for(int i=1;i<=n;i++){
		Min_value[i%n+1]=min(Min_value[i%n+1],Min_value[i]+2);
	}
	for(int i=1;i<=n;i++){
		edge[++cnt]=(Edge){i,i%n+1,Min_value[i]};
	}
kruscal();
cout<<ans;
return 0;
}

Submission Info

Submission Time
Task G - Zigzag MST
User luogu_bot5
Language C++14 (GCC 5.4.1)
Score 1300
Code Size 1511 Byte
Status AC
Exec Time 131 ms
Memory 28416 KB

Judge Result

Set Name sample all
Score / Max Score 0 / 0 1300 / 1300
Status
AC × 3
AC × 36
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 5 ms 18688 KB
01-02.txt AC 52 ms 22784 KB
01-03.txt AC 105 ms 28416 KB
01-04.txt AC 51 ms 24320 KB
01-05.txt AC 35 ms 24320 KB
01-06.txt AC 43 ms 24320 KB
01-07.txt AC 36 ms 24320 KB
01-08.txt AC 35 ms 24320 KB
01-09.txt AC 38 ms 24320 KB
01-10.txt AC 68 ms 26368 KB
01-11.txt AC 84 ms 25600 KB
01-12.txt AC 101 ms 28416 KB
01-13.txt AC 102 ms 28416 KB
01-14.txt AC 101 ms 28416 KB
01-15.txt AC 104 ms 28416 KB
01-16.txt AC 101 ms 28416 KB
01-17.txt AC 105 ms 28416 KB
01-18.txt AC 84 ms 28416 KB
01-19.txt AC 36 ms 24320 KB
01-20.txt AC 35 ms 24320 KB
01-21.txt AC 50 ms 26368 KB
01-22.txt AC 81 ms 28416 KB
01-23.txt AC 82 ms 28416 KB
01-24.txt AC 35 ms 24320 KB
01-25.txt AC 131 ms 28416 KB
01-26.txt AC 51 ms 24320 KB
01-27.txt AC 43 ms 24320 KB
01-28.txt AC 73 ms 28416 KB
01-29.txt AC 81 ms 25728 KB
01-30.txt AC 98 ms 28416 KB
sample-01.txt AC 5 ms 18688 KB
sample-02.txt AC 5 ms 18688 KB
sample-03.txt AC 5 ms 18688 KB