摘要:
不管你是怎么做的,反正我是用二分做的,相当于做了一个预处理。一个最优的序列一定是 1 2 3 .. N .. 3 2 1,或者是 1 2 3 .. N N .. 3 2 1.代码如下:#include <cstdlib>#include <cstdio>using namespace std;long long rec[131100], a, b;void pre(){ rec[1] = 1; long long LIM = 1LL << 32, base = 1; int i; for (i = 2; rec[i-1] <= LIM; ++i) { 阅读全文
posted @ 2012-08-19 22:56
沐阳
阅读(265)
评论(0)
推荐(0)
摘要:
这题如果是要输出所有的解的情况的话,用两个有序表查找可以优化到O(n^3),幸好这题只是要求出一种方案,那么我们就有以下结论:当 N < 8 的时候是无解的当 N > 8 并且 N是一个奇数的话,那么就可以拆成 2 + 5 + 一个偶数,根据哥德巴赫猜想,一个合数一定能够分解成两个素数之和,所以只要遍历一遍素数表即可当 N > 8 并且 N是一个偶数的话,那么就可以拆成 2 + 2 + 一个偶数,同理可以在 O (n / ln(n))的时间内完成。代码如下:#include <cstdlib>#include <cstdio>#include < 阅读全文
posted @ 2012-08-19 22:50
沐阳
阅读(324)
评论(0)
推荐(0)