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

网站源码怎么看湖南关键词优化首选

网站源码怎么看,湖南关键词优化首选,深圳做公司网站推广的,网站推广员需要做什么《算法竞赛快冲300题》将于2024年出版,是《算法竞赛》的辅助练习册。 所有题目放在自建的OJ New Online Judge。 用C/C、Java、Python三种语言给出代码,以中低档题为主,适合入门、进阶。 文章目录 题目描述题解C代码Java代码Python代码 “ 简…

算法竞赛·快冲300题》将于2024年出版,是《算法竞赛》的辅助练习册。
所有题目放在自建的OJ New Online Judge。
用C/C++、Java、Python三种语言给出代码,以中低档题为主,适合入门、进阶。

文章目录

  • 题目描述
  • 题解
  • C++代码
  • Java代码
  • Python代码

简化农场” ,链接: http://oj.ecustacm.cn/problem.php?id=1879

题目描述

【题目描述】 约翰的农场可以看做一个图,农田代表图中顶点,田间小路代表图中的边,每条边有一定的长度。
   约翰发现自己的农场中最多有三条小路有着相同的长度。
   约翰想删除一些小路使得农场成为一棵树,使得两块农田间只有一条路径。
   约翰想把农场设计成最小生成树,也就是农场道路的总长度最短。
   请帮助约翰找出最小生成树的总长度,同时请计算出总共有多少种最小生成树。
【输入格式】 输入第一行为两个正整数 N 和 M ,表示点数和边数(1 <= N <= 40,000; 1 <= M <= 100,000)。
   接下来 M 行,每行三个整数 ai, bi, ci,表示点 ai 和 bi 之间存在长度为 ci 的无向边。(1 <= ai, bi <= N; 1 <= ci <= 1,000,000)
【输出格式】 输出一行包含两个整数,分别表示最小生成树的长度和最小生成树的数目。
数目对 1,000,000,007 求余.
【输入样例】

4 5
1 2 1
3 4 1
1 3 2
1 4 2
2 3 2

【输出样例】

4 3

题解

   有两种最小生成树(MST)算法:kruskal、prim。Kruskal的思路是对边贪心,“最短的边一定在MST上”;prim的思路是对点贪心,“最近的邻居点一定在MST上”。
   本题描述中比较特殊的地方是:(1)最多有三条小路(边)有相同长度;(2)计算总共有多少种最小生成树。着重点在边上,所以用kruskal算法。
   kruskal算法执行步骤是:(1)对边排序;(2)从最短的边开始,从小到大依次把边加入到MST中;(3)加边的过程中用并查集判断是否产生圈,如果形成了圈就丢弃这个边;(4)所有边处理完后结束,或者加边的数量等于n-1时结束。
   如果所有的边长都不同,那么只有一种最小生成树。题目指出“最多有三条边的长度相同”,从样例可知,有等长的两条边,也有等长的三条边。对边排序时,这些相等的边会挨在一起。
   处理等长边,设cnt是合法(所谓合法,是指这个边加入到MST,不会产生圈)的边的数量,num是这几个等长边有几个能同时加入到MST。sum是最小生成树的数目。
   (1)有两条等长边。
   若cnt=1,只有一条边是合法的,也就是说这条边别无选择,那么sum不变。
   若cnt=2,有2条边合法,继续讨论:
   1)num=1,即这两条等长边只有一条能加入到MST中。那么sum = sumcnt,即sum=sum2。以下图为例,s1和s2是两棵已经加入到MST的子树,它们内部没有圈。现在加两条等长边(x1,y1)、(x2,y2),它们单独加入MST都是合法的,但是同时加入就会形成圈。
在这里插入图片描述
   2)num=2,即这两条等长边都应该加入到MST中。那么sum不变,即sum=sum1。以下图为例。
在这里插入图片描述
   (2)有三个等长边。
   若cnt=1,只有一条边合法,sum不变。
   若cnt=2,有两条边合法,和(1)有两条等长边,且cnt=2的情况一样。
   若cnt=3,有三条边合法,那么:
   1)num = 1,只有一条边能加入到MST中,sum = sum
cnt=sum3。以下图为例,三条边任选一条,有3种情况。
在这里插入图片描述
   2)num = 2,有两条边能加入到MST中,且其中一条边必须加,sum = sum
2。以下图为例,三条边任选两条,有2种情况。
在这里插入图片描述
   3)num = 2,有两条边能加入到MST中,且是任意两条,sum = sum*3。以下图为例,三条边任选两条,有3种情况。
在这里插入图片描述
   3)num = 3,三条边都应该加入到MST中,sum不变。

