摘要:
1 /* 2 题意:给你n个点,先选一条过至少一个点的垂线,然后在垂线上选一个点,过该点做水平线, 3 将图分成四部分,记为ul,ur,dl,dr,问选一条直线使得对于最坏情况选的水平线下,使得dl+ur最大的值; 4 同时输出在dl+ur最大的情况下ul+dr的可能值; 5 6 思路:先离散,因为题目没有说明数据范围, 7 然后依次枚举每一条垂直线,再从下到上枚举每一个点,利用树状数组记录; 8 最后输出解; 9 10 */ 11 12 #include<cstdio> 13 #include<cstring> 14 #include<cstdlib> 1 阅读全文
摘要:
1 /* 2 题意:给你n条垂直线段,问有多少组三个线段,两两可见, 3 可见定义为对于两条线段有一条水平线段连接,不经过任意其他线段; 4 5 线段树建图,然后爆力判有几组(不知道效率如何); 6 从左到右扫描,先判断该区间内有可以连接哪几条线段,建图; 7 然后再插入; 8 9 问题:对于[1,4],[1,2],[3,4],[1,4] 10 如果直接1-2,3-4覆盖,当用1-4query的时候, 11 会发现不存在(2,3)区域的标记, 12 解决方法,每个点之间都插入一个点,用偶数表示原先的点, 13 用奇数表示点之间的区域,0,1,2,3,4 14 ... 阅读全文
摘要:
http://codeforces.com/contest/293/problem/C 1 /* 2 http://codeforces.com/contest/293/problem/C 3 题意:(a+b+c)^3=a^3+b^3+c^3+n,给你n的值,求多少组a,b,c是正整数的解; 4 化解3(a+b)(a+c)(b+c)=n,a,b,c等价 5 不妨设a<=b<=c,再设a+b=x,a+c=y,b+c=z ,则x<=y<=z; 6 则 7 x^3<=n/3, 8 x*y^2<=n/3, 9 x*y*z=n/3;10 */11 #include&l 阅读全文