首页 > 其他 > 详细

Topcoder SRM 619 DIv2 500 --又是耻辱的一题

时间:2014-05-07 17:35:31      阅读:449      评论:0      收藏:0      [点我收藏+]

这题明明是一个简单的类似约瑟夫环的问题,但是由于细节问题迟迟不能得到正确结果,结果比赛完几分钟才改对。。耻辱。

代码:

bubuko.com,布布扣
#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

 

Topcoder SRM 619 DIv2 500 --又是耻辱的一题,布布扣,bubuko.com

Topcoder SRM 619 DIv2 500 --又是耻辱的一题

原文:http://www.cnblogs.com/whatbeg/p/3710366.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!