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

网站建设方案书备案wordpress版权加密

网站建设方案书备案,wordpress版权加密,加强专业建设的主要举措,分类信息导航网站模板例题地址 多源最短路径 多个源点多个终点可以使用Floyd算法直接求各源点到终点的最短距离#xff0c;也可以直接多次使用dijsktra算法求单源点到终点的最短距离 Floyd算法 使用条件 多源最短路径权值正负皆可 核心思想#xff1a;动态规划 子问题#xff1a; 设(A,B)…例题地址 多源最短路径 多个源点多个终点可以使用Floyd算法直接求各源点到终点的最短距离也可以直接多次使用dijsktra算法求单源点到终点的最短距离 Floyd算法 使用条件 多源最短路径权值正负皆可 核心思想动态规划 子问题 设(A,B)表示顶点A,B之间的距离则有可能(A,B)(A,C)(C,B)这说明AB之间的距离可以继续分解为AC,CB之间的距离问题我们可以找到一个子问题而这就体现了动态规划的思想 定义dp数组 因为从存储上来讲我们需要利用邻接矩阵所以AB间的最短距离表示至少需要两个维度i和j所以dp数组至少有两个维度。又因为从子问题的角度我们分解问题的出发点是找一个中间结点比较AB的最短距离经过中间结点C会不会更短。所以定义一个新的维度k其含义是考虑下标从1开始到k结束的k个顶点是否应该加入到路径中去。(这个定义有鲜明的dp特色,学过dp应该不难理解) 因此dp数组的定义如下dp[i][j][k]表示考虑下标1~k的k个顶点的 i到j的最短距离 递推公式 根据定义不难想到递推公式就是是否应该将下标为k的结点是否值得加入到路径中去不加入k结点dp[i][j][k - 1] (言外之意就是i和j已经连通加入k结点不值得)加入k结点dp[i][k][k - 1] dp[k][j][k - 1]完整公式dp[i][j][k] min(dp[i][j][k - 1], dp[i][k][k - 1] dp[k][j][k - 1]); 初始化 处理输入时要考虑k这个维度应该怎么设置。一种简单的想法是把k设置无关紧要或者无意义的数值(根据不同题目需要可能是INT_MAX/INT_MIN/0)这里设置为0 dp[u][v][0] w; 遍历顺序 其实这个很简单根据递推公式dp[i][j][k-1]中k-1个维度的数据必须知道否则会造成无意义的更新所以k必须在外层循环 个人代码 using namespace std; using ll long long; int n, m, u, v, w,q,start,ed; void solve() {cin n m;vector vectorvectorintdp(n 1, vectorvectorint(n 1, vectorint(n 1, 10009)));//dp数组while (m--) {cin u v w;dp[u][v][0] w;dp[v][u][0] w;}for (int k 1; k n; k) {for (int i 1; i n; i) {for (int j 1; j n; j) {dp[i][j][k] min(dp[i][j][k - 1], dp[i][k][k - 1] dp[k][j][k - 1]);}}}cin q;while (q--) {cin start ed;cout (dp[start][ed][n] 10009 ? -1 : dp[start][ed][n])endl;} } int main() {std::ios::sync_with_stdio(false);std::cin.tie(0); std::cout.tie(0);solve();return 0; }注意事项 dp数组不应该设置为最大值INT_MAX否则会相加溢出导致数据异常 vector vectorvectorintdp(n 1, vectorvectorint(n 1, vectorint(n 1, 10009))); 空间优化版 直接删去了k这一个维度因为利用更新后的数据(第k层的)dp[i][k] dp[k][j]更新自己同一层(第k层的)数据也能得到正确结果 #includebits/stdc.h using namespace std; using ll long long; int n, m, u, v, w,q,start,ed; void solve() {cin n m;vector vectorintdp(n 1,vectorint(n1,10009));//dp数组while (m--) {cin u v w;dp[u][v] w;dp[v][u] w;}for (int k 1; k n; k) {for (int i 1; i n; i) {for (int j 1; j n; j) {dp[i][j] min(dp[i][j], dp[i][k] dp[k][j]);}}}cin q;while (q--) {cin start ed;cout (dp[start][ed] 10009 ? -1 : dp[start][ed])endl;} } int main() {std::ios::sync_with_stdio(false);std::cin.tie(0); std::cout.tie(0);solve();return 0; }多次使用dijsktra算法 核心思路 将dijsktra定义为函数传入dist数组的拷贝(没有引用)作参数,传入st,ed分别作为源点和终点在函数内初始化dist数组 个人代码 #includebits/stdc.h using namespace std; using ll long long; int n, m, s, e, v,q,st,ed;//su,ev,vw; void dijkstra(vectorvectorintgrid, vectorboolvisited, vectorintdist,int st,int ed) { //vectorboolvisited和vectorintdist一定不能传入引用的形式dist[st]0;//一定要在这里初始化dist[st]for (int i 1; i n - 1; i) {int temp INT_MAX;int cur 0;for (int j 1; j n; j) {if (!visited[j] dist[j] temp) {temp dist[j];cur j;}}visited[cur] true;for (int j 1; j n; j) {if (grid[cur][j] ! INT_MAX !visited[j] dist[cur] grid[cur][j] dist[j]) {dist[j] dist[cur] grid[cur][j];}}}cout (dist[ed] INT_MAX ? -1 : dist[ed]) endl; } void solve() {cin n m;vectorvectorintgrid(n 1, vectorint(n 1, INT_MAX));vectorboolvisited(n 1, false);vectorintdist(n 1, INT_MAX);while (m--) {cin s e v;grid[s][e] v;grid[e][s] v;}cin q;while (q--) {cin st ed;dijkstra(grid, visited, dist,st,ed);}} int main() {std::ios::sync_with_stdio(false);std::cin.tie(0); std::cout.tie(0);solve();return 0; }本文参考于代码随想录
http://www.w-s-a.com/news/674641/

相关文章:

  • 天津市武清区住房建设网站网站自适应框架
  • 制作移动网站公司网站开发职业规划
  • 网站头部怎样做有气势wordpress 页面 锚
  • 秦皇岛网站建设系统推荐个人网站免费制作
  • 我做夫人那些年网站登录wordpress 扫码付费
  • 网站关键词代码怎么做公司 网站建设
  • 哈尔滨多语言网站建设wordpress分类链接
  • 购物网站项目介绍软件开发流程的五大步骤
  • 做的网站怎么放在网上2008 iis搭建网站
  • 网站维护服务公司上海兼职网站制作
  • 企业做网站需要多少钱湘潭九华网站
  • 嘉兴建站服务微营销官网
  • 比较好的网页模板网站浦项建设(中国)有限公司网站
  • 有趣的个人网站网页设计与制作的岗位职责
  • 有建设网站的软件吗长沙做网站的公司对比
  • 网站的外链接数中铝长城建设有限公司网站
  • 北京建设网站公司网站建设费用 无形资产
  • 适合seo的建站系统如何建立网页
  • 我想自己建立一个网站给大家分享个永久免费的云服务器
  • 怎样做网站和网站的友情链接官网优化 报价
  • 购买网站空间大小聊城网站空间公司
  • 做像美团淘宝平台网站多少钱开发网站企业
  • 网站建设前期费用二手购物网站策划书
  • dede学校网站百度联盟是什么
  • 献县网站建设网站开发专业定制
  • 龙华做网站yihe kj安徽六安彩礼一般给多少
  • flash网站建设公司我的小程序在哪里找
  • 建网站需要数据库吗如何制作简单的网页链接
  • 杭州设计企业网站高端公司上虞做网站公司
  • 做网站能赚钱么用wordpress搭建知名网站