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

网站建设专业的公司wordpress注册邮件无法

网站建设专业的公司,wordpress注册邮件无法,深圳市住房和建设局工程交易服务主页,大连网站网页设计公司【题目描述】 B地区在地震过后#xff0c;所有村庄都造成了一定的损毁#xff0c;而这场地震却没对公路造成什么影响。但是在村庄重建好之前#xff0c;所有与未重建完成的村庄的公路均无法通车。换句话说#xff0c;只有连接着两个重建完成的村庄的公路才能通车#xff…【题目描述】 B地区在地震过后所有村庄都造成了一定的损毁而这场地震却没对公路造成什么影响。但是在村庄重建好之前所有与未重建完成的村庄的公路均无法通车。换句话说只有连接着两个重建完成的村庄的公路才能通车只能到达重建完成的村庄。   给出B地区的村庄数N村庄编号从0到N-1和所有M条公路的长度公路是双向的。并给出第i个村庄重建完成的时间t[i]你可以认为是同时开始重建并在第t[i]天重建完成并且在当天即可通车。若t[i]为0则说明地震未对此地区造成损坏一开始就可以通车。之后有Q个询问(x, y, t)对于每个询问你要回答在第t天从村庄x到村庄y的最短路径长度为多少。如果无法找到从x村庄到y村庄的路径经过若干个已重建完成的村庄或者村庄x或村庄y在第t天仍未重建完成 则需要返回-1。 输入输出格式 输入格式 输入文件rebuild.in的第一行包含两个正整数NM表示了村庄的数目与公路的长度。   第二行包含N个非负整数t[0], t[1], …, t[N – 1]表示了每个村庄重建完成的时间数据保证了t[0] ≤ t[1] ≤ … ≤ t[N – 1]。   接下来M行每行3个非负整数i, j, ww为不超过10000的正整数表示了有一条连接村庄i与村庄j的道路长度为w保证i≠j且对于任意一对村庄只会存在一条道路。   接下来一行也就是M3行包含一个正整数Q表示Q个询问。   接下来Q行每行3个非负整数x, y, t询问在第t天从村庄x到村庄y的最短路径长度为多少数据保证了t是不下降的。 输出格式 输出文件rebuild.out包含Q行对每一个询问(x, y, t)输出对应的答案即在第t天从村庄x到村庄y的最短路径长度为多少。如果在第t天无法找到从x村庄到y村庄的路径经过若干个已重建完成的村庄或者村庄x或村庄y在第t天仍未修复完成则输出-1。 输入输出样例 输入样例#1 4 5 1 2 3 4 0 2 1 2 3 1 3 1 2 2 1 4 0 3 5 4 2 0 2 0 1 2 0 1 3 0 1 4 输出样例#1 -1 -1 5 4思路 这个其实是个最短路问题用的是Floyd算法不过要在Floyd的过程中加入一些东东 我们floyd的3层循环如下 for (int k1;k n;k) for (int i 1;i n;i) for (int j1;j n;j) w[i][j]min(w[i][j],w[i][k]w[k][j]);这里的k层循环(第一层)枚举的是经过哪一些点作为中间点来缩短i-j的距离。 可以理解为用了前k个点作为中间点来尝试更新任意两点之间的距离。这点可以为我们所利用。 看一下我们的询问x,y,time 如果t[x] 或者t[y]time则肯定是输出-1的。 对于其他的 我们可以在k层循环中的i,j循环完毕之后加上下面这些东西。 即 for (k1-n) { for (i1-n) for (j 1-n) … 在这个位置加上我们下面所说的东西 } k层循环仍是枚举n个点。 如果t[k]a[now].time且t[k1] a[now].time 则k可以继续枚举。表示我们可以利用k和k1来作为中间点更新任意两点之间的距离。 如果遇到t[k]a[now].time且t[k1]a[now].time。 则表示我们最多只能用k来作为中间点更新任意两点之间的距离了。 这时我们只能尝试在利用前k个点之后输出w[x][y]了。 不能再用k1这个点了。因为k1这个点在a[now].time时还没有修建好。 遇到这样的k之后。now.(a[now].time是随着now的增加递增的)。 如果now递增后t[k1]a[now].time了。则可以继续利用k1来作为中间点更新任意两点之间的距离。 然后我们把k层循环的下界改为0. 因为可能有在0时刻的询问 大概就是这样啦大家可以看看代码 AC代码 #include cstdio #include cstringstruct question //用结构体把询问存下来。 {int x, y, time; };int n, m, t[201] { 0 }, w[201][201], q; //t数组是各个节点修建好的时间。 question a[50001] { 0 };void input_data() {memset(w, 127 / 3, sizeof(w));//一开始w数组赋值为一个很大的数字。scanf(%d%d, n, m);for (int i 1; i n; i) //输入各个节点修建好的时刻。scanf(%d, t[i]);for (int i 1; i m; i) //输入边权信息。{int x, y, z;scanf(%d%d%d, x, y, z);x; y;w[x][y] w[y][x] z;}scanf(%d, q);for (int i 1; i q; i) //输入q个询问。{scanf(%d%d%d, a[i].x, a[i].y, a[i].time);a[i].x;a[i].y;} }void get_ans() {int now 1;t[n 1] t[n] 10000; //这是防止上溢。for (int k 0; k n; k) //k从0开始枚举{for (int i 1; i n; i) //以k作为中间节点尝试更新任意两点之间的距离。for (int j 1; j n; j)if (w[i][j] w[i][k] w[k][j])w[i][j] w[i][k] w[k][j];while (now q t[k] a[now].time t[k 1] a[now].time){//如果询问还没结束。且这个节点在所询问的时间内。且k1这个节点修建的时间超过询问的时间if (t[a[now].x] a[now].time || t[a[now].y] a[now].time)printf(-1\n);else //输出依靠前k个节点作为中间节点更新出的任意两点之间的距离{if (w[a[now].x][a[now].y] w[0][0])printf(-1\n);elseprintf(%d\n, w[a[now].x][a[now].y]);}now; //看一下下一个询问是否符合要求。}if (now q) //如果询问都输出了则结束。break;} }int main() {input_data();get_ans();return 0; }别忘了点赞哦( * ^ ▽ ^ * )
http://www.yutouwan.com/news/487394/

