codeforces A. Juggling Letters

codeforces A. Juggling Letters_第1张图片

题目

题意:

我们有 n n n个字符串,你可以将这些字符串的字母进行随意移动,问是否能够让这 n n n个字符串相等。

思路:

我们只要将所有的字符串的字母的数量求出来,如果这个字母的数量能够均分给这 n n n个字符串,那么就可以相等。

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
typedef long long ll;
typedef vector<int> veci;
typedef vector<ll> vecl;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
template <class T>
inline void read(T &ret) {
     
    char c;
    int sgn;
    if (c = getchar(), c == EOF) return ;
    while (c != '-' && (c < '0' || c > '9')) c = getchar();
    sgn = (c == '-') ? -1:1;
    ret = (c == '-') ? 0:(c - '0');
    while (c = getchar(), c >= '0' && c <= '9') ret = ret * 10 + (c - '0');
    ret *= sgn;
    return ;
}
inline void outi(int x) {
     if (x > 9) outi(x / 10);putchar(x % 10 + '0');}
inline void outl(ll x) {
     if (x > 9) outl(x / 10);putchar(x % 10 + '0');}
const int maxn = 1e3 + 10;
char s[maxn];
int cnt[256] = {
     0};
int main() {
     
    int t; read(t);
    while (t--) {
     
        memset(cnt, 0, sizeof(cnt));
        int n; read(n);
        for (int i = 0; i < n; i++) {
     
            scanf("%s", s);
            int len = strlen(s);
            for (int j = 0; j < len; j++) cnt[s[j]]++;
        }
        bool flag = false;
        for (int i = 'a'; i <= 'z'; i++) if (cnt[i] % n != 0) flag = true;
        if (!flag) printf("YES\n");
        else printf("NO\n");
    }
}

你可能感兴趣的:(codeforces)