zoukankan      html  css  js  c++  java
  • UVA 11205 The broken pedometer

    只要用哪几列就可以使P行都不同。暴力DFS就可以了。

    #include<stdio.h>
    #include<string.h>
    int n, p;//n列 p行
    int map[105][20];
    int flaglie[20];
    char s[105][20];
    int sum;
    void sou(int ans)
    {
        int i, c = 0, j, flag = 0;
        if (ans == n)
        {
            for (i = 0; i < p; i++)
            {
                c = 0;
                for (j = 0; j < n; j++)
                {
                    if (flaglie[j] == 1)
                    {
                        s[i][c] = map[i][j] + '0';
                        c++;
                    }
                }
                s[i][c] = '';
            }
            for (i = 0; i < p; i++)
            {
                for (j = i + 1; j < p; j++)
                {
                    if (strcmp(s[i], s[j]) == 0)
                    {
                        flag = 1;
                        break;
                    }
                }
            }
            if (flag == 0) { if (c < sum)sum = c; }
            return;
        }
        flaglie[ans] = 1;
        sou(ans + 1);
        flaglie[ans] = 0;
        sou(ans + 1);
    }
    int main()
    {
        int i, j, sb, bs;
        scanf("%d", &sb);
        for (bs = 0; bs < sb; bs++)
        {
            scanf("%d%d", &n, &p);
            sum = n;
            for (i = 0; i < p; i++)
            {
                for (j = 0; j < n; j++)
                {
                    scanf("%d", &map[i][j]);
                }
            }
            sou(0);
            printf("%d
    ", sum);
        }
        return 0;
    }

  • 相关阅读:
    Linux学习之路3-HelloWorld
    Linux学习之路2-linux系统烧写
    Linux学习之路1
    linux常用命令总结
    禅道配置发邮件功能
    SHELVE模块
    PICKLE模块
    JSON_dump和load
    json.dumps和loads方法
    模块调用
  • 原文地址:https://www.cnblogs.com/zufezzt/p/4430910.html
Copyright © 2011-2022 走看看