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

o2o商城网站系统开发手机关键词点击排名软件

o2o商城网站系统开发,手机关键词点击排名软件,软件ui,知更鸟wordpress中文因为知道了算法tag#xff0c;所以想到了正解#xff1a; 先给出两个性质#xff1a; 边双给边定向一定可以转为强连通图,此为最优解树给边定向后R的最小值必为0 性质2证明如下#xff1a; 设树有n个节点, 若R_min!0, 则每点出度至少为1,各点出度之和至少为n, 则至少有…因为知道了算法tag所以想到了正解 先给出两个性质 边双给边定向一定可以转为强连通图,此为最优解树给边定向后R的最小值必为0 性质2证明如下 设树有n个节点, 若R_min!0, 则每点出度至少为1,各点出度之和至少为n, 则至少有n条边,但树只有n-1条边,矛盾那么这道题只要在原图上把边双缩成点即可 问题是如何构造 要解决树的构造很简单因为树上必有一点无法到达其它节点而我们又要令R_min最大那么就令这个无法到达其它节点的点为 包含点的个数最多的边双 代表的点 把这个点当做 根节点 dfs这棵树把树上的边原图上的桥定向为 son—fa可以保证R_min根节点代表的边双包含点的个数 然后就是我想不到的了边双内部要如何构造呢 虽然我自己想了一种构造方法但是T得十分惨烈…… 然后第二天我去学习了dfs树发现这个问题变得很简单 这是我最后用的构造方案 void dfs(int u){vis[u]1;for(int ihead[u];i!-1;iedge_nxt[i]){int vedge_v[i];if(edge_br[i]){add_e(edge_u[i],edge_v[i],edge_id[i]);continue;}if(!aa[edge_id[i]]) aa[edge_id[i]]u,bb[edge_id[i]]v;//加判断是为了防止将定好向的(fa[u],u)边再反向 if(!vis[v]) dfs(v);} }为什么可行 用dfs树理解这个构造方案就是将所有树边定向向下并将所有回边定向向上由dfs树的性质知这一定可行 最后放上完整代码 #includeiostream #includecstring #includecstdio #includestack using namespace std; const int N4e55; int edge_u[N1],edge_v[N1],edge_id[N1],edge_nxt[N1],edge_br[N1]; int n,m,head[N],cnt,a[N],b[N],aa[N],bb[N]; int dfn[N],low[N],ind,bcc[N],Bcc,bcc_sz[N]; stackint s; void add_edge(int u,int v,int id){edge_u[cnt]u;edge_v[cnt]v;edge_id[cnt]id;edge_nxt[cnt]head[u];head[u]cnt; } void tarjan(int u,int fa){dfn[u]low[u]ind;s.push(u);for(int ihead[u];i!-1;iedge_nxt[i]){int vedge_v[i];if(!dfn[v]){tarjan(v,u);low[u]min(low[u],low[v]);if(low[v]dfn[u]){edge_br[i]1;edge_br[i^1]1;Bcc;int k;do{ks.top();s.pop();bcc[k]Bcc;bcc_sz[Bcc];}while(k!v);}}else{if(dfn[v]dfn[u]v!fa)low[u]min(low[u],dfn[v]);}}//勿忘考虑u为根的情况: if(!fa){Bcc;while(!s.empty()){bcc[s.top()]Bcc;bcc_sz[Bcc];s.pop();}} } int e_u[N1],e_v[N1],e_id[N1],e_nxt[N1]; int hd[N],ct; void add_e(int u,int v,int id){e_u[ct]u;e_v[ct]v;e_id[ct]id;e_nxt[ct]hd[bcc[u]];//highlighthd[bcc[u]]ct;//highlight } int num,maxn0; bool vis_bcc[N],vis[N]; void dfs(int u){vis[u]1;for(int ihead[u];i!-1;iedge_nxt[i]){int vedge_v[i];if(edge_br[i]){add_e(edge_u[i],edge_v[i],edge_id[i]);continue;}if(!aa[edge_id[i]]) aa[edge_id[i]]u,bb[edge_id[i]]v;//加判断是为了防止将定好向的(fa[u],u)边再反向 if(!vis[v]) dfs(v);} } void dfs2(int u,int fa){for(int ihd[u];i!-1;ie_nxt[i]){int vbcc[e_v[i]];if(vfa) continue;aa[e_id[i]]e_v[i],bb[e_id[i]]e_u[i];dfs2(v,u);} } int main(){memset(head,-1,sizeof(head));memset(hd,-1,sizeof(hd));scanf(%d%d,n,m);for(int i1;im;i){scanf(%d%d,a[i],b[i]);add_edge(a[i],b[i],i);add_edge(b[i],a[i],i);}for(int i1;in;i)if(!dfn[i]) tarjan(i,0);for(int i1;in;i){if(!vis_bcc[bcc[i]]){dfs(i);vis_bcc[bcc[i]]1;if(bcc_sz[bcc[i]]maxn){maxnbcc_sz[bcc[i]];numbcc[i];}}}dfs2(num,0);printf(%d\n,maxn);for(int i1;im;i){if(aa[i]bb[i]) printf(%d %d\n,aa[i],bb[i]);else printf(%d %d\n,a[i],b[i]);}return 0; }
http://www.zqtcl.cn/news/22444/

相关文章:

  • 做网站的的步骤怎么写网站建设新趋势
  • 公司企业网站推广企业管理培训课程有哪些
  • 营销型企业网站报价网站建设提供资料
  • 大连网站建设仟亿科技郑州楼市最新消息
  • 贵州省城乡建设部官方网站厦门商务网站建设
  • 在百度里面做网站要多少钱oa办公管理系统哪个好
  • 移动互联网开发的学习心得网络营销推广优化
  • 上海老闵行网站建设南城网站优化公司
  • 免费创建网站软件wordpress stats
  • 教师招聘网站长城建设集团乔拓云智能建站官网登录入口
  • 佛山网页设计培训网站网络推广优化
  • 网站免费高清素材软件小游戏建设网站如何进行网站备案
  • 职教集团网站建设方案包装设计接单网站
  • 天津seo网站排名优化公司大连网络设计有限公司
  • 做网站大概需要多少费用长沙有什么好玩的游乐场
  • 网站栏目结构包括哪些做网站怎么用国处服务器
  • 做网站 网上接单铜陵市住房和城乡建设局网站
  • 广州建设大马路小学网站北京刚刚传来特大消息
  • 西安网站建设 大德做团餐的企业网站
  • 那个网站是专门做机械设备建设工程主管部门网站
  • 福鼎网站建设培训如何建立小程序商城
  • 域名站长工具苏州专业做网站公司电话
  • 美食网站建设的栏目和模板西安自助网站建设系统
  • 桂林做手机网站襄阳住房和城乡建设局网站首页
  • 哈尔滨模板做网站wordpress英文主题怎么用
  • 车床加工东莞网站建设关键词优化下拉管家
  • 银行需要网站开发人员嘛网站数据没有更新
  • 建设一个网站平台的费用吗嘉兴市南湖区建设街道网站
  • 做网站 徐州临床推广的方式有哪些
  • 郑州网站建设喝彩做非法网站