📄 3048677_ac_390ms_2512k.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 + -