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

中国建设银行网站个人客户首页天山网官网

中国建设银行网站个人客户首页,天山网官网,wordpress 添加编辑,信息技术 网站建设教案正题 题目链接:https://www.luogu.com.cn/problem/P2272 题目大意 半连通图定义为任意两个点(u,v)(u,v)(u,v)满足uuu可以到vvv或vvv可以到uuu的有向图。 现在给出一张图#xff0c;求最大半连通子图与其数量。 解题思路 显然一个强连通一定是一个半连通#xff0c;所以我…正题 题目链接:https://www.luogu.com.cn/problem/P2272 题目大意 半连通图定义为任意两个点(u,v)(u,v)(u,v)满足uuu可以到vvv或vvv可以到uuu的有向图。 现在给出一张图求最大半连通子图与其数量。 解题思路 显然一个强连通一定是一个半连通所以我们可以先tarjantarjantarjan缩点。 可以发现半连通一定是缩完点之后的DAGDAGDAG上的一条链所以我们可以用dpdpdp解决。 需要注意的是如果两条边连通两个相同缩完后的点这些重边需要去掉否则会对统计答案造成影响。 时间复杂度O(mlog⁡mn)O(m\log mn)O(mlogmn)改用hashhashhash去重可以去掉那个log⁡m\log mlogm的复杂度 codecodecode #includecstdio #includecstring #includealgorithm #includestack #includequeue using namespace std; const int N1e510; struct node{int to,from,next; }a[N*10]; int n,p,m,tot,cnt,num,ls[N]; int dfn[N],low[N],col[N],siz[N]; int f[N],g[N],in[N],ans;bool ins[N]; stackint s;queueint q; void addl(int x,int y){a[tot].toy;a[tot].fromx;a[tot].nextls[x];ls[x]tot;return; } void tarjan(int x){dfn[x]low[x]cnt;ins[x]1;s.push(x);for(int ils[x];i;ia[i].next){int ya[i].to;if(!dfn[y]){tarjan(y);low[x]min(low[x],low[y]);}else if(ins[y])low[x]min(low[x],dfn[y]);}if(dfn[x]low[x]){num;while(s.top()!x){ins[s.top()]0;col[s.top()]num;siz[num];s.pop();}ins[s.top()]0;col[s.top()]num;siz[num];s.pop();}return; } bool cmp(node x,node y) {return (col[x.from]col[y.from])?col[x.to]col[y.to]:col[x.from]col[y.from];} void topsort(){for(int i1;inum;i){if(!in[i])q.push(i);f[i]siz[i];g[i]1;ansmax(ans,f[i]);}while(!q.empty()){int xq.front();q.pop();for(int ils[x];i;ia[i].next){int ya[i].to;in[y]--;if(f[x]siz[y]f[y])f[y]f[x]siz[y],g[y]g[x];else if(f[x]siz[y]f[y])g[y](g[y]g[x])%p;ansmax(ans,f[y]);if(!in[y])q.push(y);}}return; } int main() {scanf(%d%d%d,n,m,p);for(int i1;im;i){int x,y;scanf(%d%d,x,y);addl(y,x);}for(int i1;in;i)if(!dfn[i])tarjan(i);sort(a1,a1tot,cmp);int pttot,lx0,ly0;tot0;memset(ls,0,sizeof(ls));for(int i1;ipt;i){int xa[i].from,ya[i].to;if(col[x]col[lx]col[y]col[ly])continue;if(col[x]!col[y])addl(col[y],col[x]),in[col[x]];lxx;lyy;}topsort();printf(%d\n,ans);int sum0;for(int i1;in;i)if(f[i]ans)(sumg[i])%p;printf(%d\n,sum);return 0; }
http://www.zqtcl.cn/news/310483/

相关文章:

  • 电商网站建设与管理实践电商网站前端制作分工
  • 外贸公司怎么接订单网站编辑做seo好做吗
  • 科技企业网站建设珠海微信网站开发
  • 科凡网站建设小程序自己开发
  • 专门做金融的招聘网站wordpress 价格
  • 微商城网站建设信息定制程序网站
  • 电子政务网站开发餐饮品牌设计包括哪些
  • 深圳手机商城网站设计公司网站做会员用什么源码
  • 安康网站建设公司价格pathon做网站
  • jq网站模板宣城有做网站的公司吗
  • 江苏个人备案网站内容大连seo加盟
  • 服装网站建设公司地址公司网站建设需要注意什么
  • 免费行情软件网站下载安装电子商务网站建设实训报告
  • wordpress怎么添加企业网站美化网站公司
  • 工作室网站源码全球军事网站
  • 网站设计模板免费建站珠海正规网站制作排名费用多少
  • 北京沙河教做网站的wordpress增加自适应功能
  • 中国著名的个人网站网站设计怎么做ppt答辩
  • 郑州做招商的网站网站后台主流网站开发语言
  • 专业足球网站开发铜陵网站优化
  • 南昌高端网站开发山西太原网站建设公司
  • 青岛专业制作网站的公司吗百度咨询
  • 自定义网站模块深圳宝安区有什么好玩的地方
  • 如何增加网站的外链微平台网站支持html5实现游戏
  • 平台网站建设网站邯郸seo优化
  • 做网站着用什么软件盐城网站建设电话
  • 自己的网站wordpress自动变化文字
  • 北京制作网站公司哪家好wordpress小工具不显示不出来
  • 如何建设一个新的网站h5网站建设价格
  • 无锡专业做网站的怎么攻击php做的网站