当前位置: 首页 > news >正文

网站建设后期维护小魔仙网页制作教程电子书

网站建设后期维护小魔仙,网页制作教程电子书,怎么把别人网站模板下载出来,wordpress后台发布文章不显示分类题目#xff1a;https://www.lydsy.com/JudgeOnline/problem.php?id1016 就是缩点#xff0c;每次相同权值的边构成的联通块求一下matrix tree。注意gauss里的编号应该是从1到...的连续的。 学习了一个TJ。用了vector。自己曾写过一个只能过样例的。都放上来吧。 路径压缩的…题目https://www.lydsy.com/JudgeOnline/problem.php?id1016 就是缩点每次相同权值的边构成的联通块求一下matrix tree。注意gauss里的编号应该是从1到...的连续的。 学习了一个TJ。用了vector。自己曾写过一个只能过样例的。都放上来吧。 路径压缩的话会慢循环里ed[i].w!ed[i1].w的话会慢 #includeiostream #includecstdio #includecstring #includevector #includecmath #includealgorithm using namespace std; const int N105,M1005,mod31011; int n,m,fa[N],pa[N],c[N][N],a[N][N],ans1;//ans1 bool vis[N]; vectorint v[N]; struct Ed{int x,y,w;bool operator (const Ed b)const{return wb.w;} }ed[M]; int find(int a,int f[]){return f[a]a?a:find(f[a],f);} //加上路径压缩会变慢 int gauss(int n) {bool fx0;int ret1;for(int i1;in;i)for(int j1;jn;j)a[i][j]%mod;//for(int i1;in;i){int ki;for(int ji1;jn;j)if(abs(a[j][i])abs(a[k][i]))kj;if(k!i){fx!fx;for(int ji;jn;j)swap(a[i][j],a[k][j]);}for(int ji1;jn;j)while(a[j][i]){fx!fx;int tmpa[i][i]/a[j][i];for(int li;ln;l){int tpa[i][l];a[i][l]a[j][l];//ija[j][l](tp-tmp*a[j][l])%mod;//ji%j}}(ret*a[i][i])%mod;}return (ret*(fx?-1:1)mod)%mod; } int main() {scanf(%d%d,n,m);for(int i1;in;i)fa[i]i,pa[i]i;for(int i1;im;i)scanf(%d%d%d,ed[i].x,ed[i].y,ed[i].w);sort(ed1,edm1);for(int i1;im1;i)//{if(ed[i-1].w!ed[i].w||im1)//{for(int j1;jn;j){if(!vis[j])continue;v[find(j,pa)].push_back(j);vis[j]0;}for(int j1;jn;j){if(v[j].size()1)continue;memset(a,0,sizeof a);//!int sizv[j].size();for(int l00;l0siz;l0)for(int l1l01;l1siz;l1){int xv[j][l0],yv[j][l1],tc[x][y];//xv[j][l0],dont use l0 directlya[l01][l01]t;a[l11][l11]t;a[l01][l11]-t;a[l11][l01]-t;//but here is l0/1, for in gauss the bh must from 1 and be continous}(ans*gauss(siz-1))%mod;for(int k0;ksiz;k)fa[v[j][k]]j;//fa - pa}for(int j1;jn;j){fa[j]pa[j]find(j,fa);v[j].clear();}}int f1find(ed[i].x,fa),f2find(ed[i].y,fa);if(f1f2)continue;vis[f1]1;vis[f2]1;pa[find(f1,pa)]find(f2,pa);c[f1][f2];c[f2][f1];}for(int i1;in;i)if(find(i,fa)!find(i1,fa)){printf(0);return 0;}printf(%d,ans);return 0; } #includeiostream #includecstdio #includecstring #includevector #includecmath #includealgorithm using namespace std; const int N105,M1005,mod31011; int n,m,fa[N],pa[N],c[N][N],a[N][N],ans1;//ans1 bool vis[N]; vectorint v[N]; struct Ed{int x,y,w;bool operator (const Ed b)const{return wb.w;} }ed[M]; int find(int a,int f[]){return f[a]a?a:find(f[a],f);} //加上路径压缩会变慢 int gauss(int n) {bool fx0;int ret1;for(int i1;in;i)for(int j1;jn;j)a[i][j]%mod;//for(int i1;in;i){int ki;for(int ji1;jn;j)if(abs(a[j][i])abs(a[k][i]))kj;if(k!i){fx!fx;for(int ji;jn;j)swap(a[i][j],a[k][j]);}for(int ji1;jn;j)while(a[j][i]){fx!fx;int tmpa[i][i]/a[j][i];for(int li;ln;l){int tpa[i][l];a[i][l]a[j][l];//ija[j][l](tp-tmp*a[j][l])%mod;//ji%j}}(ret*a[i][i])%mod;}return (ret*(fx?-1:1)mod)%mod; } int main() {scanf(%d%d,n,m);for(int i1;in;i)fa[i]i,pa[i]i;for(int i1;im;i)scanf(%d%d%d,ed[i].x,ed[i].y,ed[i].w);sort(ed1,edm1);for(int i1;im;i){int f1find(ed[i].x,fa),f2find(ed[i].y,fa);if(f1!f2){vis[f1]1;vis[f2]1;pa[find(f1,pa)]find(f2,pa);c[f1][f2];c[f2][f1];} // if(f1f2)continue;//!!!!!!!if(ed[i1].w!ed[i].w||im){for(int j1;jn;j){if(!vis[j])continue;v[find(j,pa)].push_back(j);vis[j]0;}for(int j1;jn;j){if(v[j].size()1)continue;memset(a,0,sizeof a);//!int sizv[j].size();for(int l00;l0siz;l0)for(int l1l01;l1siz;l1){int xv[j][l0],yv[j][l1],tc[x][y];//xv[j][l0],dont use l0 directlya[l01][l01]t;a[l11][l11]t;a[l01][l11]-t;a[l11][l01]-t;//but here is l0/1, for in gauss the bh must from 1 and be continous}(ans*gauss(siz-1))%mod;for(int k0;ksiz;k)fa[v[j][k]]j;//fa - pa}for(int j1;jn;j){fa[j]pa[j]find(j,fa);v[j].clear();}}}for(int i1;in;i)if(find(i,fa)!find(i1,fa)){printf(0);return 0;}printf(%d,ans);return 0; } 改一下循环(慢) #includeiostream #includecstdio #includecstring #includealgorithm using namespace std; const int N105,M1005,mod31011; int n,m,p0,p1,col[N],cnt,head[N],xnt,fnw,ans1,fa[N],bh[N],tot; bool used[M1],vis[N],nd[N],tvis[N]; struct Ed{int next,x,y,w;Ed(int x0,int y0,int w0):x(x),y(y),w(w) {}bool operator (const Ed b)const{return wb.w;} }ed[M1]; struct Matrix{int a[N][N];void init(){memset(a,0,sizeof a);}Matrix operator- (const Matrix b)const{Matrix c;c.init();for(int i1;itot;i)for(int j1;jtot;j)c.a[i][j](a[i][j]-b.a[i][j])%mod;//return c;} }d,l,r; int find(int a){return fa[a]a?a:fa[a]find(fa[a]);} void add(int x,int y,int w) {ed[xnt]Ed(x,y,w);ed[xnt]Ed(y,x,w);if(find(x)!find(y))fa[find(x)]find(y); } void dfst(int cr) {tvis[cr]1;bh[cr]tot;for(int ihead[cr],v;i;ied[i].next)if(used[i]!tvis[ed[i].y])dfst(ed[i].y); } void dfsx(int cr,int f) //dfs处理好这一块的度数矩阵和邻接矩阵 {vis[cr]1;for(int ihead[cr],v;i;ied[i].next)if(used[i](ved[i].y)!f){d.a[bh[cr]][bh[cr]];if(!vis[v])d.a[bh[v]][bh[v]];l.a[bh[cr]][bh[v]]l.a[bh[v]][bh[cr]]1;if(!vis[v])dfsx(v,cr);} } void gauss() {int fx1,ret1;for(int i1;itot;i)//tot少一行一列 {int nwi;for(int ji1;jtot;j)if(abs(r.a[j][i])abs(r.a[nw][i]))nwj;if(nw!i){fx-fx;for(int li;ltot;l)swap(r.a[i][l],r.a[nw][l]);}for(int ji1;jtot;j)while(r.a[j][i]){int tmpr.a[i][i]/r.a[j][i];for(int li;ltot;l){int tpr.a[i][l];r.a[i][l]r.a[j][l];//ij;r.a[j][l](tp-r.a[j][l]*tmp)%mod;//ji%j}fx-fx;}(ret*r.a[i][i])%mod; //不要在上面赋值消下面的时候可能换过来 }ret(ret*fxmod)%mod;(fnw*ret)%mod; } void cal(int x) //当前权值的一个个联通块 {d.init();l.init();memcpy(tvis,vis,sizeof vis);tot0;//bh!dfst(x);dfsx(x,0);rd-l;gauss(); } void dfs(int cr) {col[cr]cnt;for(int ihead[cr];i;ied[i].next)if(used[i]!col[ed[i].y])dfs(ed[i].y); } void solve() //一层 {memset(nd,0,sizeof nd);memset(used,0,sizeof used);for(int ip0;ip1;i)if(ed[i].x!ed[i].y) //边的两边连的是已经缩点后的 used[i]1,nd[ed[i].x]1,nd[ed[i].y]1; //能用的边和涉及的点 memset(vis,0,sizeof vis);memset(bh,0,sizeof bh);fnw1;for(int i1;icnt;i)if(!vis[i]nd[i])cal(i); //每个联通块 (ans*fnw)%mod;cnt0;memset(col,0,sizeof col); //cnt:现在有多少点(缩点后)for(int i1;icnt;i)if(!col[i])cnt,dfs(i); //缩点 for(int ip11;ixnt;i)ed[i].xcol[ed[i].x],ed[i].ycol[ed[i].y]; } int main() {scanf(%d%d,n,m);int x,y,w;for(int i1;in;i)fa[i]i;for(int i1;im;i)scanf(%d%d%d,x,y,w),add(x,y,w);for(int i2;in;i)if(find(i-1)!find(i)){printf(0);return 0;}//sort(ed1,edxnt1);cntn;for(int i1;ixnt;i){ed[i].nexthead[ed[i].x];head[ed[i].x]i;}for(int i1;ixnt;i){p0i;while(ed[i1].wed[i].w)i;p1i;solve();}printf(%d,ans);return 0; } 只能过样例的  转载于:https://www.cnblogs.com/Narh/p/9274486.html
http://www.zqtcl.cn/news/427740/

