[USACO08JAN]电话线Telephone Lines
【TimeGate】 https://www.luogu.org/problem/P1948 【解题思路】 本题的解法:二分答案+spfa 【code】 1 #include<cstdio> 2 #include<cstring> 3 #include<cmath> 4 #include<algorithm> 5 using namespace std; 6 int a,b,l,c,i,j,k,n,K,p,mid,nxt[20005],t=0,w[20005],h[20005],endd[20005],dis[20005],ans,leftt,rightt; 7 bool lastt[20005],ok; 8 void add(int u,int v,int x) { 9 t++; 10 nxt[t]=h[u]; 11 h[u]=t; 12 w[t]=x; 13 endd[t]=v; 14 } 15 bool SPFA(int x){ 16 for(i=1;i<=n;i++){ 17 lastt[i]=false; 18 dis[i]=1<<30; 19 } 20 ok=true; 21 dis[1]=0,lastt[1]=true; 22 while(ok){ 23 ok=false; 24 for(j=1;j<=n;j++) 25 if(lastt[j]==true){ 26