比赛剩余时间:比赛结束 ID tag Title Accept Submit A [3560] Julyed 41 55 B [3561] Fibonacci 30 70 C [3562] Proxy 24 146 D [3563] Swiss-system tournament 11 43 E [3564] The Binding of Isaac 20 26 F [3565] Feed the monkey 30 103 G [3566] Triple Nim 21 47 H [3567] Memory Leak 7 90 I [3568] Rock Paper Scissors 0 0 J [3569] Execution of Paladin 21 54 K [3570] Reversed Words 20 42 L [3571] Password 1 7
A题 Julyed
题目大意:太水,不说了!!!
B题 Fibonacci
题目大意:判断所给的数能不能由斐波那契数组成,如果能输出任意一种组成形式,不能输出-1
解题思路: 直接暴力,没亮点
解题报告:here
C题 Proxy
题目大意:给你代理服务器之间连接和延时,求出你的服务器(0)和目标服务器(n+1)延时最少的路径和你的服务器之间相连的服务器的编号,如果有多个输出编号最小的,如果为目标服务器,输出0,如果没有路径输出-1.
解题思路: 最短路是确定了,但是由于需要标号是最小的,所以可以反向建边,这样的话在终点是0的时候记录下当前的最后节点就可以了。
解题报告:here
D题 Swiss-system tournament
题目大意:
给你规定一个比赛的形式。每一个人都有一个初始的分数和能力。首先讲他们排序,分数大在前,相等的编号小的在前。然后相邻的两个人比赛,即1与2,3与4等。每次能力大的人第一分,比完之后,然后排序,再进行比赛。比赛R场,问排名为Q的人的编号。 解题思路: 如果我们直接模拟比赛的方式那么时间复杂度是 O(nRlog(n)) ,会被卡 log(n) ,所以处理的方式就是在第一次排序完成后,我们会发现,我们可以将2×n的人分为两部分,一部分是加分的,一部分是不变的,而且他们之间也是有序的,那么我们可以采用归并的方式将比赛之后的序列排好时间复杂度为 O(RN) .解题报告:here
E题 The Binding of Isaac
题目大意:给你一个地图,判断super-secret room 的数量,规定超秘房间的四周只有一个common room.
解题思路: 直接搜
解题报告:here
F题 Feed the monkey
题目大意:
给你三种水果的数量和每一个水果不能连续的数量,问有多少中组合方式。
解题思路: Dp[i][j][k][f]表示第一种水果剩余i个第二种水果剩余j个,第三种水果剩余k个,以f种水果结尾连续数量在规定范围内的组合种类,那么第一种水果为例,连续的为s个:Dp[i-s][j][k][0] += Dp[i][j][k][1]+Dp[i][j][2] ;
解题报告:here
G题 Triple Nim
题目大意:
题意:给你n个石子,分成三堆,计算通过Nim博弈的规则使得对方不能获胜的方案数。
解题思路: 打表找规律题,不解释。
解题报告:here
H题 Memory Leak
题目大意:模拟C++空间分配
解题思路:纯模拟
解题报告:here
I题 Rock Paper Scissors
题目大意:
解题思路:
解题报告:
J题 Execution of Paladin
题目大意:炉石传说大水题
解题思路: 水题,不说。。
解题报告:here
K题 Reversed Words
题目大意:水题
L题 Password
题目大意:
解题思路:
解题报告:here