第七届 山东省ACM大学生程序设计竞赛

比赛剩余时间:比赛结束
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






原文地址:https://www.cnblogs.com/zswbky/p/6717887.html