摘要: prufer编码,简单说下:1.prufer编码是一个建立在给定带编号无根树和长为n - 2的一维数组间的双射2.生成方式:每次去叶节点中编号最小的一个,输出与他相邻的节点,直到剩下两个点。(为什么剩下两个请思考)3.逆:考虑到取集合最小值是可逆的,每次在没找过的节点中找最小的它必与当前处理的数组第i位相邻,加边就行4.carlay定理:n各节点的无向图个数为qk(n, n - 2);5.一个性质:每个点出现的次数是d[i] - 1;方便记sigma(d[i] - 1) = D这个题考一点组合思想:1.给了一些点的限制,显然分开算,没有限制的(设M)随便, qk (M, n - 2 - D); 阅读全文
posted @ 2013-01-12 23:34 Moretimes 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 一个考察注意到的好题1.只有首尾有意义2.大大小小比小小大大好没人看这种题的题解吧。。。。View Code 1 #include <cstdio> 2 #include <functional> 3 #include <algorithm> 4 using namespace std; 5 int n, k, a[10000], z; 6 int main () 7 { 8 scanf ("%d%d", &n, &k); 9 for (int i = 1; i <= k; i ++)10 scanf (" 阅读全文
posted @ 2013-01-09 23:09 Moretimes 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 很有意思二元关系整除的转化约数转倍数View Code 1 #include <cstdio> 2 int n, z; 3 int main () 4 { 5 scanf ("%d", &n); 6 for (int i = 1; i <= n; i ++) 7 z += n / i; 8 printf ("%d", z); 9 return 0;10 } 阅读全文
posted @ 2013-01-09 22:18 Moretimes 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 开坑开坑KLZXR都写了不能懒了*************************************万年大坑*************************************ZXR是大神犇*************************************我当然是抄了一份*************************************标记不下船线段树 (sign not leave the boat)把线段树的一个lazy标记变成两个来避免pushdowns:表示当前增量cover当前节点f:表示当前增量belongto当前节点因此更新是更新链上的所有f(去搅基) 阅读全文
posted @ 2013-01-09 22:04 Moretimes 阅读(449) 评论(2) 推荐(1) 编辑
摘要: 注意到给出N + 1个坐标应该想到压缩方程转化为n个消去一个变元sigma (x2) +sigma (y2) - sigma (2xy) = R2sigma (xi2) +sigma (yi2) - sigma (2xiyi) = R2相减下面给出的是gauss-jordan消去法 稍有不同View Code 1 #include <cstdio> 2 #include <cmath> 3 #define sqr(x) x * x 4 const int N =300; 5 int n; 6 double t[N][N], a[N][N], b[N]; 7 int ch 阅读全文
posted @ 2012-11-24 23:21 Moretimes 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 首先明确最短路是DP 带继承的DP 是有转移的bellman没有顺序的松弛 复杂度很高dijk维护一个正解点集很快这道题给最短路加了限制:同时走若干条路,当走过某些点后才能走该点原转移为:d[x] = min {d[y] + w | y -> x}新加的转移为:d[x] = max {d[y] | y protect x}可以知道依然可以维护一个正解点集当没有protect才可以加入点集我犯的错误:longlong莫名TLE的原因很可能是数组开小相信复杂度计算可能会补充手写堆dijk我TM显然是不会补了!!!!wtflazyboy! -State 010913View Code 1 #i 阅读全文
posted @ 2012-11-23 23:48 Moretimes 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 15个可能是阶乘、2n次方、枚举、乘大系数、状压我犯的错误:清多组1个点凸包特判 否则80View Code 1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #include <algorithm> 5 using namespace std; 6 const int N = 1000; 7 int n, x[N], y[N], w[N], l[N], W, top, c, t1 = 0x3f3f3f3f, cho, t3; 8 double t2, r, L; 9 bo 阅读全文
posted @ 2012-11-22 00:30 Moretimes 阅读(206) 评论(0) 推荐(0) 编辑