题目链接:https://codeforces.com/contest/1775/problem/B
我的思路:输入时计算每一行数据的值,存入数组a。用for循环遍历,查找是否有相同的或运算结果。
错误内容 但是看不到第三十六组测试例 想请问大家我是哪里写的不对?
我的代码:
#include<stdio.h>
#include<math.h>
#include <stdlib.h>
#include<string.h>
#include<stdint.h>
void rmain()
{int n,i,j,k,d;int sum=0,max=0;int a[100001]={0},b[100001]={0};
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&k);
for(j=0;j<k;j++)
{scanf("%d",&d);
a[i]+=pow(2,d);
}b[a[i]]++;
if(a[i]>max) max=a[i];
}for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
sum=a[i]|a[j];b[sum]++;
if(sum>max) max=sum;sum=0;
}
}for(i=0;i<=max;i++)
{
if(b[i]>1)
{
printf("yes\n");return;
}
}printf("no\n");
}
int main()
{
int t=1;
scanf("%d",&t);
while(t--)
{
rmain();
}
return 0;
}