ZJU-1084
来源:互联网 发布:哪里可以买淘宝店铺 编辑:程序博客网 时间:2024/06/08 11:48
此题数据很奇怪,按理说应该是扫描出的输入数据应为对称矩阵,但是好像可能不是,所以录入数据的时候请自行对称一下。
WA了很多次,最后还是蛮过了,稀里糊涂的一道题。
不过算法抽象的不错,以下面的数据为例
【例1】
6
A:BEF
B:AC
C:BD
D:CEF
E:ADF
F:ADE
每两个字母的联通与否用二维图来表示如下
1 1 0 0 1 1
1 1 1 0 0 0
0 1 1 1 0 0
0 0 1 1 1 1
1 0 0 1 1 1
1 0 0 1 1 1
现在开始处理,把粗体的位和同行对角线位相加,然后消去最大的一行一列
1 1 0 0 1 1
1 1 1 0 0 0
0 1 1 1 0 0
0 0 1 1 1 1
1 0 0 1 1 1
1 0 0 1 1 1
得到如下,然后继续
2 1 0 0 1
1 1 1 0 0
0 1 1 1 0
0 0 1 2 1
1 0 0 1 2
3 1 0 0
1 1 1 0
0 1 1 1
0 0 1 3
3 1 0
1 1 1
0 1 2
直到变成二维,此时如果对角线两个数字相等,而且(1,1)位为1,说明最后的两个字母联通且需要添加频道来间隔
如果数字不等,那么OK,取大的就行,然后在对角线上扫描一遍,看是否有更大的数字,如果有,作为结果,如果没有,不管。
3 1
1 2
所以结果是:
3 channels needed.
【例2】
4
A:BC
B:ACD
C:ABD
D:BC
1 1 1 0
1 1 1 1
1 1 1 1
0 1 1 1
1 1 1 0
1 1 1 1
1 1 1 1
0 1 1 1
1 1 1
1 2 1
1 1 2
2 1
1 3
3 channels needed.
【例3】
4
A:BCD
B:ACD
C:ABD
D:ABC
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
2 1 1
1 2 1
1 1 2
3 1
1 3
4 channels needed.
【例4】
10
A:BC
B:A
C:A
D:G
E:HJ
F:I
G:DHI
H:EGJ
I:FGJ
J:EHI
1 1 1 0 0 0 0 0 0
1 1 0 0 0 0 0 0 0
1 0 1 0 0 0 0 0 0
0 0 0 1 0 0 1 0 0
0 0 0 0 1 0 0 1 0
0 0 0 0 0 1 0 0 1
0 0 0 1 0 0 1 1 1
0 0 0 0 1 0 1 1 0
0 0 0 0 0 1 1 0 1
0 0 0 0 1 0 0 1 1
1 1 1 0 0 0 0 0 0
1 1 0 0 0 0 0 0 0
1 0 1 0 0 0 0 0 0
0 0 0 1 0 0 1 0 0
0 0 0 0 1 0 0 1 0
0 0 0 0 0 1 0 0 1
0 0 0 1 0 0 1 1 1
0 0 0 0 1 0 1 1 0
0 0 0 0 0 1 1 0 1
0 0 0 0 1 0 0 1 1
1 1 1 0 0 0 0 0 0
1 1 0 0 0 0 0 0 0
1 0 1 0 0 0 0 0 0
0 0 0 1 0 0 1 0 0
0 0 0 0 2 0 0 1 0
0 0 0 0 0 1 0 0 1
0 0 0 1 0 0 1 1 1
0 0 0 0 1 0 1 2 0
0 0 0 0 0 1 1 0 2
1 1 1 0 0 0 0 0
1 1 0 0 0 0 0 0
1 0 1 0 0 0 0 0
0 0 0 1 0 0 1 0
0 0 0 0 2 0 0 1
0 0 0 0 0 2 0 0
0 0 0 1 0 0 2 1
0 0 0 0 1 0 1 2
1 1 1 0 0 0 0
1 1 0 0 0 0 0
1 0 1 0 0 0 0
0 0 0 1 0 0 1
0 0 0 0 3 0 0
0 0 0 0 0 2 0
0 0 0 1 0 0 3
1 1 1 0 0 0
1 1 0 0 0 0
1 0 1 0 0 0
0 0 0 2 0 0
0 0 0 0 3 0
0 0 0 0 0 2
1 1 1 0 0
1 1 0 0 0
1 0 1 0 0
0 0 0 2 0
0 0 0 0 3
1 1 1 0
1 1 0 0
1 0 1 0
0 0 0 2
1 1 1
1 1 0
1 0 1
2 1
1 1
3 channels needed.
程序如下,还是和以前一样,请准备一个1084.txt作为标准输入源,演算过程可以通过打开对printM()的注释得到。
- ZJU-1084
- zju 1394
- ZJU 1002
- zju 1091
- zju 1025
- zju 2870
- ZJU-1042
- ZJU-1074
- ZJU-1070
- ZJU-1067
- ZJU-1066
- ZJU-1073
- ZJU-1076
- ZJU-1078
- ZJU-2722
- ZJU-1089
- ZJU-1090
- ZJU-1091
- 研发团队需要怎样的绩效管理?
- javascript attachEvent 和 addEventListener 使用方法 区别
- 从google上的图片搜索批量下载
- WTL文件选择对话框 - CFileDialogImpl
- HackShield 版本5, 4, 7, 80 白名单
- ZJU-1084
- csnd 学习的好助手
- 有关NAT和路由之间的先后顺序
- 总结的一些PHP开发中的tips
- .NET Framework 4 文件IO读写的增强 激动人心的强大 或许正是你所期待的 基类库中的新增内容 转自msdn杂志
- 获取数组中最大的值
- tomcat ,apache 负载均衡配置
- unable to open an initial console 问题解决
- Simple summary of virtual memory