| 赞 | 0 |
| VIP | |
| 好人卡 | |
| 积分 | 2 |
| 经验 | |
| 最后登录 | 2019-4-8 |
| 在线时间 | 249 小时 |
- 梦石
- 0
- 星屑
- 163
- 在线时间
- 249 小时
- 注册时间
- 2014-7-18
- 回帖
- 26
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
本帖最后由 M.Winderic. 于 2017-4-15 22:34 编辑
游戏规则是酱紫的:
平面中有一连续区域由三角形组成,每次操作选择一个三角形,
将被选中的三角形以及与其相邻的具有相同颜色的三角形染成另一种颜色。
当区域内仅剩一种颜色时就过关啦~
然而这太烧脑子啦 o(╥﹏╥)o
求一个一劳永逸的方法......
已知:稀疏无向连通图 G,有 n 个顶点, m 条边,每个顶点存有一个数值 i 代表该顶点的颜色。
保证:0 < c < 8; c <= n < 256; n <= m < 1024。
求:按照游戏规则完成所需要的最小染色次数k, 以及对应的任意可行方案(第 i 次操作将 v 号顶点染为颜色 t)。
Input:
integer n, m;
n.times {
integer c[n];
};
m.times {
integer pair (a, b);
};
Output:
integer k;
k.times {
integer pair (v, t);
};
Sample 1:
Input:
6, 6;
1, 1, 1, 2, 2, 2;
1, 2; 2, 3; 3, 4; 4, 5; 5, 6; 6, 1;
Output:
1;
1, 2;
sample1
Sample 2:
Input:
5, 6;
1, 1, 2, 1, 2;
1, 2; 2, 3; 3, 4; 4, 5; 5, 1; 2, 5;
Output:
2;
4, 2; 4, 1;
sample2
游戏截图
kami2_screenshot
|
|