上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 182 下一页
摘要: 题意:一个由多个圆柱体摞起来形成的蛋糕,要求上边的圆柱的半径和高都比下边的圆柱大。给定圆柱的体积,问除去下表面之外的圆柱面积最小是多少?分析:深度优先搜索。由最底层的蛋糕向上逐层搜索,每次迭代则蛋糕向上一层。所以搜索深度确定,为蛋糕的层数。与通常的深度优先搜索不同的是,本题的每个搜索状态由两个量来标明:半径和高。因此向下一个状态迭代时需要用一个二重循环来枚举接下来状态的半径和高。可见状态空间极大。需要三个剪枝方可通过本题。我们首先要了解,位于蛋糕顶端的x层的最小体积是:1^3+2^3+3^3+...+x^3最小面积是:2*(1^2+2^2+3^2+...+x^2)即从顶层向下半径依次取1~x, 阅读全文
posted @ 2014-01-16 21:06 undefined2024 阅读(1547) 评论(0) 推荐(0)
摘要: 题意:在平面直角坐标系内给出一些与坐标轴平行的矩形,将这些矩形覆盖的区域求并集,然后问这个区域的周长是多少。(边与边重合的地方不计入周长)分析:线段树。曾经做过类似的求矩形覆盖的总面积的题。这道题同样要使用扫描线算法。属于线保留型线段树。我们先领扫描线与y轴平行。线段树内每个节点除了要记录该区间被覆... 阅读全文
posted @ 2013-12-28 17:18 undefined2024 阅读(1067) 评论(0) 推荐(0)
摘要: 爆搜就可以过,不过我用了迭代加深。注意每个操作最多进行4次#include #include using namespace std;#define MAX_ANS 100int clock[9];char move[9][10] = {"ABDE", "ABC", "BCEF", "ADG", "BDEFH", "CFI", "DEGH", "GHI", "EFHI"};int ans[MAX_ANS], ans_ 阅读全文
posted @ 2013-12-28 14:17 undefined2024 阅读(473) 评论(0) 推荐(0)
摘要: 状态压缩dp#include #include #include #include using namespace std;#define MAX_COL_NUM 15#define MAX_ROW_NUM 105#define MAX_STAT 2050struct Status{ int row_bit[3]; int last_bit_count;}status[100000];int row_num, col_num;int grid[MAX_ROW_NUM];int f[3][MAX_STAT][MAX_STAT];int ans;int status_cnt;void ... 阅读全文
posted @ 2013-12-09 22:56 undefined2024 阅读(447) 评论(0) 推荐(0)
摘要: 题意:给出n(n#include #include using namespace std;#define MAX_N 100005#define MAX_FACTOR 16int n, f[MAX_N];int count[MAX_N];int factor[MAX_FACTOR];int prime_fac_num[MAX_N];void input(){ for (int i = 0; i 1) factor[factor_cnt++] = a; for (int i = 1; i > j) > 0; j++) { if (... 阅读全文
posted @ 2013-11-21 00:42 undefined2024 阅读(647) 评论(0) 推荐(0)
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 182 下一页