相关文章:

  • 网站运营策略如何做建设工程法律网站
  • 织梦网站首页模板更换的推网站模板
  • 上海设计网站大全北京建设高端网站的
  • 安阳网站建设商祺国外网站有备案吗
  • 茶叶市场网站建设方案佛山企业网站开发
  • 建一个网站买完域名后应该怎么做网站经营性备案
  • 南通网站建设培训asp.net 大型网站开发
  • 网站开发制作熊掌号公司网站设计素材
  • 南宁网站开发外包报价做网站要租服务器吗
  • 树形结构网站案例微信如何制作自己的公众号
  • 平面设计创意网站建设个人做金融网站能赚钱吗
  • 合肥有哪些做网站的公司品牌策划案案例
  • 小程序外包公司哪家好电商网站如何做优化
  • 周口建设公司网站教育类网站建设
  • 没有备案网站可以做优化么wordpress 4.7.5
  • 外贸网站风格兰州网络优化
  • 网站扫码怎么做的企业内部的网站系统
  • 山东网站制作谷歌关键词排名查询工具
  • 家庭网络搭建网站美篇相册制作免费下载app
  • 网站支付接口如何做wordpress functions.php 在哪
  • 介绍营销的网站营销策划公司名字大气好听
  • 柳州做网站的四个商城建设
  • 重庆网站建设公司哪家好wordpress 引流
  • 郑州网站建设及优化wordpress 4.3.18漏洞
  • 深圳高端网站网站建设 素材
  • 网站开发工程师asp考试试题中国字体设计网站
  • 专业的东莞网站推广温州网站建设方案表
  • 做intor的网站一般通过逸民
  • 哪些网站做二手挖机嵌入式软件开发平台有哪些
  • 黑龙江生产建设兵团知识网站做网站用什么虚拟主机