⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3048677_ac_390ms_2512k.java

📁 北大大牛代码 1240道题的原代码 超级权威
💻 JAVA
字号:
import java.util.*;

public class Main 
{
	
	public static void main(String[] args) 
	{
		Scanner cin = new Scanner (System.in);
		int i, c, s, ans, n;
		
		while(true)
		{
			ans = 0;
			c = cin.nextInt();
			s = cin.nextInt();
			if(s==0&&c==0)
			{
				break;
			}
			n = power(c,s);
			int a[] = new int [33];
			int b[] = new int [33];
			boolean used[] = new boolean [n];
			for(i = 0; i < n; i++)
			{
				if(!used[i])
				{
					ans++;
					decode(i,c,s,a);
					reverse_copy(a,s,b);
					for(int j = 0; j < s; j++)
					{
						used[encode (c, s, a)] = true;
						rotate (a, s);
						used[encode (c, s, b)] = true;
						rotate (b, s);
					}
				}
			}
			System.out.println(ans);
		}
	}

	private static void rotate(int[] b,int s) 
	{
		int t = b[0];
		
		for(int i = 1; i < s; i++)
		{
			b[i-1] = b[i];
		}
		b[s-1] = t;
	}

	private static int encode(int c, int s, int[] a) 
	{
		int ret = 0;
		
		for(int i = 0; i < s; i++)
		{
			ret *= c;
			ret += a[i];
		}
		return ret;
	}

	private static void reverse_copy(int[] a, int s, int[] b)
	{
		for(int i = s-1; i >= 0; i--)
		{
			b[s-i-1] = a[i];
		}
	}

	private static void decode(int x, int c, int s, int[] a) 
	{
		for(int k = 0; k < s; k++)
		{
			a[s-k-1] = x%c;
			x /= c;
		}
	}

	private static int power(int c, int s) 
	{
		int i, ret;
		
		ret = 1;
		for(i = 0; i < s; i++)
		{
			ret *= c;
		}
		return ret;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -