首页 > 代码库 > CodeForces 281 题解

CodeForces 281 题解

A题:

题意:给出按照时间顺序的比赛记录,比赛记录了哪一分钟有哪位球员得到了黄牌或红牌,输出罚下的人的序列。

题解:直接按照时间读入模拟就可。。注意坑在有可能一位球员罚下后又得到黄牌或红牌,这时候不应再输出这个人了。

 

B题:

题意:给出两个摔跤选手每个动作的得分,正数为第一个人得分负数为第二个人得分,总分高者胜,若相同则“字典序”较大的获胜,再相同则最后得分的人获胜。

题解:直接模拟就可。。要用long long。。

 

C题:

题意:两个队伍篮球比赛,给出每个队伍投进的每个球距离球框的距离,现在要规定一个三分线距离D,小于等于D的为两分球,反之为三分球,问A队减去B队分数的最大值。

题解:不难想到三分线的距离必然为两个队比赛记录中的某个距离,枚举每个距离算出两队的得分更新答案即可,注意若存在多个答案,输出a得分最高的一个。

 

D题:

题意:一个N*N的棋盘,(1,1)为第一个玩家的王后,(1,N)为第二个玩家的王后,王后可以横着竖着斜着走,棋盘上除了这两个位置外都摆满了棋子,两个玩家轮流行动,每一步必须吃掉一个棋子,王后被吃掉的或不能行动输掉比赛,问双方最优策略下先手是否存在必胜策略,若存在输出第一步。

题解:n为奇数先手必败,n为偶数先手必胜:

证明:若n为奇数,则后手只要按照先手的走法,则两人横向间相距的格子数必为奇数,先手永远无法吃到后手,直到后手吃掉先手或者先手无法行动则失败。

   若n为偶数,则先手先往右走一步,两人间的距离变为奇数,此时先手始终跟随后手的走法即可,分析如n为奇数的情况。

 

E题:

题意:求存在多少个系数均为正整数的多项式,使得f(t)=a f(a)=b 输出方案数mod1E9+7

题解:那个模数就是吓人的啊。。答案最多两个啊。。比赛时候一直没想出来。。看到题解恍然大悟

   把多项式写成f(x)=an*x^n+an-1*x^n-1+....+a0的形式

   则a=an*t^n+an-1*t^n-1+....+a0

   若t不为1 则可发现a大于an,an-1,an-2....a0

   这时候带入f(a)=b 则an*a^n+an-1*a*n-1+....+a0=b

   这是b的a进制表示啊!!

   于是把b转换成a进制,然后判断f(t)是否等于a即可。。。。

   现在还有两种情况:

   (1)对于t=1的情况

    t=1 a=1 b=1 答案为inf 显然

    t=1 a=m b=m^n 答案为1 为f(x)=mx^n-1

    其他的可以按照前面的方法处理 因为这种情况下b的a进制表示至少有两个数 则a大于an,an-a,an-2,...,a0成立

   (2)对于a=1的情况

    显然无法转换为1进制(= =) 所以特判掉这种情况就好了 只有a=b=1为一种情况,其他均为无解。

 

CodeForces 281 题解