1725 The Numbered 89757 Commander
Time Limit : 2000/1000 MS(Java/Others) | Memory Limit : 131072/65536 KB(Java/Others)
Submits : 1 | Solved : 0
Description
在No.57的巧妙安排下,No.57的卡布达军队秒杀了大魔王的军队,大魔王见势不妙,赶紧跑回了城堡,当起了缩头乌龟。
No.57一直敲门,敲啊敲的
大魔王你别躲在里面不出声
我知道你在家
你有本事抢MM 怎么没本事开门啊
开门
你有本事抢MM 你有本事开门啊
别躲在里面不出声 我知道你在家
哼 哼
你有本事抢MM 你有本事开门啊
别躲在里面不出声 我知道你在家
呸
开门啊 开门啊 开门开门开门啊但大魔王还是无动于衷,No.57智取不行只好强攻
为了不浪费时间, No.57制定了作战计划,不过迟迟没有算出这套计划能造成多大伤害,但时间紧迫, No.57只好求助于你了
为了便于计算,现在我们简化这场攻城战
No.57的军队中有n种士兵,他们可以形成攻击阵列或防御阵列
每种士兵形成的攻击阵列都有一个攻击力 a 和需要蓄力的时间 t
为了拯救MM,在No.57营地的士兵们都已经迫不及待了,但还是严格遵守纪律在原地待命等待指挥
No.57的营地大小为10*10的矩阵,有若干列士兵站在营地之中待命,士兵们训练有素,在任何状态(待命状态,攻击阵列蓄力状态,城墙状态)任何时候,若他的前方是空地,他
就会向前进并保持原有状态,如下图中蓝色方框内的士兵会一直移动到红色方框内的格子并待命
No.57的每一次指挥可以有2种形式,而且只有当没有单位需要移动时No.57才会开始进行指挥,并且每次指挥后到所有单位停止移动,并正要开始下一次指挥的时间为恒定的1分钟
1 x y 删除位于 x 列, y 行位置的单位(只对攻击阵列无效),使得该位置变成空地
2 x y 在 x 列最后增加一个 y 类士兵并待命(营地只有10*10的大小,除了移动时,以任何方式处于营地范围之外的单位都将消失,指挥保证不会让攻击阵列处于营地之外)
攻击阵列
有且仅有3个同类士兵构成,需要一定的时间蓄力后才能离开营地(即该攻击阵列所占的3个位置变成空位)发起攻击,若一个攻击阵列是在第i次指挥之时形成的,则他会本次在指挥结束后的第 t 分钟开始时发起攻击(即在第i+t次指挥之前,i+t-1次指挥之后)并且只会攻击城堡一次,攻击伤害和t分别对应这类士兵的攻击力和需要蓄力的时间。
而且士兵们训练有素,配合密切,当同一时间有k个攻击阵列发起攻击时,每个攻击阵列都得到加成,攻击力变为k倍
在营地待命时,任何一列中一旦有3个同类士兵连续站列并都处于待命状态则形成攻击阵列并开始蓄力并且若有3个以上同类士兵连续站列则最前方的3个士兵形成攻击阵列,其
他士兵依旧待命。为了使攻击阵列在完成蓄力后快速发起攻击,所有同一列的待命士兵会移动到攻击阵列之后按原有顺序排列并继续待命
防御阵列
当有3个或3个以上的相同士兵站成连续的一行时则这些士兵都会形成防御阵列,形成防御阵列后这些士兵将前进到各自所在列的最前端并变为城墙 ,而其他单位则按原有的顺序
排在城墙后面
士气
每次成功形成阵列都会让军队士气大增,每次形成任意一种阵列军队都会直接对城堡造成100点伤害
Input
两个整数n,m代表有n种士兵,m次指挥(1<=n<=9,0<=m<=1000)
接下来的n行,每行有3个整数id,a,t代表该种士兵编号,士兵形成的攻击阵列攻击力a和需要蓄力回合数 t(士兵编号为1到n,1<=a<=100,1<=t<=10)
然后将有一个10*10的矩阵map,代表初始时营地上士兵的分布(map[i][j]=k(1<=i,j<=10)表示在第i行第j列有编号为k的士兵,若k=0则表示没有任何单位)(保证在初始时不会形成任何阵列)
接下去m行
每行有3个整数op,x,y,若op为1则进行操作1,若op为2则进行操作2
保证所有输入都是合法的
Output
输出一行表示最终能对城堡造成的伤害(一点攻击力造成一点伤害)
Sample Input
5 5 1 10 2 2 20 2 3 30 3 4 1 10 5 1 10 1231003224 1231003445 2142002134 2142003225 1231001415 1232001234 2142003304 2131000002 1231000002 3303000000 2 3 3 1 3 1 2 3 3 1 4 6 2 9 3
Sample Output
1034
HINT
当一个士兵的加入可以同时形成防御阵列与攻击阵列时,则多个阵列都能完整的生成,比如下列士兵分布图(局部)中在第3列后增加一个编号为1的士兵则会发生如下变化 2210 → ###0 A代表1变成的攻击阵列并处于蓄力状态 2210 → 22A0 #代表1变成的城墙 1100 → 22A0 0000 → 00A0 以下是对样列解释 以A,B,C,D,E代表由编号为1,2,3,4,5士兵形成的攻击阵列 #代表城墙,其他符号如题目描述 第一次指挥后 第二次指挥后 第三次指挥后 ####003224 ##C#003224 ##C#003224 12C1003445 12C1003445 12C1003445 12C1002134 12C1002134 12C1002134 21C2003225 2132003225 21C2003225 2132001415 2132001415 21C2001415 1231001234 1241001234 12C1001234 1242003304 1242003304 1232003304 2142000002 2132000002 2132000002 2131000002 2131000002 2141000002 1231000000 1201000000 1241000000 第四次指挥后 第五次指挥后 最终营地 ##C#003224 ##C#00#### ##3#00#### 12CB003445 12CB003##E 1231003### 12CB002134 12CB00322E 1241003##2 213B003225 213B00213E 2142002130 2131001415 213100322D 2101003220 1241001234 124100141D 1201001410 1242003304 124200123D 1200001230 2101000002 2101000002 2100000000 2101000002 2101000002 2100000000 1200000000 1200000000 1200000000
Source
信息学院第七届程序设计竞赛