上一页 1 2 3 4 5 6 7 8 9 ··· 20 下一页
摘要: 总算AC了,好帅气的算法,同时解决了自环跟非连通,一种自下向上找环的算法过程,这里把欧拉回路讲得很清楚,赞。#include #include #include #include #include #include using namespace std;class Edge {public: int no, u, v; char d; Edge() { no = u = v = d = -1; } Edge reverse() { Edge rev; rev.no = no; rev.u = v; ... 阅读全文
posted @ 2013-08-02 16:49 litstrong 阅读(159) 评论(0) 推荐(0)
摘要: 要掉到DVI2了。。好不容这次的250那么简单,500的题知道怎么做,可惜没调出来500。250的题很简单,从第1步到第N步,每次要么不做,要么走i步,且X不能走,问说最远走多远。#include #include #include #include using namespace std;class JumpFurther {public: int furthest(int N, int badStep) { int sum = 0; for (int i = 1; i #include #include #include using namespace s... 阅读全文
posted @ 2013-08-02 14:11 litstrong 阅读(365) 评论(4) 推荐(0)
摘要: 感谢这里。test4确实是个不连通的case,奇怪的是我用check函数跟if (check() == false)来判断这个case,当不连通时就死循环,得到的结果是不一样的,前者得到WA,后者得到TLE,难道SGU能自动在某个条件下终止死循环,然后返回false吗。不连通的情况FIX了,修改了代码如下:#include #include #include #include #include #include using namespace std;class Edge {public: int no, u, v; char d; Edge reverse() { ... 阅读全文
posted @ 2013-07-31 09:26 litstrong 阅读(198) 评论(0) 推荐(0)
摘要: SGU 101,郁闷,想出来算法,但是不知道是哪个地方的问题,wa在第四个test上。#include #include #include #include #include #include using namespace std;class Edge {public: int no, u, v; char d; Edge reverse() { Edge rev; rev.no = no; rev.u = v; rev.v = u; rev.d = '-'; return rev; ... 阅读全文
posted @ 2013-07-30 16:08 litstrong 阅读(224) 评论(0) 推荐(0)
摘要: SGU 168,寻找矩阵中右上方,右方,下方最小的元素,采用动态规划解答。#include #include #include #include #include #include using namespace std;int n, m;int A[1005][1005];int f[1005][1005];int B(int u, int v) { int move[3][2] = {-1, 1, 0, 1, 1, 0}; if (f[u][v] != 1234567) { return f[u][v]; } int ans = A[u][v]; ... 阅读全文
posted @ 2013-07-30 13:35 litstrong 阅读(183) 评论(0) 推荐(0)
摘要: SGU130,用k条弦将一个圆分成k+1份的方法数。#include #include #include #include #include #include using namespace std;long long dp[35];long long f(int k) { if (dp[k]) { return dp[k]; } if (k <= 1) { return 1; } long long ans = 0; for (int i = 0; i < k; i++) { ans += f(i) * f(k -... 阅读全文
posted @ 2013-07-29 20:05 litstrong 阅读(128) 评论(0) 推荐(0)
摘要: 这两天再看这题HDU4603,我可能会用到将一颗树中的每个节点的子树权重进行排序,因此就出现了这么个复杂度分析的问题,已知sum{n_i}=n,求解sum{n_i * log(n_i)}的复杂度,先手试了几个拆解,将n拆成1份,n份,或是n/2,n/4,n/8...这样拆解下去,最后的复杂度都是低于nlogn的,记sum{n_i * log(n_i)}为S,可得到exp(S)=mul{exp{n_i * log(n_i)}}=mul{n_i ^ n_i}<=mul{n ^ n_i}=n ^ sum{n_i}=n^n,两边再同取log,可得到S=nlogn,因此可得到上面这种排序操作的复杂 阅读全文
posted @ 2013-07-29 17:24 litstrong 阅读(128) 评论(0) 推荐(0)
摘要: 记录dp(i, j)表示前i种卡片的排列,使得LISNumber为j的方法数。#include #include #include #include using namespace std;typedef long long int64;const int M = 1000000007;int64 dpC[1300][40];int64 dpT[1300][40];int64 sum[40];int64 dp[40][1300];class LISNumber {private: vector num;public: int64 f(int i, int j); int co... 阅读全文
posted @ 2013-07-28 13:31 litstrong 阅读(183) 评论(0) 推荐(0)
摘要: 可以化简为求n条线段的最大覆盖问题,需要注意的是对于实数而言。#include #include #include #include #include #include using namespace std;class PiecewiseLinearFunction {private: map Y2i; int value[100];public: int maximumSolutions(vector Y) { for (int i = 0; i ::iterator it = Y2i.begin(); it != Y2i.end(); it++) { ... 阅读全文
posted @ 2013-07-28 13:28 litstrong 阅读(194) 评论(0) 推荐(0)
摘要: 参照这里,百试百灵!不过经测试,在plist中加入对应的Font后,下面三种都可以:CCLabelTTF *label = CCLabelTTF::create("测试", "JJianzi", 28);CCLabelTTF *label = CCLabelTTF::create("测试", "迷你简剪纸", 28);CCLabelTTF *label = CCLabelTTF::create("测试", "迷你简剪纸.TTF", 28); 阅读全文
posted @ 2013-06-14 20:36 litstrong 阅读(363) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 ··· 20 下一页