zoukankan      html  css  js  c++  java
  • uva 10825

    题目链接:uva 10825 - Anagram and Multiplication

    题目大意:给出m和n,要求找一个m位的n进制数,要求说该数乘以2~m中的随意一个数的结果是原先数各个位上数值的一个排序。

    解题思路:枚举最后一位数。然后用这个数去乘以2~m并对n取模。然后得到的数一定就是这个数的组成,暴力搜索一下并推断。

    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    const int maxn = 405;
    const int maxm = 10;
    
    int m, n, a[maxn], v[maxn], ans[maxm];
    
    bool check (int x, int* b) {
        memset(a, 0, sizeof(a));
        int tmp = 0;
    
        for (int i = m-1; i >= 0; i--) {
            tmp = tmp + x * b[i];
    
            int k = tmp % n;
            a[k]++;
            tmp = tmp / n;
    
            if (a[k] > v[k])
                return false;
        }
    
        return tmp == 0;
    }
    
    bool judge (int x) {
        int tmp = 0;
        memset(v, 0, sizeof(v));
    
        for (int i = 0; i < m; i++) {
            tmp = (x + tmp) % n;
            ans[i] = tmp;
            v[ans[i]]++;
        }
    
        swap(ans[0], ans[m-1]);
    
        sort(ans, ans + m - 1);
        do {
            bool flag = true;
            if (ans[0] == 0)
                continue;
            for (int i = 2; i <= m; i++) {
                if (check(i, ans)) 
                    continue;
                flag = false;
                break;
            }
    
            if (flag)
                return true;
    
        } while (next_permutation(ans, ans + m - 1));
    
        return false;
    }
    
    int main () {
        while (scanf("%d%d", &m, &n) == 2 && n + m) {
            bool flag = true;
            for (int i = 1; i < n; i++) {
                if (judge(i)) {
                    flag = false;
                    break;
                }
            }
    
            if (flag)
                printf("Not found.
    ");
            else {
                printf("%d", ans[0]);
                for (int i = 1; i < m; i++)
                    printf(" %d", ans[i]);
                printf("
    ");
            }
        }
        return 0;
    }

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    gif&png&jpg&webp
    设计点滴&css效果点滴
    backbone点滴
    js自己总结的小东西(打印出来方便学习)
    nodejs点滴
    js类型
    mongo学亮的分享
    npm package.json中的dependencies和devDependencies的区别
    161130、Dubbo+SpringMVC工程创建详解
    161129、详解5种跨域方式及其原理
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4750754.html
Copyright © 2011-2022 走看看