只ac了一题,并查集实在想不出怎么实现了。

import java.util.Scanner;

public class Main{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int m = scanner.nextInt();
        int[] flagArr = new int[n];
        for (int i=0;i<n;i++) flagArr[i] = 0;
        int j = 1;
        int i = 0;
        int num = 1;
        while (j<=n-1){
            if(num == Math.pow(m,j)){
                flagArr[i] = 1;
                j++;
                num = 0;
            }
            i = (i + 1) % n;
            while (flagArr[i] == 1){
                i = (i + 1) % n;
            }
            num ++;

        }
        for (int k=0;k<n;k++){
            if(flagArr[k] == 0){
                System.out.println(k+1);
            }
        }

    }
}