zoj2500

来源:互联网 发布:淘宝怎样更换淘宝账号 编辑:程序博客网 时间:2024/04/28 05:05

题目大意:

这道题有N个bead,这些bead形状和大小相同,重量不同。N是奇数,你的任务是找出中间重量的bead。我们给出一系列描述,通过这些描述,我们可能可以找出一些bead不可能是中间bead,比如例子中的bead 1和bead 4。bead 1比2,4,5都轻,bead4比1,2,3都重,所以不可能。写一个程序数一下不可能是中间重量bead的数量。

解题思路:

暴力求解。
map[i][j]记录i比j重,com[i][j]记录i比j轻。然后我们通过遍历,把有传递性的元素也都记录。最后,我们数一下就可以了。

代码如下:

#include<stdlib.h>#include<iostream>#include<string.h>#include<cstdio>using namespace std;int map[110][110];int com[110][110];int flag[110];int main(){  int ncases,n,m,i,j,k,ans,from,to;  scanf("%d",&ncases);  while(ncases--)  {    memset(map,0,sizeof(map));    memset(com,0,sizeof(com));    memset(flag,0,sizeof(flag));    scanf("%d%d",&n,&m);    while(m--)    {      scanf("%d%d",&from,&to);      map[from][to]=1;      com[to][from]=1;    }    for(i=1;i<=n;i++)    {      for(k=1;k<=n;k++)      {        for(j=1;j<=n;j++)        {          if(map[k][i]&&map[i][j])          {            map[k][j]=1;          }        }      }    }    for(i=1;i<=n;i++)    {      ans=0;      for(k=1;k<=n;k++)      {        if(map[i][k]==1)        {          ans++;        }      }      if(ans>=(n+1)/2)      {        flag[i]=1;      }    }    for(i=1;i<=n;i++)    {      for(k=1;k<=n;k++)      {        for(j=1;j<=n;j++)        {          if(com[k][i]&&com[i][j])          {            com[k][j]=1;          }        }      }    }    for(i=1;i<=n;i++)    {      ans=0;      for(k=1;k<=n;k++)      {        if(com[i][k]==1)        {          ans++;        }      }      if(ans>=(n+1)/2)      {        flag[i]=1;      }    }    ans=0;    for(i=1;i<=n;i++)    {      if(flag[i])      {        ans++;      }    }    printf("%d\n",ans);  }  return 0;}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 养老保险领了几个月就挂了怎么办 高铁餐吧乘务员东西卖不出去怎么办 铁路局如果查出有乙肝怎么办 在火车站丢了东西怎么办 在新乡火车站丢了东西怎么办 自己的行李忘到高铁安检怎么办 高铁二等座睡觉怎么办 空少岁数大了怎么办 美国留学生办欧洲签证怎么办 苏州小区不让装充电桩怎么办 饿了么运力不足怎么办 书法落款写偏了怎么办 辐射4运行不流畅怎么办 vgs币忘了映射怎么办 货车把我的货物运输中损坏怎么办 道路货物运输从业资格证过期怎么办 高铁喷雾被扣了怎么办 宝宝不好好吸奶怎么办 宝宝不用劲吸奶怎么办 刚出生的宝宝不吃奶怎么办 老婆怀孕想吐怎么办呢 菜把下水道堵了怎么办 一楼厕所堵了怎么办 农村房屋确权有争议怎么办 盲审一个没过怎么办 本科生论文盲审不过怎么办 本科盲审没通过怎么办 一篇论文多次引用著作怎么办 学生毕业后改名学籍怎么办 大学毕业后改名字后学籍怎么办 考科目三下暴雨怎么办 挂科太多拿不到毕业证怎么办 挂科太多不给毕业证怎么办 大专毕业拿不到毕业证怎么办 高考差一分二本怎么办 3个月宝宝大小眼怎么办 华东交大理工学院没有评教怎么办 学校断4g网怎么办 学校移动4g网卡怎么办 没上专科线怎么办福建 联考没过本科线怎么办