• USACO runaround


    /*
    ID:kevin_s1
    PROG:runround
    LANG:C++
    */
    
    #include <iostream>
    #include <cstdio>
    #include <string>
    #include <cstring>
    #include <vector>
    #include <map>
    #include <set>
    #include <algorithm>
    #include <cstdlib>
    #include <list>
    #include <cmath>
    
    using namespace std;
    //直接枚举就可以
    
    //gobal variable====
    long long M;
    int num[100];
    int num_size;
    
    int hash[10];
    int hash1[10];
    //==================
    
    
    //function==========
    int init(long long i){
    	int x = 1;
    	while(i != 0){
    		num[x++] = i % 10;
    		i = i / 10;
    	}
    	x--;
    	for(int i = 1; i <= x/2; i++){
    		int tmp = num[i];
    		num[i] = num[x - i + 1];
    		num[x - i + 1] = tmp;
    	}
    	return x;
    }
    
    bool judge(long long x){
    	for(int i = 1; i <= num_size; i++){
    		hash1[num[i]]++;
    		if(hash1[num[i]] > 1 || num[i] == 0){
    			return false;
    		}
    	}
    	int j = 1;
    	for(int i = 1; i <= num_size; i++){
    		int bit = num[j];
    		j = j + bit;
    		if(j > num_size && (j % num_size) != 0){
    			j = j % num_size;
    		}
    		if(j > num_size && (j % num_size) == 0){
    			j = num_size;
    		}
    		if(hash[j] == 1){
    			return false;
    		}
    		hash[j] = 1;
    	}
    	bool flag = true;
    	if(j != 1)
    		flag = false;
    	for(int i = 1; i <= num_size; i++){
    		if(hash[i] == 0){
    			flag = false;
    			break;
    		}
    	}
    	return flag;
    }
    
    //==================
    
    int main(){
    	freopen("runround.in","r",stdin);
    	freopen("runround.out","w",stdout);
    	cin>>M;
    	memset(num, 0, sizeof(num));
    	memset(hash, 0, sizeof(hash));
    	memset(hash1, 0, sizeof(hash1));
    	M++;
    	num_size = init(M);
    	while(!judge(M)){
    		M++;
    		memset(num, 0, sizeof(num));
    		memset(hash, 0, sizeof(hash));
    		memset(hash1, 0, sizeof(hash1));
    		num_size = init(M);
    	}
    	cout<<M<<endl;
    	return 0;
    }
    

  • 相关阅读:
    【蓝牙音箱】小米小爱蓝牙音箱
    table表格 td设置固定宽度
    VMware ESXi 客户端连接控制台时,提示“VMRC 控制台连接已断开...正在尝试重新连接”的解决方法
    redis-bitmap 命令使用的一些帖子
    TCP11种状态
    nginx--cookies转发
    MQTT协议介绍
    常用链路追踪工具
    常用字符串处理命令
    spring maven repository
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5199221.html
Copyright © 2020-2023  润新知