原题地址

他人的思路来自 https://blog.csdn.net/qq_41879343/article/details/102745044
代码 :

#include<bits/stdc++.h>
using namespace std;
#define ll long long

int main()
{
    int q;
    cin >>q;
    for(int i=0; i<q; i++)
    {
        int n,Num=0;int num[100];int odd=0,even=0;
        cin >>n;
        while(n--) //处理数据
        {
            string s;cin >>s;
            num[Num++]=s.length();//存数据长度
            for(int j=0; j<s.size(); j++) //判断0,1
            {
                if(s[j]=='1')
                    odd++;
                else
                    even++;
            }
        }
        int flag=0;
        int cnt =0;//记录回文数量
        for(int j=0;j<Num;j++){
            if(num[j]%2){//奇数不考虑,直接回文
                flag=1;
                break;
            }
        }
        if(flag)
        cout <<Num<<endl;
        else {
            if(odd%2||even%2)
                cout<<Num-1<<endl;
            else cout<<Num<<endl;
        }
    }

    return 0;
}