摘要:Repost1. 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #includ...
阅读全文
摘要:用记录附加信息的val数组记录次数即可。 trie的原理:每个可能出现的字目给一个编号c,那么整个树就是一个c叉树 ch[u][c]表示 节点u走c边过去之后的节点 PS:trie树还有种动态写法,使用指针和动态分配内存代替了连续的ch数组,更加节省内存。 Reference:http://blog
阅读全文
摘要:题意:求满足a 2 #include 3 #include 4 using namespace std; 5 int c[50010],f[50010],a[50010],g[50010]; 6 int n,T; 7 8 int lowbit(int x) 9 {10 return x...
阅读全文
摘要:1 /* 2 树状数组基本模板 3 2014.4.20 4 5 初始:设a[i]为要读入的数组,共n个元素,则 6 for i:=1 to n do add(i,a[i]); 7 8 add(x,d):在x的位置加上d 9 sum(x):求a[1]~a[x]的和 10 */...
阅读全文
摘要:本来很简单的一个题,但是有个大坑:因为模板中Tline用到了直线的一般方程ax+by+c=0,所以有种很坑的情况需要特判:斜率不存在啊喂老子坑了一下午2333 1 #include 2 #include 3 4 #define eps 1e-6 5 #define PI ...
阅读全文
摘要:模板题注意原题中说的线段其实要当成没有端点的直线。被坑了= = 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 #define eps 1e-8 ...
阅读全文
摘要:题意:一堆线段依次放在桌子上,上面的线段会压住下面的线段,求找出没被压住的线段。sol:从下向上找,如果发现上面的线段与下面的相交,说明被压住了。break掉其实这是个n^2的算法,但是题目已经说了没被压住的线段不超过1000个,所以不会爆 1 #include 2 #include ...
阅读全文
摘要:题意:在方格纸上画出一个三角形,求三角形里面包含的格点的数目因为其中一条边就是X轴,一开始想的是算出两条边对应的数学函数,然后枚举x坐标值求解。但其实不用那么麻烦。皮克定理:给定顶点坐标均是整点(或正方形格点)的简单多边形,皮克定理说明了其面积A和内部格点数目i、边上格点数目b的关系:A = i +...
阅读全文