1 条题解

  • 0
    @ 2025-8-24 21:25:26

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Ambtion
    **

    搬运于2025-08-24 21:25:25,当前版本为作者最后更新于2018-05-30 17:01:46,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    千万要记住while(1) 不要while(n)

    不然会t的

    暴力+剪枝

    #include<cstdio>
    #include<iostream>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    int b[200],l,visit[200],a[200];
    int zhuan(int x)
    {
    	int t=0;
    	while(x>0)
    	{
    		b[++t]=x%10;
    		x/=10;
    	}
    	for(int i=1;i<=t;++i)a[i]=b[t-i+1];//逆序存进去 
    	return t;//长度 
    }
    bool you()
    {
    	int t=1;//开始的位置 
    	memset(visit,0,sizeof visit);//每一次都memset一遍 
    	for(int i=1;i<=l;++i)
    	{
    		if(visit[a[t]]||a[t]==0)return 0;//走过就会有环;零也不行; 
    		visit[a[t]]++;//走过了; 
    		t=(t+a[t])%l;//走到下一位上; 
    		if(t==0)t=l;//最后一个就是l; 
    	}
    	if(t!=1)return 0;//没走到原来的辣个位置当然就"挂了"; 
    	return 1;
    }
    int main()
    {
    	int ok;
    	scanf("%d",&ok);
    	while(233)
    	{
    		ok++;
    		l=zhuan(ok);
    		if(you())
            {
            	printf("%d",ok);
         	   return 0;
            }
    	}
    	return 0;
    }
    
    • 1

    信息

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