首页 > TAG信息列表 > dis1

GYM100851 F - Froggy Ford(最短路铜牌题)

题意: ​ 现在有一条河,河中有n个石头,你需要从河的一端到河的另一端。现在你有一次机会在任意位置放置一个石头,请问石头放在哪里可以使过河的最长路径最短。请输出放置的石头坐标。 思路: ​ n的规模是\(1e3\),所以可以做到\(n^2\)的算法,我们把起点和终点也当做一块石头,基于贪心的思想

【题解】P1073 [NOIP2009 提高组] 最优贸易(图论,最短路,SPFA)

【题解】P1073 [NOIP2009 提高组] 最优贸易 此题妙哉! 虽然说这只是道绿题,但是还是卡了我好久,主要是这道题里面有两个思想我完全想不到。我太菜了 写一下思路来记录一下这道绝妙的题目吧。 题目链接 [NOIP2009 提高组] 最优贸易 - 洛谷 题意概述 有一张 \(n\) 个点 \(m\) 条边的图

[oiclass2478] Kamp:树形DP+换根+最长链

题意 一颗树 \(n\) 个点,\(n-1\) 条边,经过每条边都要花费一定的时间,任意两个点都是联通的。 有 \(K\) 个人(分布在 \(K\) 个不同的点)要集中到一个点举行聚会。 聚会结束后需要一辆车从举行聚会的这点出发,把这 \(K\) 个人分别送回去。 请你回答,对于 \(i=1\sim n\),如果在第 \(i\) 个点

二分数组的一些搜索方法

Array.prototype.findSort=function(num1) { var hasSortArr=this; var l=0,r=hasSortArr.length; var lock=-1; var dis=0; var dis1=0,dis2=0; if(hasSortArr.length>0){ dis1=num1-hasSortArr[0]; if(dis1<=0){ return [0,dis1] } dis2=num1-

P7293-[USACO21JAN]Sum of Distances P【统计,bfs】

正题 题目链接:https://www.luogu.com.cn/problem/P7293 题目大意 有 k k k张联通无向图,有 k k k个

5683 道路拆除

5683 道路拆除 这个题也就是最短路径呗,挺好的,我猜猜,首先求一下最短路径然后把不是最短路径的边全部删去 很显然我猜错了 由起点开始到两个终点,很容易理解是最短路 接着想,直接最短路是行不通的,因为我们要求经过的次数,直接最短路过重复 那么怎么样子做到不重复? 于是就要跑三遍

CF986A

今天中午把这个写了,BFS就可以收尾了。 再也不可以咕到明天了!再咕我就是大鸽子! 进入正文: 有一定难度的BFS! 说白了,有难度的BFS就只有这几种情况吧(个人认为): 1.需要逆向解决(即多起点单终点) 经典例子:P1332 血色先锋队 2.不一样的障碍物(如动态,传送门等) 经典例子:P1825 [USACO11OPEN]Corn

个人项目

个人项目 这个作业属于哪个课程 网工1934-软件工程 这个作业要求在哪里 作业要求 这个作业的目标 PSP表格的使用,基本开发流程的了解与知识的学习,程序测试与开发。 Github地址 Github地址 一丶PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际

[USACO06NOV]Roadblocks G /次短路模板

[USACO06NOV]Roadblocks G 只需要在最短路的基础上改亿改就可以了 两个数组 \(dis1[]\)存储最短路 \(dis2[]\)存储次短路 次短路分三种情况 可以更新最短路,次短路继承更新前的最短路,然后更新最短路(原因很简单,因为目前的最短路可以更新说明这不是最短路,但可能是此次短路 不能更新

最优贸易

嘟嘟嘟   换句话说,就是寻找一条从1到n的路径,使路径上两点x, y(先经过x再经过y)使val[x] - val[y]最大。 还可以用dp的思想来做这道题:令dis1[x]表示1到x的所有路径中val最小的点,dis2[x]表示从t到x的所有路径中val最大的点,这样答案就是max(dis2[x] - dis1[x])。 用dijkstra就可以实现

Path HDU - 6582【求最短路所有边+最小割】

题意:   给一个有向图,删除每一条边的代价是边的长度,要求花费最小的代价,使得 1→n1\to n1→n最短路变长,求该最小花费。 思路:   要使得最短路变长,那么删除的边一定要破坏原来的最短路。即要先把所有最短路的所有边找出来,通过删除某几条边,使得所有的最短路无效。   如何

ZJNU 1367 - Party--中高级

寻找从i到X,再从X到i的最短路 可以在正向图中从X开始跑一遍最短路,每个点的距离dis1[i]当作从X回到点i的距离 再将图反向从X再跑一遍,每个点的距离dis2[i]当作从i到点X的距离 最后搜索dis1[i]+dis2[i]值最大的输 1 /* 2 Written By StelaYuri 3 */ 4 #include<bits/stdc++.h> 5

火山哥周游世界 (树形dp)

题意:一共有n个国家,标号1~n,每条边都有一定的时间花费,任意两个国家之间两两可达。 火山哥一共决定去K个国家。现在他想要知道:如果他从第 i 个国家出发,经过这 K 个国家的最短时间是多少? 输入: 3 3 (n,k) 1 2 1 2 3 4 1 2 3 输出: 5 6 5 输入: 5 2 1 3 1 2 3 2 4 3 3 5 1 4 5 1 输

洛谷P1629 邮递员送信 最短路-Djistra

先上一波题目qwq https://www.luogu.org/problem/P1629· 复习了一波 dijstra 的 priority_queue(优先队列)优化的写法 tips: 求单项路中求每个点走到固定点的最短路可以把每条路倒过来 然后从固定点开始跑一次最短路即可 #include<cstdio>#include<cstring>#include<algorithm>#i

luogu 2474 [SCOI2008]天平

输入输出样例 输入 #1复制 6 2 5?+????-?+????-????????+????-?+????-? 输出 #1复制 1 4 1 输入 #2复制 14 8 4?+???++?????++-??=?=???????=??????????=????=??+?==?????????-???-???-??-=????????????-??=???=?-+??????=+?=???????????????????????????+?????????=???-???

[最短路,最大流最小割定理] 2019 Multi-University Training Contest 1 Path

题目:http://acm.hdu.edu.cn/showproblem.php?pid=6582 Path Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 3747    Accepted Submission(s): 1075 Problem Description Years later, Jerry fell in love

Silver Cow Party POJ - 3268(找各个点到源点来回路程最短中的最大值)

POJ—3268 One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1…N is going to attend the big cow party to be held at farm #X (1 ≤ X ≤ N). A total of M (1 ≤ M ≤ 100,000) unidirectional (one-way roads connects pairs of farms; road i

348.大陆争霸「SDOI2010」

#348.大陆争霸「SDOI2010」 #348. 大陆争霸「SDOI2010」 内存限制:256 MiB 时间限制:1000 ms 标准输入输出 题目类型:传统 评测方式:文本比较 题目描述 在一个遥远的世界里有两个国家:位于大陆西端的杰森国和位于大陆东端的 克里斯国。两个国家的人民分别信仰两个对立的神:杰森

UVA11374 Airport Express

题目链接 在刘汝佳的那本书上看到了这道题,思路:先预处理出起点到所有点以及终点到所有点的最短路径,然后就是枚举所有的商务边,因为只能有一条商务边,所以最优的路径肯定要么就是起点->商务边起点->商务边终点->终点,要么就是直接起点->终点。时间复杂度为预处理的mlogn加上k次枚举。最

双向存图解题

P1629 邮递员送信  P1342 请柬  P1821[USACO07FEB]银牛派对Silver Cow Party 都是求的往返的最大,最小路径,用堆优化的dijkstra跑两遍就行,都是板子题 银牛派对的代码: #include <iostream>#include <cstdio>#include <cstring>#include <queue>using namespace std;int dis1[100

[NOI2003]逃学的小孩

发现题目要求的相当于是在一颗树上面求\(dis(A,B)+min(dis(A,C),dis(B,C))\) 显然我们要最大化这个,前面的一定要是直径,后面那个直接随便乱求就行了。 /* mail: mleautomaton@foxmail.com author: MLEAutoMaton This Code is made by MLEAutoMaton */ #include<stdio.h> #incl

CF360E Levko and Game【贪心+dijsktra】

先把所有边可动设为r[i]又这些边不是l就是r(如果想一个方向改变能更优的话就尽量多的改变),每次跑dijsktra,对于可动边(x,y),如果dis1[x]<=dis2[x],那么就把这条边改为l[i] 感性理解是对于dis1[x]<=dis2[x]一定是希望这条边向后能成为最短路以符合要求,所以把这样的边到t的距离尽量缩短 #i

[题解] P1342 请柬

洛谷 P1342 思路 分别建一张原图,一张与原图中所有边方向相反的反图。在两张图上分别跑一遍SPFA,再计算出两次dis数组的和即可。 Code #include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#include<queue>typedef long long LL;#define maxn 1000005using names

记录PTA甲级以及C++部分语法知识1046-数组求和预处理

提前对数组求和降低时间复杂度。 #include<iostream> using namespace std; int Sum[100002]={0}; int Min(int a,int b){ return a<b? a:b; } int main(){ int N,i,a,b,temp; cin>>N; Sum[1]=0; for(i=2;i<=N;i++){ scanf("%d",&Sum[i]); Sum[i

【luogu1629】快递员送信 (spfa)

luoguP1629 邮递员送信 是该好好巩固一下QAQ 刷水题使我快乐 论两信竞学生如何讨论一道黄题纠结半个小时 正反各跑一遍spfa 用1次SPFA找各个点到点1的最短路,然后开一个反向图,再用SPFA搜一下点1到反向图各个点的最短路,反向图中点1到各个点的最短路就是普通图中各个点到点1的最短路