View Code struct PP{ int len,num; bool operator<(const PP &b) const{ return len > b.len; }}dis[30010];priority_queue<PP> Q;int vis[30010];void dijkstra(){ while(!Q.empty()) Q.pop(); int i,j,k; PP tmp; memset(vis,0,sizeof(vis)); for(i=1;i<=n;i++) { dis[i].num=... Read More
在别人的和擦粉约束列表里搜到的这题,看完题目果断感觉是水题根据s[b]-s[a]<=c来建图最后是求s[n]-s[1]的最大值,从1出发走一遍到n的最短路径就好但是超时了,果断不能接受。。。。别人的做法:用栈来代替spfa的队列,或者用dijkstra+heap来做。。晕倒,总之,又学到了一点。。。View Code #include<stdio.h>#include<stack>#include<string.h>using namespace std;const int INF = 9999999;struct NODE{ int v,w; int Read More
与intervals那题不同的是这题的点围成了一个圆0、1、2、3、4.。。。23、0一个巧妙地想法是增加一个点24,其他就和intervals那题差不多了,根据约束条件来建图View Code #include<stdio.h>#include<queue>#include<string.h>using namespace std;const int INF = 9999999;struct NODE{ int v,w; int next;}list[10000];int tot;int head[30];int dis[30];int vis[30];i Read More
真想知道那些几百ms的是怎么写的View Code #include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>using namespace std;struct point { double x,y;}p[100010],q[100010];double ans;inline double dis(point a,point b){ return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));}inline doubl Read More