题目名称 | 1503. [IOI 1998]多边形 |
---|---|
输入输出 | polygon1.in/out |
难度等级 | ★★ |
时间限制 | 1000 ms (1 s) |
内存限制 | 256 MiB |
测试数据 | 5 |
题目来源 | cstdio 于2014-01-23加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:77, 提交:198, 通过率:38.89% | ||||
LGLJ | 100 | 0.000 s | 0.00 MiB | C++ |
没啥,随心 | 100 | 0.000 s | 0.00 MiB | C++ |
yi_fan0305 | 100 | 0.000 s | 0.00 MiB | C++ |
op_组撒头屯 | 100 | 0.000 s | 0.00 MiB | C++ |
syzhaoss | 100 | 0.000 s | 0.00 MiB | C++ |
健康铀 | 100 | 0.000 s | 0.00 MiB | C++ |
liuyiche | 100 | 0.000 s | 0.00 MiB | C++ |
┭┮﹏┭┮ | 100 | 0.000 s | 0.00 MiB | C++ |
宇战 | 100 | 0.000 s | 0.00 MiB | C++ |
嗨嗨嗨 | 100 | 0.000 s | 0.00 MiB | C++ |
关于 多边形 的近10条评论(全部评论) | ||||
---|---|---|---|---|
回复 @o(∩_∩)o :
我也来冒个泡 | ||||
回复楼已被HZOI占领。。
奶猹
2014-09-13 11:43
8楼
| ||||
回复 @真呆菌 :
点赞!
☪Repentance soul
2014-08-13 10:37
7楼
| ||||
看天一阁主持正义
天一阁
2014-08-13 10:24
6楼
| ||||
回复 @焦泽辉 :
= =
OI永别
2014-06-13 18:38
5楼
| ||||
temp
2014-06-13 16:18
4楼
| ||||
temp
2014-06-13 15:47
3楼
| ||||
帅想
| ||||
有没有人告诉你们“\n”也能输入进char
天一阁
2014-06-10 14:48
1楼
|
多边形(Polygon)游戏是单人玩的游戏,开始的时候给定一个由$N$个顶点构成的多边形(图1所示的例子中,$N=4$),每个顶点被赋予一个整数值,而每条边则被赋予一个符号:+(加法运算)或者*(乘法运算),所有边依次用整数1到N标识。
图1一个多边形的图形表示
首次移动(first move),允许将某条边删除;
接下来的每次顺序移动(subsequentmoves),包括下面步骤:
1、选出一条边E,以及由E联接的顶点V1和V2;
2、用一个新的顶点,取代边E及其所联接的两个顶点V1和V2。新顶点要赋予新的值,这个值是对V1和V2,做由E所指定的运算,所得到的结果。
所有边都被删除后,只剩下一个顶点,游戏结束。游戏的得分就是该顶点的数值。
下面是一个游戏实例:
考虑图1中的多边形。
玩家第一步删除第3条边。结果如图2所示。
图2 删除第3条边
之后,玩家删除第1条边
图3 删除第1条边
然后删除第4条边,
图4 删除第4条边
最后删除第2条边。得分是0.
图5 删除第2条边
任务:
编写一个程序,对于任意给定的多边形,计算可能的最高得分,并且列举出所有的可以导致最高得分的被首次移动的边。
输入包含两行。
第一行为整数$N$。
第二行用来描述多边形所有边上的符号以及所有顶点上的整数,从编号为 1的边开始,边、点、边…按顺序描述。
其中描述顶点即为输入顶点上的整数,描述边即为输入边上的符号,其中加号用 t
表示,乘号用 x
表示。
输出的第一行,你的程序必须输出在输入文件指定条件下可能得到的最高得分。
有些边如果在首次移动中被删除,可以导致最高得分。在输出文件的第二行,要求列举出所有这样的边,而且按照升序输出,其间用一个空格分开。
4 t -7 t 4 x 2 x 5
33 1 2
样例输入对应于图1所示的多边形。第二行的第一个字符是1号边的符号。
$1\leq N\leq 50$,且无论玩家如何操作,顶点上的数值均在 $[-32768, 32767]$ 之间。
IOI1998 polygon
翻译 by 来煜坤,《把握本质,灵活运用——动态规划的深入探讨》