A.Eleven
题意就是输出长度为$n$的仅含$O$或$o$的字符串,打表标记一下斐波那契的项再输出就好
代码:
1 |
|
B.Radio Station
题意就是给你$n$个主机名字和其对应$ip$地址,再输入$m$个包含给定了$ip$地址的操作,输出同样的操作和其对应的主机名。
用$map$将$ip$地址作为$key$搞搞就行
代码:
1 |
|
C.The Monster
题意就是给你一串含有$?$的括号序列,问号可以用$($或者$)$代替,求所有代替之后可以形成合法括号序列的子串个数。
如果把$($记作$1$,把$)$记作$-1$,做一次括号序列的前缀和,对于一个合法的括号序列其前缀和的最后一位必须为$0$且过程中不能出现负数
但是这里有问号怎么处理呢,可以把问号看作是可以随时使用的一个东西,如果当前的前缀和非负且前缀和小于问号数量,说明$($比较多,应该用问号抵消一部分,如果最后剩余未用问号数量和多余的左括号一样多的话,那两者可以互相抵消,可以构成一个合法的括号序列。
比赛的时候WA了好几发没搞出来,看了别人代码发现是自己想复杂了……
代码:
1 |
|
D.MADMAX
题意就是给你一个有向无环图($DAG$),规则只能走边权不降的边,最后不能走的人输,Max先手,Lucas后手,求当Max在$i$点,Lucas在$j$点,两人均取最优策略时谁胜谁负。输出所有情况下的胜负对应字母($A$代表Max赢,$B$代表Lucas赢)
以为是个贪心+模拟BFS题,实际上是个博弈$DP$,用$dp[i][j][v]$表示当前先手在点$i$,后手在点$j$,最后一次边权值为$v$,$i$是否能获胜。
那么转移方程应该是:
方程意思应该是只要存在当$j$先手时无法取胜,那么$i$先手时就可以按照这个情况取胜,用记忆化搜索加一点剪枝就好。
代码:
1 |
|