zoukankan      html  css  js  c++  java
  • poj 1781 In Danger 夜

    常规求法会超时  发现了一个规律 证明的话 亲 你自己想吧

    http://poj.org/showsource?solution_id=10139647

    #include <iostream>
    #include <string>
    #include <cstring>
    #include <algorithm>
    #include <cmath>
    #include <cstdio>
    using namespace std;
    
    //const int N=99000001;
    int k[30];
    int main()
    {
        int n,m;
        char c;
        for(int i=0;i<30;++i)
        {
            k[i]=(int)(pow(2,i));
        }
        while(cin>>n>>c>>m)
        {
            n=n*(int)(pow(10,m));
            if(n==0)
            break;
            int i;
            for(i=0;i<30;++i)
            {
                if(k[i]>n)
                break;
            }
            --i;
            cout<<(2*(n-k[i])+1)<<endl;
        }
        return 0;
    }
    
    超时代码 虽然超时 但当数据量小和m不等于2时可以用的着
    #include <iostream>
    #include <string>
    #include <cstring>
    #include <algorithm>
    #include <cmath>
    #include <cstdio>
    using namespace std;

    const int N=99000001;
    int ans[N];
    int main()
    {
        int n,m;
        char c;
        ans[1]=1;
        for(int i=2;i<=N;++i)
        {
             ans[i]=(ans[i-1]+2-1)%i+1;
        }
        while(cin>>n>>c>>m)
        {
            if(n==0)
            break;
            n=n*(int)(pow(10,m));
            cout<<ans[n]<<endl;
        }
        return 0;
    }
  • 相关阅读:
    Express 框架中 使用ejs
    Nodejs操作MongoDB数据库
    MongoDB基础操作
    node中的包、npm和模块
    background
    animation
    transition
    transform
    【SpringCloud】各种组件的更新情况
    【SpringCloud】版本选择
  • 原文地址:https://www.cnblogs.com/liulangye/p/2477747.html
Copyright © 2011-2022 走看看