zoukankan      html  css  js  c++  java
  • Codeforces Round #524 (Div. 2) D(思维,构造)

    #include<bits/stdc++.h>
    using namespace std;
    long long dp[107];
    int main(){
        int cnt=1;
        dp[1]=1;
        for(int i=2;i<=1e9;i*=2){
            dp[++cnt]=dp[cnt-1]*4+1;//记录长度为2^cnt的正方形最多能被切割的次数
        }
        //for(int i=1;dp[i]!=0;i++)
            //printf("%lld ",dp[i]);//此处是为什么n>=32就可以稳切割的原因,超出了题目的极限数据
        int t;
        scanf("%d",&t);
        for(int i=1;i<=t;i++){
            int a;
            long long b;
            scanf("%d%lld",&a,&b);
            int tmp=a;
            if(a>=32){
                printf("YES %d ",a-1);//切一次剩下切右下角就行,不会对路径产生影响
                continue;
            }
            long long next=1;
            long long sum=0;
            long long extra=0;
            while(a){
                sum+=next;//记录已经切割的次数
                next=next*2+1;//计算即将切割的次数
                a--;//每切一次就--
                extra+=dp[a]*(next-2);//根据画图得到的路径之外的切割次数
                if(b<sum+next)//此时切这次就搞定,不用继续缩小a了
                    break;
            }
            if(b<=extra+sum)//如果b太大说明这个次数是切不出来的
                printf("YES %d ",a);
            else
                printf("NO ");
        }
        return 0;
    }

    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    TFS 2012使用简介(一)
    Android手机应用程序开发环境配置(Eclipse+Java+ADT)
    关于 all-delete-orphan
    Rest中的XML与JSON的序列化与反序列化
    C#Base64编码
    Visual Studio 2013支持Xamarin的解决方案
    【转】[WCF REST] 帮助页面与自动消息格式(JSON/XML)选择
    【转】 MEF 和 MAF
    Enable tfs feature in sharepoint
    Using a local farm account for a SharePoint 2013 installation
  • 原文地址:https://www.cnblogs.com/ldudxy/p/10266626.html
Copyright © 2011-2022 走看看