设为首页 加入收藏

TOP

HDU 4305 Lightning (生成树的计数+矩阵树定理+逆元)(二)
2014-11-23 19:09:17 来源: 作者: 【 】 浏览:9
Tags:HDU 4305 Lightning 生成 计数 矩阵 定理 +逆元
a[id][j]) { if(id!=i) { for(k=j;k<=c;k++) swap(a[i][k],a[id][k]); } for(k=i+1;k<=r;k++) { if(!a[k][j]) continue; cnt=(cnt*a[i][j])%mod; for(int l=c;l>=j;l--) { a[k][l]=(a[k][l]*a[i][j]-a[i][l]*a[k][j])%mod; a[k][l]=(a[k][l]+mod)%mod; } } i++; } } int x,y; ext_gcd(cnt,mod,x,y); x=(x%mod+mod)%mod;//x为cnt对mod的逆元 for(i=1;i<=r;i++) x=(x*a[i][i])%mod; return (x+mod)%mod; } int main() { int t,i,j,k,cas; scanf("%d",&t); while(t--) { scanf("%d%lf",&n,&r); for(i=1;i<=n;i++) p[i].input(); memset(a,0,sizeof(a)); memset(mp,0,sizeof(mp)); double rr=r*r; for(i=1;i<=n;i++) for(j=i+1;j<=n;j++) { if(dis(p[i],p[j])>rr) continue; int flag=1; for(k=1;k<=n;k++) { if(i==k||j==k) continue; //这个地方开始用的是运算符重载,结果超时了,改成自己定义就A了 if(love(i,k,j))//k在ij线段的中间 { flag=0; break; } } if(flag) { mp[i][j]=mp[j][i]=1; a[i][j]--; a[j][i]--; a[i][i]++; a[j][j]++; } } /*cout<

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇poj3227 下一篇poj 2289 (最大流+二分)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Python爬虫教程(从 (2025-12-26 16:49:14)
·【全269集】B站最详 (2025-12-26 16:49:11)
·Python爬虫详解:原 (2025-12-26 16:49:09)
·Spring Boot Java: (2025-12-26 16:20:19)
·Spring BootでHello (2025-12-26 16:20:15)