最近做题老是错几次才能过,纠结郁闷啊。。。不是忘了初始化,就是没仔细考虑数据范围,或者没注意边界数据,昨天,做中科大的月赛,题目的输入 竟然 那么恶心,让我一直WA,火气背加实力不济,希望过一段时间能好转。
A题,一个x*y*z的长方体,问平行 空间 坐标系的x,y或z切k刀,最多分成多少份(最小单位为1*1*1)?
这题跟去年多校联合的切蛋糕是一样的。设将x坐标切x1刀,y坐标切y1刀,z坐标切z1刀,那么x1+y1+z1=k,(x1+1)*(y1+1)*(z1+1)就是最后的份数。。。由上一个等式将z消掉,然后枚举一个变量(x或y),目标函数变为一个有关另一变量的一元二次方程,就很容易求极值了。
B题,现在有n个选手,经过前面一些轮的角逐,每个人都有一定的得分,现在最后一轮,有错乱的m个得分(<10^6,其余得分为0),问其中一个选手的最好排名和最差排名?
这题从数据一看n<10^5,肯定用O(nlogn)的时间复杂度过的,而对于给定选手的最好排名肯定最后一轮他的得分最高,别的选手的得分就不太好对应了。我们发现这题有两个变量,每个选手都有总的得分与排名,并且这两个变量是相关的,所以我们可以二分一个变量,然后再考虑另一个变量。在这题,我们二分枚举给定选手的排名,他的总得分已经知道,如果存在一种情况,使他满足枚举的排名,那么它的最好排名可以更好。假设现在枚举他的排名为mid,那么如果存在n-mid个选手比他的总得分低,那么他的排名可以更好.贪心枚举那n-mid个选手,前面好的mid个成绩(注意第一个成绩给了给定选手)给前一些轮最高的mid-1个,然后后面的n-mid个选手前一些轮的得分与最后一轮最低的n-mid个得分高低交叉搭配才最有可能满足要求的情况。。。最差的排名类似。
C题给定一个字符串(都是小写字母),及最多能改变的最大字符数,接着给出字符间相邻的得分,求最大的得分。
这题是个简单的DP,因为数据量太小了,怎么搞都行,我是用dp[i][j][k]表示到了i位置,改变了j个字符,以k+'a'字符结尾的最大得分,注意初始化。。。
D题 有n个城市,m条双向边,可以把它们分为不同的省,同一省的城市可达,不同省的城市不可达。Vasya 想用一些通道把所有的省份连起来,使得任意两个城市都可达,同时每个省份连接的通道数不得多于k个,当然也许不可能办到,所以题目问至少加多少条无向边才能使他能办到?
题意读了N久M遍才读懂。首先要求出不同的省份的信息(求连通分量),如果k=1时,那么显然只能留下两个连通分量。k!=1时,如果所有连通分量里的城市数都大于1,那么就不用另外加边,因为可以用通道把所有的连通分量连成一条线(其中只有两个连通分量与一条通道相连,其余与两条连通分量相连)。如果连通分量的点数只有一个,因为每一个点最多只能与一条通道相连,所以它不能两端连通道,我们只能把它挂在其它连通分量中(或者挂在线的两端),比如有个m个点的连通分量,留出两点与别的不只一个点的连通分量相连,其它的就可以让只有一个点的连通分量挂在上面。如果还没有挂完的话,那么只有自己消耗了,多加一条边最多可以消耗两个点。
E题 现在最多有x个条目(最少有2个),如果每页放a个条目,那么可以放x/a向上取整页。现在给出n个候选的a,叫你从中选出一些a,使得可以根据每个a返回所得的页数,判断出条目数(即2至x个条目对于选出的a,返回的页数序列都不一样),如果没有a的集合,返回-1
依然读了N久的题目,英语太差了。如果候选的a中有1的话,那么选个1就可以了,这是很显然的。如果x=2的话,a都不用选就可以直接判。对于一般的,如果把a从2至x-1都试一遍,那么显然可以判断是条目数是2至x哪一个。同时a=2的返回的页数相等条目数在a=4页数也会相等(这个是重点),因为4是2的倍数,相当于把页数再除以2了,所以4没必要要了。根据上面可以推导出a只要2至x-1的素数就可以了。。。