Topcoder SRM 619 DIv2 500 –又是耻的一题。这篇稿子就说了一个“问题”!

马上题判是一个简约的接近约瑟夫环的问题,但是出于细节问题迟迟未能够获正确结果,结果比完几分钟才改变对。。耻辱。

爱博体育 1

代码:

至于问题的题材 生命不止,问题频频。 解决问题是甲级问题。 有的问题无是题材, 有的题材无法解决, 有的题材迎刃而解以后一律劳永逸, 有的题目化解后带来新的问题。 你的工具是个锤子, 看到问题就是钉子。 解决本质问题, 避开无解问题, 你所观看的题目, 或许不是问题, 你拟缓解问题, 自己本身就是是单问题。 盯在问题,问题无见面化为乌有, 理解问题,问题才会分晓你! 所有题目,都是题材; 所有问题,都非是问题! 问题在我这里, 问题在您那边。 生命连,问题不断!

爱博体育 2爱博体育 3

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#define ll long long
using namespace std;
#define NN 370000

class ChooseTheBestOne
{
private:
public:
    ll calc3(int n)
    {
        return (ll)pow(n,3);
    }
    int countNumber(int N)
    {
        ll now = 1,remain = (ll)(N-1);
        ll rd = 2;
        ll pos;
        int has[5005];
        memset(has,-1,sizeof(has));
        has[0] = 0;
        while(rd < N)
        {
            while(has[now] == 0)
            {
                now = (now+1)%N;
            }
            ll call = calc3(rd);
            ll add = (call-1)%remain;
            ll k = 0;
            for(pos=now;k<add;)
            {
                pos = (pos+1)%N;
                if(has[pos] != 0)
                    k++;
            }
            has[pos] = 0;
            now = (pos+1)%N;
            //cout<<"出去: "<<pos+1<<"   现在"<<now+1<<endl;
            remain--;
            rd++;

        }
        ll i;
        for(i=0;i<N;i++)
        {
            if(has[i] == -1)
            {
                return i+1;
            }
        }
    }
};

int main()
{
    ChooseTheBestOne *kc = new ChooseTheBestOne();
    cout<<(*kc).countNumber(1234)<<endl;
    return 0;
}

View Code

 

相关文章