1016: [JSOI2008]最小生成树计数
来源:互联网 发布:log4j打印sql日志 编辑:程序博客网 时间:2024/06/11 03:17
不知为何使用路径压缩的并查集会WA。
#include<algorithm>#include<iostream>#include<cstdio>#define inf 0x7fffffffusing namespace std;inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}struct edge{int x,y,v;}e[1001];struct data{int l,r,v;}a[1001];int n,m,cnt,tot,ans=1,sum,fa[101];inline int find(int x){return fa[x]==x?x:find(fa[x]);}inline bool cmp(edge a,edge b){return a.v<b.v;}void dfs(int x,int now,int k){if(now==a[x].r+1){if(k==a[x].v)sum++;return;}int p=find(e[now].x),q=find(e[now].y);if(p!=q){fa[p]=q;dfs(x,now+1,k+1);fa[p]=p;fa[q]=q;}dfs(x,now+1,k);}int main(){n=read();m=read();for(int i=1;i<=m;i++)e[i]=(edge){read(),read(),read()};for(int i=1;i<=n;i++)fa[i]=i;sort(e+1,e+m+1,cmp);for(int i=1;i<=m;i++){if(e[i].v!=e[i-1].v){a[++cnt].l=i;a[cnt-1].r=i-1;}int p=find(e[i].x),q=find(e[i].y);if(p!=q){fa[p]=q;a[cnt].v++;tot++;}}a[cnt].r=m;if(tot!=n-1){printf("0");return 0;}for(int i=1;i<=n;i++)fa[i]=i;for(int i=1;i<=cnt;i++){sum=0;dfs(i,a[i].l,0);ans=(ans*sum)%31011;for(int j=a[i].l;j<=a[i].r;j++){int p=find(e[j].x),q=find(e[j].y);if(p!=q)fa[p]=q;}}printf("%d",ans);}
0 0
- 1016: [JSOI2008]最小生成树计数
- 【BZOJ 1016】 [JSOI2008]最小生成树计数
- BZOJ 1016: [JSOI2008]最小生成树计数
- 1016: [JSOI2008]最小生成树计数
- BZOJ 1016 [JSOI2008]最小生成树计数
- BZOJ 1016 [JSOI2008] 最小生成树计数
- 1016: [JSOI2008]最小生成树计数
- [BZOJ]1016: [JSOI2008]最小生成树计数
- bzoj 1016: [JSOI2008]最小生成树计数
- 1016: [JSOI2008]最小生成树计数
- bzoj 1016: [JSOI2008]最小生成树计数
- bzoj 1016: [JSOI2008]最小生成树计数
- [JSOI2008]最小生成树计数
- BZoj 1016: [JSOI2008]最小生成树计数【最小生成树】
- BZOJ 1016 JSOI2008 最小生成树计数 Kruskal
- 【bzoj 1016】[JSOI2008]最小生成树计数 脑残是病
- [bzoj 1016] [JSOI2008]最小生成树计数:Kruskal,枚举
- 【BZOJ 1016】[JSOI2008]最小生成树计数 基尔霍夫矩阵||暴力
- classpath、path、JAVA_HOME的作用及JAVA环境变量配置
- 明升知识点
- BeanUtil 操作Bean属性
- Class类的asSubClass()方法
- stm32 DAC+DMA 输出100K正弦波杠杠的!!!
- 1016: [JSOI2008]最小生成树计数
- pthread
- mapreduce任务使用leveldb多线程问题
- C++ 对象模型 学习笔记(2)
- PKU 3974 - Palindrome (最长回文字串 DP)
- 2048游戏C语言代码
- BS几种技术及它们之间关系
- LWIP分析与socket编程方法
- Cocos2d-x3.1下实现类似iOS页面滑动指示圆点