摘要: 题意:往集合里面添加删除数,集合中的数是按从小到大排列的,询问下标模5等于3的数的和。解法:预先把所有出现的数离散化,建立一颗线段树,线段树每个节点存储这样几个值,f[i]表示当前这个节点表示的区间内出现的那些下标模5等于i的和,维护sz表示该段区间内出现的数的个数,没有出现的地方f为0。考虑合并两段区间,即如何由两个儿子节点推出父亲节点,考虑父亲的f[i],等于左儿子的f[i] + 右儿子的f[x], x与左儿子的sz有关,即(x + sz %5) %5 = i ;可解出x。如此查询只需要查询1号节点的f[3]即可,可以先考虑一棵平衡树,每次由儿子更新父亲也是如此,然后考虑线段树,线段树不过 阅读全文
posted @ 2013-08-28 13:26 oucacm 阅读(122) 评论(0) 推荐(0)
摘要: 给定三角形,求出给定三角形内部整点的个数。 1 /* 2 Memory: 116 KB Time: 0 MS 3 Language: C++ Result: Accepted 4 By coolwind 5 */ 6 #include 7 #include 8 9 #define MAXN 10510 struct Point {11 int x,y;12 Point(int a = 0, int b = 0)13 :x(a),y(b){}14 };15 16 Point pt[3];17 18 int gcd(int ... 阅读全文
posted @ 2013-08-28 11:25 oucacm 阅读(117) 评论(0) 推荐(0)
摘要: Pick定理的几个出人意料的应用Brain Storm|2009-08-10 1:34|31 Comments | 本文内容遵从CC版权协议转载请注明出自matrix67.com考虑直线x+y=n,其中n是一个素数。这条直线将恰好通过第一象限里的n-1个格点(如上图,图中所示的是n=11的情况)。将这n-1个点分别和原点相连,于是得到了n-2个灰色的三角形。仔细数数每个三角形内部的格点数,你会发现一个惊人的事实:每个三角形内部所含的格点数都是一样多。这是为什么呢?Pick定理是说,在一个平面直角坐标系内,如果一个多边形的顶点全都在格点上,那么这个图形的面积恰好就等于边界上经过的格点数的一半加上 阅读全文
posted @ 2013-08-28 11:22 oucacm 阅读(171) 评论(0) 推荐(0)
点击右上角即可分享
微信分享提示