摘要:
官方题解:若没有边权,则对点权从大到小排序即可。。考虑边,将边权拆成两半加到它所关联的两个点的点权中即可。。。因为当两个人分别选择不同的点时,这一权值将互相抵消。#include #include #include #include using namespace std;const int MAXN = 100010;int N, M;double node[MAXN];int main(){ while ( ~scanf( "%d%d", &N, &M ) ) { for ( int i = 1; i <= N; ++i ) scanf( &quo 阅读全文
posted @ 2013-08-06 21:07
冰鸮
阅读(209)
评论(0)
推荐(0)
摘要:
不是我做的……放在这里留着存底,有时间刷掉……原地址:http://www.haogongju.net/art/2033448先是经典的GSS系列吧网址就不贴了。。SPOJ GSS一搜就行了GSS1 线段树记下左右边的就行了。。水题 不解释GSS2 比较经典 必须得离线 排下序 从左到右扫一遍 具体细节自己想吧。。GSS3 同GSS1 加个修改。。太水了GSS4 好题啊 给个提示 开根几次就到1了。。GSS5 把各种细节处理好久OKGSS6 带插入的 写了个Splay 效率低下。。。必须+IO优化才能过 太弱了 T_TGSS7 树上GSS 这是我第一道LCT。。代码丑的一B LCT还是边看边写 阅读全文
posted @ 2013-08-06 20:47
冰鸮
阅读(545)
评论(0)
推荐(0)
摘要:
当火车处在换基站的临界点时,它到某两基站的距离相等。因此换基站的位置一定在某两个基站的中垂线上,我们预处理出任意两基站之间的中垂线,对于每次询问,求询问线段与所有中垂线的交点。检验这些交点是否满足条件(详见代码),如果满足,那么它是一个交换点。#include #include #include #include using namespace std;const int MAXN = 60;const double eps = 1e-7;struct Point{ double x, y; Point( double x = 0, double y = 0 ):x(x), y(y... 阅读全文
posted @ 2013-08-06 20:23
冰鸮
阅读(332)
评论(0)
推荐(0)
摘要:
参照了nocow上的解法,照搬过来……易知一个数X在数列中在另一个数Y前,当且仅当X前缀小于Y或前缀相等X短,那么我们分布考虑,比如对于数48561:5位上:10000~48560;4位上:1000~4856;3位上:100~485;2位上:10~48;1位上:1~4.这样我们就得到了1..N中48561的位置,可以用这个来判错.接下来的方法类似,为了使得我们的N满足要求,我们必须去找比48561大且前缀比其小的数,同样有:6位上:100000~485609; //注意红色部分比原数减少了1,之前没注意这里一直WA…………---------------------以上nocow上给出的题解-- 阅读全文
posted @ 2013-08-06 10:45
冰鸮
阅读(428)
评论(0)
推荐(0)

浙公网安备 33010602011771号