栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 1977 Odd Loving Bakers

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 1977 Odd Loving Bakers

#include<stdio.h>#include<stdlib.h>#include<string.h>#define MAXN 110typedef int M[MAXN][MAXN];struct person{    char name[25],fav[MAXN][25];    int nfav;    int ori;};person P[MAXN];int n,baker[MAXN],matrix[MAXN][MAXN],O[MAXN][MAXN],cse,t,res;void copy(M x,M y){    int i,j;    for(i=0;i<n;i++)    {        for(j=0;j<n;j++)        { x[i][j]=y[i][j];        }    }    return ;}void mu(M x,M y){    int i,j,k,t;    M c;    for(i=0;i<n;i++)    {        for(j=0;j<n;j++)        { t=0; for(k=0;k<n;k++) {     if(x[i][k] && y[k][j])     {         t=(t+x[i][k]*y[k][j])%2;     } } c[i][j]=t;        }    }    copy(x,c);    return ;}void Cal(M a,int k){    if(k==1)    {        copy(a,O);        return ;    }    Cal(a,k/2);    mu(a,a);    if(k & 1)    {        mu(a,O);    }}int main(){    int i,j,k;    scanf("%d",&cse);    while(cse--)    {        scanf("%d %d",&n,&t);        for(i=0;i<n;i++)        { getchar(); scanf("%s",P[i].name); scanf("%d %d",&P[i].ori,&P[i].nfav); baker[i]=P[i].ori%2; for(j=0;j<P[i].nfav;j++) {     getchar();     scanf("%s",&P[i].fav[j]); }        }        memset(O,0,sizeof(O));        for(i=0;i<n;i++)        { O[i][i]=1;        }        for(i=0;i<n;i++)        { for(j=0;j<P[i].nfav;j++) {     for(k=0;k<n;k++)     {         if(strcmp(P[i].fav[j],P[k].name)==0)         {  break;         }     }     O[i][k]=(O[i][k]+1)%2; }        }     Cal(matrix,t-1);  res=0;        for(i=0;i<n;i++)        { int tmp=0 ; for(j=0;j<n;j++) {     tmp=(tmp+baker[j]*matrix[j][i])%2; } if(tmp)res++;}        printf("%dn",res);    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/365229.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号