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

分类目录网站程序网上建立网站

分类目录网站程序,网上建立网站,佛山企业网站设计,什么最便宜网站建设多源最短路#xff1a;即图中每对顶点间的最短路径 floyd算法本质是动态规划#xff0c;⽤来求任意两个结点之间的最短路#xff0c;也称插点法。通过不断在两点之间加⼊新的点#xff0c;来更新最短路。 适⽤于任何图#xff0c;不管有向⽆向#xff0c;边权正负…多源最短路即图中每对顶点间的最短路径 floyd算法本质是动态规划⽤来求任意两个结点之间的最短路也称插点法。通过不断在两点之间加⼊新的点来更新最短路。 适⽤于任何图不管有向⽆向边权正负但是最短路必须存在也就是不存在负环。 状态表⽰ f[k][i][j] 表⽰仅仅经过 [1, k] 这些点结点 i ⾛到结点 j 的最短路径的⻓度。状态转移⽅程 第⼀种情况不选新来的点 f[k][i][j] f[k - 1][i][j] 第⼆种情况选择新来的点 f[k][i][j] f[k - 1][i][k] f[k - 1][k][j] 空间优化只会⽤到上⼀层的状态因此可以优化到第⼀维。初始化 f[i][i] 0 f[i][j] 为初始状态下 i 到 j 的距离如果没有边则为⽆穷。 填表顺序 ⼀定要先枚举 k 再枚举 i 和 j 。因为我们填表的时候需要依赖的是 k - 1 层的状态因此 k 必须先枚举。 B3647 【模板】Floyd - 洛谷 #include bits/stdc.h using namespace std;const int N 110;int n, m; int f[N][N];int main() {ios::sync_with_stdio(false);cin.tie(0);cin n m;memset(f, 0x3f, sizeof f);for (int i 1; i n; i) f[i][i] 0;for (int i 1; i m; i){int a, b, c; cin a b c;f[a][b] f[b][a] min(f[a][b], c);}//floydfor (int k 1; k n; k)for (int i 1; i n; i)for (int j 1; j n; j)f[i][j] min(f[i][j], f[i][k] f[k][j]);for (int i 1; i n; i){for (int j 1; j n; j)cout f[i][j] ;cout endl;}return 0; }P2910 [USACO08OPEN] Clear And Present Danger S - 洛谷 #include bits/stdc.h using namespace std;typedef long long LL;const int N 110, M 1e4 10;int n, m; int a[M]; int f[N][N];int main() {ios::sync_with_stdio(false);cin.tie(0);cin n m;for (int i 1; i m; i) cin a[i];for (int i 1; i n; i)for (int j 1; j n; j)cin f[i][j];for (int k 1; k n; k)for (int i 1; i n; i)for (int j 1; j n; j)f[i][j] min(f[i][j], f[i][k] f[k][j]);LL ret 0;for (int i 2; i m; i){int x a[i-1], y a[i];ret f[x][y];}cout ret endl;return 0; }P1119 灾后重建 - 洛谷 在floyd算法中我们是⼀个点⼀个点加⼊到最短路的更新中那么这道题其实就是限制了我们加点的时机。当从前往后遍历每次询问的时候直到时间点在询问的时间t之前的点都可以加⼊到最短路的更新中。 那么就可以⼀边读取询问⼀边通过时间限制更新最短路 #include bits/stdc.h using namespace std;const int N 210, INF 0x3f3f3f3f;int n, m; int t[N]; int f[N][N];void floyd(int k) {for (int i 0; i n; i)for (int j 0; j n; j)f[i][j] min(f[i][j], f[i][k] f[k][j]); }int main() {ios::sync_with_stdio(false);cin.tie(0);cin n m;for (int i 0; i n; i) cin t[i];memset(f, 0x3f, sizeof f);for (int i 0; i n; i) f[i][i] 0;for (int i 1; i m; i){int a, b, c; cin a b c;f[a][b] f[b][a] min(f[a][b], c);}int Q; cin Q;int pos 0;while (Q--){int a, b, c; cin a b c;while (pos n t[pos] c) floyd(pos);if (t[a] c || t[b] c || f[a][b] INF) cout -1 endl;else cout f[a][b] endl;}return 0; }P6175 无向图的最小环问题 - 洛谷 floyd算法的性质 在计算第 k 层的时候 f[i][j] ⾥⾯存储着中转点为 [1, k - 1] 时的最短路。如果设环⾥的最⼤结点的编号为 k 与k相邻的点为 i, j 其中 i k j k i ! j 那么我们在floyd算法循环到 k 的时候这个环的最⼩⻓度为 f[i][j] e[i][k] e[j][k] 。环的最⼤编号是任意的因此在所有情况下取最⼩值即可 #include bits/stdc.h using namespace std;const int N 110, INF 1e8;int n, m; int e[N][N]; int f[N][N];int main() {ios::sync_with_stdio(false);cin.tie(0);cin n m;//memset(e, 0x3f, sizeof e);//memset(f, 0x3f, sizeof f);for (int i 1; i n; i)for (int j 1; j n; j)f[i][j] e[i][j] INF;for (int i 1; i n; i) e[i][i] f[i][i] 0;for (int i 1; i m; i){int a, b, c; cin a b c;e[a][b] e[b][a] f[a][b] f[b][a] min(e[a][b], c);}int ret INF;for (int k 1; k n; k){//最小环for (int i 1; i k; i)for (int j i1; j k; j)ret min(ret, f[i][j] e[i][k] e[k][j]);//最短距离for (int i 1; i n; i)for (int j 1; j n; j)f[i][j] min(f[i][j], f[i][k] f[k][j]);}if (ret INF) cout No solution. endl;else cout ret endl;return 0; }
http://www.zqtcl.cn/news/269367/

相关文章:

  • 门户型网站特点网站营销推广的公司
  • wordpress gif主题seo兼职怎么收费
  • 商城免费建站系统手机端首页尺寸多少
  • 网站上存储播放视频怎么做wordpress 作品集 相册
  • 建设网工程信息南昌官网seo厂家
  • 上海网站seo牛巨微网页设计模板html代码个人介绍
  • 网站 架构 设计公司网站建设费怎么做账
  • 合肥电脑网站建站萍乡手机网站建设
  • 优化seo网站西安wordpress 做购物网站
  • 广州建设档案馆网站稿定设计app免费版官方
  • 橙色企业网站源码建设工程投标文件在哪个网站有发布
  • 服务器可以做网站吗深圳高端网站建设创新
  • 企业平台网站建设方案大连网络广告
  • 如何给网站做宣传新手怎么建立自己网站
  • 酒店和网站对接如何做开发网站那个好
  • 北京建设信源咨询有限公司网站快对小程序入口
  • 湖北人工智能建站系统软件城乡建设官网
  • 广东模板建站平台设计网站
  • 晋江市住房和城乡建设网站二进制可以做网站是吗
  • 企业网站优化的方式网站开发 -(广告)
  • 素材解析网站搭建wordpress 提问
  • 域名解析网站安卓android系统下载
  • 相亲网站做推广的照片是谁广告优化师前景
  • 营销导向的网站建设的主要流程陕煤建设集团网站
  • 电商网站销售数据分析网页美工设计实训报告
  • 百度新网站收录wordpress免刷新插件
  • 如何做好网站外链c#+开发网站开发
  • 展示型网站报价网站目录创建下载链接
  • cloudflare做侵权网站建设网站需要什么知识
  • 软装设计公司名称怎样给网站做优化