poj-2591

来源:互联网 发布:ubuntu编译配置lnmp 编辑:程序博客网 时间:2024/05/18 16:14
//39360K    172MS   C++#include <cstdio>#include <cstring>const int MAX = 10000005;long  num[MAX];long  MIN(long  a, long  b) {    return a < b ? a: b;}void init() {    num[0] = 1;    int p1 = 0;    int p2 = 0;    for (int i = 1; i < MAX; i++) {        num[i] = MIN(2*num[p1] + 1, 3*num[p2] + 1);        if (num[i] == 2*num[p1] + 1) p1++;        if (num[i] == 3*num[p2] + 1) p2++;    }}int main() {    int ordinal;    init();    while(scanf("%d", &ordinal) != EOF) {        printf("%ld\n", num[ordinal - 1]);    }}

poj-2545的简单变形,注意数组要开成long 的,long long的MLE了.
0 0
原创粉丝点击