程序设计思维与实践 Week7 作业 A TT的魔法猫
题目描述:
众所周知,TT 有一只魔法猫。这一天,TT 正在专心致志地玩《猫和老鼠》游戏,然而比赛还没开始,聪明的魔法猫便告诉了 TT 比赛的最终结果。TT 非常诧异,不仅诧异于他的小猫咪居然会说话,更诧异于这可爱的小不点为何有如此魔力?魔法猫告诉 TT,它其实拥有一张游戏胜负表,上面有 N 个人以及 M 个胜负关系,每个胜负关系为 A B,表示 A 能胜过 B,且胜负关系具有传递性。即 A 胜过 B,B 胜过 C,则 A 也能胜过 C。TT 不相信他的小猫咪什么比赛都能预测,因此他想知道有多少对选手的胜负无法预先得知,你能帮帮他吗?
input:
第一行给出数据组数。每组数据第一行给出 N 和 M(N , M <= 500)。接下来 M 行,每行给出 A B,表示 A 可以胜过 B。
output:
对于每一组数据,判断有多少场比赛的胜负不能预先得知。注意 (a, b) 与 (b, a) 等价,即每一个二元组只被计算一次。
思路:
抽象成图论问题,n个点表示n个选手,给出m对关系,每对关系输入a,b,表示选手a能战胜选手b,在图中表现为a到b有一条有向边,边权为1。由于胜负关系具有传递性,A胜B,B胜C,则A胜C。考虑floyed算法,三层循环,最外层枚举k,表示中间点即前面说的点B。第二层枚举i表示起始点,即前面说的点A,最内层枚举j表示终点,即前面说的C,若a[i][k]==1,且a[k][j]==1,则更新a[i][j]=1。
由于当a[i][k]或者a[k][j]任意一个为0时表示胜负关系未知,即使循环也是无效的,因此可剪枝来优化算法。
最终枚举矩阵的右上角(不包括对角线元素),统计答案。
#include<iostream>
#include<cstring>
using namespace std;
int n,m,ans,a[510][510];
int main()
{int T,x,y;cin>>T;while(T--){cin>>n>>m;ans=0;memset(a,0,sizeof(a));for(int i=1;i<=m;i++){cin>>x>>y;a[x][y]=1;}for(int k=1;k<=n;k++)for(int i=1;i<=n;i++)if(a[i][k])//剪枝 for(int j=1;j<=n;j++)if(a[k][j]){a[i][j]=1;}for(int i=1;i<=n;i++)for(int j=i+1;j<=n;j++)//虽然枚举右上角,但还是要考虑左下角的对称元素。 if(!a[i][j]&&!a[j][i]) ans++;cout<<ans<<endl;}
}
程序设计思维与实践 Week7 作业 A TT的魔法猫相关推荐
- 【20200401程序设计思维与实践 Week7作业】
目录 A - TT 的魔法猫 题意 思路 总结 代码 B - TT 的旅行日记 题意 思路 总结 代码 C - TT 的美梦 题意 思路 总结 代码 A - TT 的魔法猫 题意 众所周知,TT 有一 ...
- SDU 程序设计思维与实践 week7 B TT 的旅行日记【Dijkstra】
B TT 的旅行日记 题意描述 众所周知,TT 有一只魔法猫 今天他在 B 站上开启了一次旅行直播,记录他与魔法猫在喵星旅游时的奇遇. TT 从家里出发,准备乘坐猫猫快线前往喵星机场.猫猫快线分为经济 ...
- 山东大学程序设计思维与实践 四月模拟:TT与可怜的猫
4月模拟-TT与可怜的猫 程序设计思维实践-复杂模拟题训练2 山东大学计算机科学与技术学院程序设计思维与实践 sdu程序设计思维与实践 山东大学程序设计思维实践作业 山大程序设计思维实践 山东大学程序 ...
- 程序设计思维与实践 Week9 作业三道
A - 咕咕东的目录管理器 题面 咕咕东的雪梨电脑的操作系统在上个月受到宇宙射线的影响,时不时发生故障,他受不了了,想要写一个高效易用零bug的操作系统 -- 这工程量太大了,所以他定了一个小目标,从 ...
- 程序设计思维与实践 Week8 作业 B 猫猫向前冲
题目描述: 众所周知, TT 是一位重度爱猫人士,他有一只神奇的魔法猫. 有一天,TT 在 B 站上观看猫猫的比赛.一共有 N 只猫猫,编号依次为1,2,3,-,N进行比赛.比赛结束后,Up 主会为所 ...
- 程序设计思维与实践 Week8 作业 B - 猫猫向前冲
问题描述 众所周知, TT 是一位重度爱猫人士,他有一只神奇的魔法猫. 有一天,TT 在 B 站上观看猫猫的比赛.一共有 N 只猫猫,编号依次为1,2,3,-,N进行比赛.比赛结束后,Up 主会为所有 ...
- 程序设计思维与实践 Week9 作业 A 咕咕东的目录管理器
题目描述: 咕咕东的雪梨电脑的操作系统在上个月受到宇宙射线的影响,时不时发生故障,他受不了了,想要写一个高效易用零bug的操作系统 -- 这工程量太大了,所以他定了一个小目标,从实现一个目录管理器开始 ...
- 程序设计思维与实践 Week8 作业 C - 班长竞选
题目描述 大学班级选班长,N 个同学均可以发表意见 若意见为 A B 则表示 A 认为 B 合适,意见具有传递性,即 A 认为 B 合适,B 认为 C 合适,则 A 也认为 C 合适 勤劳的 TT 收 ...
- 程序设计思维与实践 Week9 作业 (3/4/数据班)
A-咕咕东的目录管理器 题意: 咕咕东的雪梨电脑的操作系统在上个月受到宇宙射线的影响,时不时发生故障,他受不了了,想要写一个高效易用零bug的操作系统 -- 这工程量太大了,所以他定了一个小目标,从实 ...
- 程序设计思维与实践Week9 作业 (1/2/智能班)
A - 咕咕东的目录管理器 题面 咕咕东的雪梨电脑的操作系统在上个月受到宇宙射线的影响,时不时发生故障,他受不了了,想要写一个高效易用零bug的操作系统 -- 这工程量太大了,所以他定了一个小目标,从 ...
最新文章
- 在计算机上创建一个本地用户账户,在工作组中,默认时每台Windows计算机的( )能够在本地计算机的SAM数据库中创建并管理本地用户账户。...
- 听说你们找我很久了?
- vue-router路由示例
- TcpClient和TcpListener 类的使用-编写一个点对点聊天工具(初级入门篇)
- 一个学者科研的感受,推荐一下(小木虫)
- ecshop php5.5分类文字不显示,在PHP5.5下ecshop修正文件报错归类
- C++开发工程师的薪资和未来发展
- 144hz和60hz测试软件,144hz显示器与60hz采集卡(等同于60hz显示器)复制画面后程序帧率异常...
- Xcode打包后,找不到dSYM文件
- 写了个算分压电阻阻值的MATLAB小程序
- win10修改dns服务器地址,教你Win10如何更改首选DNS服务器地址
- 微信小程序开发者工具出现Framework inner error错误
- 什么是3322域名?3322域名如何注册?
- 深度linux显示方块,在Deepin下用Wine运行文华财经赢顺的经验,附字体显示方框的解决...
- excel页码怎么设置从4开始?
- 编程计算1至50中是7倍数的数值之和
- 解决fileReader读取文件乱码
- 总结低代码海报平台编辑器难点
- 你可以穿裙子,但是请放长你的裙摆
- 深入浅出的 Adaboost算法
热门文章
- 中国近代史-蒋廷黻-笔记-第一章-剿夷与抚夷-第二节-英国人做鸦片买卖
- Reflex WMS入门系列二十四:拆托(HD Breakdown)
- ajax ruby,在Ruby on Rails中使用AJAX的教程
- 利用echart和echart-gl绘制江苏省的地图之二
- Cisco网站模块8-10网络间通信考试试题及答案
- h5支付不能打开支付宝 ios_iOS 手机网站支付转Native支付(H5支付页面调起支付宝客户端(app))...
- reg型变量怎么赋值_FPGA的wire和reg类型变量
- 人工智能发展将使人类沦落为“无用阶级”
- 应届大学毕业生户口迁移须知
- CentOS7安装Teamviewer