【简单数学】ZOJ 2975 Kinds of Fuwas

来源:互联网 发布:上古卷轴5enb优化 编辑:程序博客网 时间:2024/04/30 10:18

    题意是计算四角是相同的福娃的矩形有多少个。

    对于每一种福娃,任选两行,找到满足同一列且福娃相同的情况数k,从k中任取2个,都可以构成矩形,因此是排列数C(k)2。

#include <iostream>#include <cstdio>#include <cstring>#include <cmath>using namespace std;int main(){    int cas;    scanf("%d", &cas);    char c[5] = {'B', 'J', 'H', 'Y', 'N'};    while(cas --)    {        int n, m;        int ans = 0;        char jx[300][300];        scanf("%d%d", &n, &m);        getchar();        for(int i = 0; i < n; i++)        {            for(int j = 0; j < m; j ++)                scanf("%c", &jx[i][j]);            getchar();        }        for(int i = 0; i < 5; i++)        {            for(int j = 0; j < n - 1; j ++)            {                for(int k = j +1; k < n; k ++)                {                    int temp = 0;                    for(int l = 0; l < m; l ++)                    {                        if(jx[j][l] == c[i] && jx[j][l] == jx[k][l])                            temp ++;                    }                    ans += temp * (temp - 1) / 2;                }            }        }        printf("%d\n", ans);    }    return 0;}


0 0
原创粉丝点击