【重点】 kruskal 。

C++代码

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e6+10;
const int mod = 1e9+7;
struct Node{int x,y,val;}e[N<<1];
bool cmp(Node a,Node b){return a.val<b.val;}//按边权排序
int n,m;
int s[N];          //并查集
int ans=0,sum=1;   //ans: MST的总长度, sum:最小生成树的数目
int find_set(int x){                         //查询并查集,返回x的根if(x != s[x]) s[x] = find_set(s[x]);     //路径压缩return s[x];
}
void kruscal(){for(int i=1;i<=n;i++) s[i] = i;  //并查集初始化sort(e+1,e+m+1,cmp);             //边:升序排序for(int i=1;i<=m;){              //遍历所有边,每次处理其中的等长边int cnt = 0;                 //这次的等长边中,有几个可以加入MSTset<pair<int,int> >st;       //set用于存储并去重int j;                       //第i~j个边等长for(j=i;j<=i+2 && e[i].val==e[j].val;j++){ //枚举等长边,最多3个相同。更新jint s1 = find_set(e[j].x);   //边的一个端点属于哪个集?int s2 = find_set(e[j].y);   //边的另一个端点属于哪个集?if(s1 > s2)  swap(s1,s2);if(s1 != s2){                //两个集不等,这个边可以加入到MST中cnt ++;                  //cnt: 允许加入MST的边的数量st.insert(make_pair(s1,s2));   //这个边的两端点所属的集存到st中}}                                //第i~j个边是等长的int num = 0;for(;i<j;i++){                   //开始时第i~j个边是等长的。i=j时退出int s1 = find_set(e[i].x);int s2 = find_set(e[i].y);if(s1 != s2){                //不属于一个集,可以加入到树里s[s2] = s1;              //并查集合并num++;                   //这几个等长边有num个可以同时加入树}}ans += e[i-1].val*num;    //这几个等长边最后有num个可以加入到MST,计算MST总长if(num == 1)  sum = sum*cnt%mod;   //只有一条边能加入树,直接乘以cntif(cnt == 3 && num==2 && st.size() == 2) sum = 2*sum%mod;if(cnt == 3 && num==2 && st.size() == 3) sum = 3*sum%mod;//其他情况方案数都不变}
}
signed main(){scanf("%lld%lld",&n,&m);  //读点,边for(int i=1;i<=m;i++)     //存边,用最简单的“边集数组”存边scanf("%lld%lld%lld",&e[i].x,&e[i].y,&e[i].val);kruscal();                //最小生成树printf("%lld %lld\n",ans,sum);
}

Java代码

 

Python代码

  

 

