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

做网站实现登陆功能网站开发要注意的漏洞

做网站实现登陆功能,网站开发要注意的漏洞,猪八戒网网站设计,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.hkea.cn/news/14388376/

相关文章:

  • 一个主体可以备案几个网站百度官网认证网站
  • 我的世界查找建筑网站湖北招聘网
  • 通用cms网站wordpress 默认插件
  • 建公司网站需要多少钱科技网络网站建设
  • wordpress 用iis建站沛县做网站xlec
  • 东莞容桂网站制作北海哪家做网站
  • 搞笑证书图片在线制作seo百度关键词优化
  • 网站所有页面只显示域名济南万速网站建设
  • 编辑网站的软件手机软件宁波做公司网站
  • 网站建设400电话三只松鼠网站建设
  • 网站设计美工排版编辑微信可以怎么创建账户网站
  • 网站建设需要了解哪些方面企业地址管理系统
  • 前端网站论文公众号推广代理
  • 东莞哪里建设网站好新媒体运营工资一般多少
  • 网站地链接结构做asp网站的实验收获
  • 专业做调查的网站wordpress短代码插件
  • 怎么做关不掉的网站wordpress 企業網
  • 百度网站推广怎么样站长如何做导航网站
  • 有哪些程序做的网站网站建设与服务技能实训心得体会
  • 海口网站建设维护asp.net企业网站管理系统
  • 网站建设方案书1500一周热点新闻
  • 商业信息网站大全如何将自己做的网站导入淘宝
  • 莱芜0634技术支持 宿州网站建设官方网站建设 省心磐石网络
  • 网站建设最新报价seo交流中心
  • ps 做网站切图微商引流推广平台
  • 书生网站提供扬中网站建设
  • 山东省建设局网站监理员考试wordpress缩略图特效
  • 门户网站的主要功能英语seo什么意思
  • 免费网站建立wordpress上传歌曲
  • 江苏网站设计电商网站图片是谁做