曹文信息在线OJ
Home
ProblemSet
Source/Category
Contest
Status
Ranklist
F.A.Qs
Login
Register
2420: Swimming Duck
Memory Limit:512 MB
Time Limit:1.000 S
Judge Style:Text Compare
Creator:
Submit:15
Solved:7
Submit
Submit Record
Statistics
Web Board
ShowOff!
Description
pcf最近沉迷于一款名为Swimming Duck的游戏。在游戏中,主角GreenDuck在一块n*n大小的正方形湖面上迷路了,玩家得帮助GreenDuck从 左上角出发,抵达右下角的目的地。在湖面上有一些味道鲜美的鱼,GreenDuck在回家时会不自觉地收集这些鱼儿。同时湖中也有阻挡道路的石头,GreenDuck不能越过它们。
pcf认为这些鱼有各自的价值,因此他想让GreenDuck最大化收集到的鱼的价值。庆幸的是,这款游戏仅仅是普及组的OIER设计的,所以GreenDuck只能向右或向下移动一格,也不能走斜线。
同时,为了向好朋友baobao证明自己没有开挂,他还要找出GreenDuck的移动路线。若GreenDuck有多条路线能得到最优解,那他会优先选择向下走。
Input
第一行一个整数n,表示湖的大小为n*n。(n≤100)
接下来n行,每行一个整数ai,描述了湖面上鱼的价值。特别地,若ai为-1,表示这是一块石头。
Output
第一行:一个整数。若GreenDuck不能回到家中,输出-1;否则接下来为n*n的一个矩形,'-'代表没有经过的地方,'*'代表GreenDuck经过的地方。每行末尾有空格。答案在int范围内。
Sample Input
Copy
4 1 2 2 1 -1 1 -1 1 -1 1 -1 1 -1 1 1 1
Sample Output
Copy
9 * * * * - - - * - - - * - - - *
HINT
【输入样例2】
3
1 1 1
1 1 1
1 1 1
【输出样例2】
5
* - -
* - -
* * *
【解题提示】
强行二维dp.......
Source/Category
动态规划
高级B