• HDU5090模拟,hash


    /*
    	HDU 5090 
    	算是一道简单模拟题。但当中有非常深的hash思想
    	这是本人的第一道hash题
    	更是本人的第一道纸质代码不带编译不带执行提交AC的题
    	值得纪念
    	
    	废话讲这么多之后,讲述题中思想
    	因为n非常小不超过100。可以开个数组记录每一个数出现多少次
    	因为仅仅能i+n*k变大。因此仅仅须要从1到n逐个检查
    		若当前检查的hash[i]=0则无解:因为不可能有其它数可以变化成它
    		若当前检查的hash[i]>1则必须将i变化为j=n*k+i(n>0),当中hash[j]=0代表 j 在输入的数中没有出现过由数 i 变过来的
    		若当前检查的hash[i]=1继续
    	循环一遍之后。仅仅需推断标志符号
    */ 
    
    #include <iostream>
    #include <algorithm>
    #include <stdio.h>
    #include <math.h>
    #include <map>
    #include <set>
    #include <vector>
    #include <string>
    #include <cstring>
    #include <sstream>
    using namespace std;
    
    #define input freopen("input.txt","r",stdin);
    #define output freopen("output.txt","w",stdout);
    #define For1(i,a,b) for (i=a;i<b;i++)
    #define For2(i,a,b) for (i=a;i<=b;i++)
    #define Dec(i,a,b) for (i=a;i>b;i--)
    #define Dec2(i,a,b) for (i=a;i>=b;i--)
    #define Sca_d(x) scanf("%d",&x)
    #define Sca_s(x) scanf("%s",x)
    #define Sca_c(x) scanf("%c",&x)
    #define Sca_f(x) scanf("%f",&x)
    #define Sca_lf(x) scanf("%lf",&x)
    #define Fill(x,a) memset(x,a,sizeof(x))
    #define MAXN 1110
    
    template <typename T>  
    T gcd(T a,T b)  
    {
        return b==0?a:gcd(b,a%b);  
    }
     
    template <typename T> 
    T lcm(T a,T b)  
    {  
        return a/gcd(a,b)*b;  
    }
    
    int main()
    {
    	int hash[MAXN];
    	int t,n,k,i,j,m,flag;
    	cin>>t;
    	while(t--)
    	{
    		cin>>n>>k;
    		Fill(hash,0);
    		For2(i,1,n)
    			Sca_d(m),hash[m]++;
    		flag=1;
    		For2(i,1,n)
    			if (!hash[i])
    				{
    					flag=0;
    					break;
    				}
    			else if (hash[i]==1) continue;
    			else
    			{
    				for(j=i+k;j<=n;j+=k)
    					if (hash[i]>1&&hash[j]==0)
    					{
    						hash[j]=1;
    						hash[i]--;
    					}
    			}
    		if (flag) cout<<"Jerry
    ";
    		else cout<<"Tom
    ";
    	}
    	return 0;
    }


    
       
    
  • 相关阅读:
    TCP协议简单套接字通信 客户端
    TCP协议简单套接字通信 服务端
    java课程作业--动手动脑
    Java方法课程作业1,2,3
    java猜数字(实验任务五)
    课程作业02(关于Java的几点讨论)
    java多个int型数据累加求和
    java基本登录界面
    大道至简第一章观后感——java伪代码
    《大道至简—软件编程者的思想》观后感
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5151008.html
Copyright © 2020-2023  润新知