摘要:        
题目大意:有n个电站,每个电站都有一定的电量,电站之间有一定距离,我们要从0点出发去占领一些电站,使得占领的电站电量之和超过总电量的一半,求达到条件所要走的最短距离。如果可能的话,输出距离,否则输出不可能。题解:首先计算所有点到起点的最短路,就得到了代价,现在又有价值,那么就是一个01背包~#inc...    阅读全文
posted @ 2014-03-23 19:16
forever97
阅读(209)
评论(0)
推荐(0)
        
            
        
        
摘要:        
题目大意:给定无向图,每一条路上都有限重,求能到达目的地的最大限重,同时算出其最短路。题解:由于有限重,所以二分检索,将二分的值代入最短路中,不断保存和更新即可。#include #include #include #include using namespace std; const int N=20005; const int INF=9999999; typedef pairseg; priority_queue,greater >q; int l,r,mid,begin,end,d[N],head[N],u[N],v[N],w[N],next[N],le[N],n...    阅读全文
posted @ 2014-03-23 16:13
forever97
阅读(244)
评论(0)
推荐(0)
        
            
        
        
摘要:        
题解:由于是多个起点和单个终点,所以反向构图,那么就是多个终点和单个起点了,于是直接最短路。#include #include #include #include using namespace std; const int N=20005; const int INF=9999999; typedef pairseg; priority_queue,greater >q; int begin,end,d[N],head[N],u[N],v[N],w[N],next[N],n,m,a,b,c,k; bool vis[N]; void build(){ mems...    阅读全文
posted @ 2014-03-23 15:21
forever97
阅读(180)
评论(0)
推荐(0)
        
            
        
        
摘要:        
最短路~#include #include #include #include using namespace std; const int N=20005; const int INF=9999999; typedef pairseg; priority_queue,greater >q; int begin,end,d[N],head[N],u[N],v[N],w[N],next[N],n,m,a,b,c; bool vis[N]; void build(){ memset(head,-1,sizeof(head)); for(int e=1;ed[...    阅读全文
posted @ 2014-03-23 14:56
forever97
阅读(159)
评论(0)
推荐(0)
        

 浙公网安备 33010602011771号
浙公网安备 33010602011771号