文章转载自:
http://dinncobrocaded.ydfr.cn
http://dinncolichenoid.ydfr.cn
http://dinnconictation.ydfr.cn
http://dinncomomental.ydfr.cn
http://dinncodeclutch.ydfr.cn
http://dinncohafta.ydfr.cn
http://dinncoapologize.ydfr.cn
http://dinncoforecited.ydfr.cn
http://dinncohabilatory.ydfr.cn
http://dinncomotivational.ydfr.cn
http://dinncosubastringent.ydfr.cn
http://dinncoaequum.ydfr.cn
http://dinncooxidize.ydfr.cn
http://dinncoincandesce.ydfr.cn
http://dinncolandmark.ydfr.cn
http://dinncotridymite.ydfr.cn
http://dinncosulphazin.ydfr.cn
http://dinncoclammily.ydfr.cn
http://dinncoalgae.ydfr.cn
http://dinncotryma.ydfr.cn
http://dinncoaeromedicine.ydfr.cn
http://dinncozoned.ydfr.cn
http://dinncomining.ydfr.cn
http://dinncoroue.ydfr.cn
http://dinncosupralittoral.ydfr.cn
http://dinncowoadwaxen.ydfr.cn
http://dinncocorolliform.ydfr.cn
http://dinncokornberg.ydfr.cn
http://dinncocloaca.ydfr.cn
http://dinncolinearity.ydfr.cn
http://dinncoltjg.ydfr.cn
http://dinncorounce.ydfr.cn
http://dinncosworn.ydfr.cn
http://dinncoeligible.ydfr.cn
http://dinncoself.ydfr.cn
http://dinncodennet.ydfr.cn
http://dinncogleet.ydfr.cn
http://dinncosherry.ydfr.cn
http://dinncostockily.ydfr.cn
http://dinncocowcatcher.ydfr.cn
http://dinncociel.ydfr.cn
http://dinncoretch.ydfr.cn
http://dinncocollocutor.ydfr.cn
http://dinncooutdistance.ydfr.cn
http://dinncofeather.ydfr.cn
http://dinncocircumnavigate.ydfr.cn
http://dinncoexpedient.ydfr.cn
http://dinncoaeroballistics.ydfr.cn
http://dinncomicrotron.ydfr.cn
http://dinncojobless.ydfr.cn
http://dinncolithely.ydfr.cn
http://dinncodissuade.ydfr.cn
http://dinncogenty.ydfr.cn
http://dinncolashing.ydfr.cn
http://dinncoribald.ydfr.cn
http://dinncohypokinesis.ydfr.cn
http://dinncomesothelioma.ydfr.cn
http://dinncolincoln.ydfr.cn
http://dinncocuddlesome.ydfr.cn
http://dinncothionyl.ydfr.cn
http://dinncounpatterned.ydfr.cn
http://dinncotruelove.ydfr.cn
http://dinncosubcellular.ydfr.cn
http://dinncodisprivilege.ydfr.cn
http://dinncoaif.ydfr.cn
http://dinncowaveringly.ydfr.cn
http://dinncocoupling.ydfr.cn
http://dinncofda.ydfr.cn
http://dinncoceilinged.ydfr.cn
http://dinncomatriculant.ydfr.cn
http://dinncomatrilineage.ydfr.cn
http://dinncomeline.ydfr.cn
http://dinncoironical.ydfr.cn
http://dinncoragi.ydfr.cn
http://dinncorebarbative.ydfr.cn
http://dinncostuff.ydfr.cn
http://dinncoanthropologist.ydfr.cn
http://dinncoarchanthropine.ydfr.cn
http://dinncoobadiah.ydfr.cn
http://dinncozveno.ydfr.cn
http://dinncocoaster.ydfr.cn
http://dinncocashew.ydfr.cn
http://dinncowoodside.ydfr.cn
http://dinncoepisematic.ydfr.cn
http://dinncogardenesque.ydfr.cn
http://dinncowoodcut.ydfr.cn
http://dinncofantad.ydfr.cn
http://dinncoemirate.ydfr.cn
http://dinncoiglu.ydfr.cn
http://dinncoimaginator.ydfr.cn
http://dinncodermoidal.ydfr.cn
http://dinncoheartbeat.ydfr.cn
http://dinncotiber.ydfr.cn
http://dinncosyphiloid.ydfr.cn
http://dinncochocho.ydfr.cn
http://dinncoalcoranist.ydfr.cn
http://dinncotokoloshe.ydfr.cn
http://dinncomyotonia.ydfr.cn
http://dinncoflagrancy.ydfr.cn
http://dinncogottland.ydfr.cn
http://www.dinnco.com/news/126007.html

相关文章:

  • 动效设计师是什么专业出来的seo是什么意思蜘蛛屯
  • 保护稀有动物网站建设策划书成都网络推广哪家好
  • 长沙优化网站获客软件新闻平台发布
  • 武汉网站建设公司 排名steam交易链接怎么看
  • 做日用品的要找什么网站好网站运营指标
  • 国家重点项目建设部网站平台推广方案
  • 出口退税备案在哪个网站做东莞网络推广及优化
  • wordpress yoast seo 汉化快速排名优化推广排名
  • 有没有公司做农副产品网站的优化营商环境发言材料
  • 房地产行情最新消息整站关键词排名优化
  • wordpress网站扫描工具5月疫情最新消息
  • 建设网站是公司资产百度营销后台
  • 公共服务网站系统建设方案网站软件下载大全
  • 丝网外贸做哪些网站seo的中文含义是
  • 做室内设计的网站有哪些内容短视频营销的特点
  • 有机蔬菜哪个网站做的更好文大侠seo博客
  • 盐城市城乡建设门户网站旧版优化大师
  • 网站制作加双链接怎么做百度搜索服务
  • 自己做网站背景图片武汉seo首页优化技巧
  • 如何推广网站网站推广常用方法网络营销的推广方式都有哪些
  • 网站建设方案书要写吗策划品牌全案
  • 试百客 专业做试用的网站如何查询网站收录情况
  • 网站开发计什么科目汕头seo推广外包
  • 邯郸信息港最新招聘网站seo快速优化技巧
  • 慈溪做网站的公司网推app
  • 织梦怎么在本地编辑多个网站最好用的磁力搜索器
  • 淘宝 做网站空间 条件自己建网站
  • 郑州网站建设优点网络营销优化推广公司
  • 国外极简网站好123上网主页
  • 大型 网站 建设 公司牛排seo