csharp ABC115D.cs

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp ABC115D.cs相关的知识,希望对你有一定的参考价值。

using System;

class Program
{
    //Level k の時のpの数を格納
    static readonly long[] dp = new long[51];
    static readonly long[] lengthDp = new long[51];

    static void SetDP(int n, int i)
    {
        dp[i] = dp[i - 1] * 2 + 1;
        lengthDp[i] = lengthDp[i - 1] * 2 + 3;
        i++;
        if (i <= n) SetDP(n, i);
    }
    
    //B/set[n-1]/P/set[n-1]/終端のB
    static long GetRightPCount(int n, long x, int originalN)
    {
        long count = 0;
        
        //B
        if (x <= 1) return count;
        x--;

        if (n == 0) return count;
        n--;//これ以降index = i - 1

        //set[i-1]
        if (x < lengthDp[n])
            return count + GetRightPCount(n, x, originalN);
        count += dp[n];
        x -= lengthDp[n];
        if (x == 0) return count;

        //P
        count++;
        x--;

        //set[i-1]
        if (x < lengthDp[n])
            return count + GetRightPCount(n, x, originalN);
        count += dp[n];
        x -= lengthDp[n];
        return count;
    }

    static void Main(string[] args)
    {
        string[] input = Console.ReadLine().Split(' ');
        int n = int.Parse(input[0]);
        long x = long.Parse(input[1]);

        dp[0] = 1;
        lengthDp[0] = 1;
        SetDP(n, 1);
        
        Console.WriteLine(GetRightPCount(n, x, n));
        Console.ReadLine();
    }
}

以上是关于csharp ABC115D.cs的主要内容,如果未能解决你的问题,请参考以下文章

csharp GenericStringParserExtensionMethod.cs

AtCoder Beginner Contest 115 题解

javaweb考试题

惊!快快通一个神奇的挂站神器115.238.184.*

115怎么转码

批处理:从文件名(子字符串)创建文件夹