1 条题解

  • 0
    @ 2025-8-24 21:31:29

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar FC是女孩子
    **

    搬运于2025-08-24 21:31:29,当前版本为作者最后更新于2018-09-26 13:36:25,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    先模拟长度,L(i)=L(i-1)*2+k;(其中k为m+oooo……oo的个数)
    当超出n时,再模拟n在什么位置上。
    1:在L(i-1)上迭代处理
    2:在m+oooo……oo上,第一个是m,其他都是o
    3:在第二个L(i-1)上,那就不要n-L(i-1)-k,就回到L(i-1)上了

    #include<cstdio>
    
    int n,t=0,k=3;
    
    int main()
    {
    	scanf("%d",&n);int m=n;
    	while(t<=n) t=t*2+k,k++;
    	k--;
    	while(t>0)
    	{
    		t=(t-k)/2;
    		if(m>t)
    		{
    			if(m<=t+k)
    			{
    				if(m==t+1) return printf("m"),0;
    				else printf("o"),0;
    			}
    			else m=m-(t+k);
    		}
    		k--;
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    854
    时间
    1000ms
    内存
    125MiB
    难度
    3
    标签
    递交数
    0
    已通过
    0
    上传者