4 条题解
-
2
/* #include<iostream> #include<cstring> #include<cmath> #include<vector> #include<queue> #include<deque> #include<cstdio> #include<algorithm> #include<string> #include<list> #define int long long #define itn int #pragma GCC optimize(3) #pragma GCC optimize(2) #pragma GCC target("avx") #pragma GCC optimize("Ofast") #pragma GCC optimize("inline") #pragma GCC optimize("-fgcse") #pragma GCC optimize("-fgcse-lm") #pragma GCC optimize("-fipa-sra") #pragma GCC optimize("-ftree-pre") #pragma GCC optimize("-ftree-vrp") #pragma GCC optimize("-fpeephole2") #pragma GCC optimize("-ffast-math") #pragma GCC optimize("-fsched-spec") #pragma GCC optimize("unroll-loops") #pragma GCC optimize("-falign-jumps") #pragma GCC optimize("-falign-loops") #pragma GCC optimize("-falign-labels") #pragma GCC optimize("-fdevirtualize") #pragma GCC optimize("-fcaller-saves") #pragma GCC optimize("-fcrossjumping") #pragma GCC optimize("-fthread-jumps") #pragma GCC optimize("-funroll-loops") #pragma GCC optimize("-fwhole-program") #pragma GCC optimize("-freorder-blocks") #pragma GCC optimize("-fschedule-insns") #pragma GCC optimize("inline-functions") #pragma GCC optimize("-ftree-tail-merge") #pragma GCC optimize("-fschedule-insns2") #pragma GCC optimize("-fstrict-aliasing") #pragma GCC optimize("-fstrict-overflow") #pragma GCC optimize("-falign-functions") #pragma GCC optimize("-fcse-skip-blocks") #pragma GCC optimize("-fcse-follow-jumps") #pragma GCC optimize("-fsched-interblock") #pragma GCC optimize("-fpartial-inlining") #pragma GCC optimize("no-stack-protector") #pragma GCC optimize("-freorder-functions") #pragma GCC optimize("-findirect-inlining") #pragma GCC optimize("-fhoist-adjacent-loads") #pragma GCC optimize("-frerun-cse-after-loop") #pragma GCC optimize("inline-small-functions") #pragma GCC optimize("-finline-small-functions") #pragma GCC optimize("-ftree-switch-conversion") #pragma GCC optimize("-foptimize-sibling-calls") #pragma GCC optimize("-fexpensive-optimizations") #pragma GCC optimize("-funsafe-loop-optimizations") #pragma GCC optimize("inline-functions-called-once") #pragma GCC optimize("-fdelete-null-pointer-checks") #pragma GCC optimize("Ofast", "inline", "-ffast-math") #pragma GCC target("avx,sse2,sse3,sse4,mmx") #pragma GCC optimize("-fgcse") #define DEBUG printf("Baylor AK IOI\n"); #pragma GCC optimize("Ofast,unroll-loops,fast-math") #pragma GCC target("ssse3","sse3","sse2","sse","avx2","avx") #pragma GCC optimize("Ofast","-funroll-loops","-fdelete-null-pointer-checks") using namespace std; int n,top,f[100],sum; struct node { int x,y,w; }a[100]; void init(){ for(int i=1;i<=500;i++){ f[i]=i; a[i].x=0,a[i].y=0,a[i].w=0; } } int find(int x){ if(f[x]==x){ return f[x]; } else return f[x]=find(f[x]); } int cmp(node xx,node yy){ return xx.w<yy.w; } signed main(){ while(1){ sum=0; cin>>n; init(); top=0; if(n==0)return 0; for(int i=1;i<n;i++){ char xx,yy; int m; cin>>xx; int x,y,z; x=xx-'A'+1; cin>>m; while(m--){ cin>>yy>>z; y=yy-'A'+1; a[++top]=(node){x,y,z}; } } sort(a+1,a+n+1,cmp); for(int i=1;i<=top;i++){ int xx=find(a[i].x); int yy=find(a[i].y); if(xx!=yy){ f[xx]=yy; sum+=a[i].w; } } printf("%lld\n",sum); } return 0; } */ #include<iostream> #include<cstring> #include<cmath> #include<vector> #include<queue> #include<deque> #include<cstdio> #include<algorithm> #include<string> #include<list> #define int long long #define itn int #pragma GCC optimize(3) #pragma GCC optimize(2) #pragma GCC target("avx") #pragma GCC optimize("Ofast") #pragma GCC optimize("inline") #pragma GCC optimize("-fgcse") #pragma GCC optimize("-fgcse-lm") #pragma GCC optimize("-fipa-sra") #pragma GCC optimize("-ftree-pre") #pragma GCC optimize("-ftree-vrp") #pragma GCC optimize("-fpeephole2") #pragma GCC optimize("-ffast-math") #pragma GCC optimize("-fsched-spec") #pragma GCC optimize("unroll-loops") #pragma GCC optimize("-falign-jumps") #pragma GCC optimize("-falign-loops") #pragma GCC optimize("-falign-labels") #pragma GCC optimize("-fdevirtualize") #pragma GCC optimize("-fcaller-saves") #pragma GCC optimize("-fcrossjumping") #pragma GCC optimize("-fthread-jumps") #pragma GCC optimize("-funroll-loops") #pragma GCC optimize("-fwhole-program") #pragma GCC optimize("-freorder-blocks") #pragma GCC optimize("-fschedule-insns") #pragma GCC optimize("inline-functions") #pragma GCC optimize("-ftree-tail-merge") #pragma GCC optimize("-fschedule-insns2") #pragma GCC optimize("-fstrict-aliasing") #pragma GCC optimize("-fstrict-overflow") #pragma GCC optimize("-falign-functions") #pragma GCC optimize("-fcse-skip-blocks") #pragma GCC optimize("-fcse-follow-jumps") #pragma GCC optimize("-fsched-interblock") #pragma GCC optimize("-fpartial-inlining") #pragma GCC optimize("no-stack-protector") #pragma GCC optimize("-freorder-functions") #pragma GCC optimize("-findirect-inlining") #pragma GCC optimize("-fhoist-adjacent-loads") #pragma GCC optimize("-frerun-cse-after-loop") #pragma GCC optimize("inline-small-functions") #pragma GCC optimize("-finline-small-functions") #pragma GCC optimize("-ftree-switch-conversion") #pragma GCC optimize("-foptimize-sibling-calls") #pragma GCC optimize("-fexpensive-optimizations") #pragma GCC optimize("-funsafe-loop-optimizations") #pragma GCC optimize("inline-functions-called-once") #pragma GCC optimize("-fdelete-null-pointer-checks") #pragma GCC optimize("Ofast", "inline", "-ffast-math") #pragma GCC target("avx,sse2,sse3,sse4,mmx") #pragma GCC optimize("-fgcse") #define DEBUG printf("Baylor AK IOI\n"); #pragma GCC optimize("Ofast,unroll-loops,fast-math") #pragma GCC target("ssse3","sse3","sse2","sse","avx2","avx") #pragma GCC optimize("Ofast","-funroll-loops","-fdelete-null-pointer-checks") using namespace std; int top,id,minn,sum,head[100005],to[100005],ne[100005],dis[100005],vis[100005],w[1000005],n; void add(int x,int y,int z){ to[++top]=y; w[top]=z; ne[top]=head[x],head[x]=top; return; } inline int prim(){ memset(dis,0x3f,sizeof(dis)); dis[1]=0; sum=0; for(int i=1;i<=n;i++){ id=-1,minn=100000; for(int j=1;j<=n;j++){ if(!vis[j]&&dis[j]<minn){ minn=dis[j]; id=j; } } vis[id]=1; sum+=minn; for(int j=head[id];j;j=ne[j]){ if(!vis[to[j]]&&w[j]<dis[to[j]]){ dis[to[j]]=w[j]; } } } return sum; } signed main(){ while(1){ sum=0; cin>>n; top=0; memset(head,0, sizeof(head)); memset(to,0, sizeof(to)); memset(w,0, sizeof(w)); memset(ne,0, sizeof(ne)); memset(vis,0, sizeof(vis)); if(n==0)return 0; for(int i=1;i<n;i++){ char xx,yy; int m,orz; cin>>xx; int x=xx-'A'+1; cin>>m; for(int j=1;j<=m;j++){ cin>>yy; int y=yy-'A'+1; cin>>orz; add(x,y,orz); add(y,x,orz); } } int s=prim(); printf("%lld\n",s); } return 0; } //register //unsigned //system("pause"); //system("cls"); //system("color OA"); 0b fc 75
信息
- ID
- 1326
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- 递交数
- 41
- 已通过
- 25
- 上传者