相关文章:

  • 网站建设流程及规范是做网站设计好还是杂志美编好
  • 网站模板 登陆南昌做网站开发的公司有哪些
  • 移动网站建设是什么商丘哪里教做网站的
  • 网站建设排名的公司江东seo做关键词优化
  • 学习网站开发培训网站内链是什么
  • 中文 域名的网站用wordpress做的网站有哪些
  • 网站建设中需要注意的问题唐山自助建站模板
  • 网站建设捌金手指下拉一重庆 网站定制
  • 网站建设需求调研方法自己做网站要多少钱
  • 北流网站建设公众号开发 表格
  • 做教育类网站一般流程苏宁易购网站风格
  • 兼职网站推广如何做如何用ps做网站
  • 济南外贸网站建设软件公司网站
  • 衡阳做网站注册网站流程
  • 关于网站建设的申请报告wordpress花园网站
  • jsp网站 iis免费企业信息查询
  • 泊头市网站建设公司只有企业自己建立网站平台进行
  • 有阿里云服务器 怎么做网站找广告设计
  • 网站建设 ui设计公司素材网站源码
  • 网站响应式布局wordpress代码混乱
  • 免费建设个人网站四川建设人员信息查询
  • 做国际网站有哪些专门做拼花网站
  • eclipse sdk做网站小程序开发报价明细
  • 网站开发源码售卖合同百度广告投诉电话
  • wordpress读法鄂州seo
  • 网站建设方案的写作方法媒体发稿推广
  • 免费的网站空间注册空壳公司判几年
  • 网站怎么运营推广达美网站建设
  • 江苏建设人才网网站中国最新时事新闻
  • 网站建立时间毕节地seo