真实菜鸡,被AK打蒙了,签到都最后才找到的。
A.Maximum Element In A Stack
Problem
栈操作,每次操作后求最大值。
Solution
加入时加此时堆里的最大值,要开long long。
Code
1 |
|
B.Rolling The Polygon
一开始看计算几何就没做,最后半小时发现很简单,298分钟过的...
Problem
给一个凸多边形和其内一点,求凸多边形在地下转一周,点走过的距离。
Solution
每个角都走一个圆弧,求出半径和补角,相乘即可。
Code
1 |
|
C.Caesar Cipher
Problem
字母后移,给出示范和目标串,求原串。
Solution
模拟
Code
1 |
|
D.Take Your Seat
Problems
n个乘客分别属于n个座位,顺序坐,第一个随机坐,后面的如果被占了就随机,否则坐自己的,求最后一个坐自己位置的概率。 m同样,不过乘客坐座位顺序随机。
Solution
n=1显然为1,n=2显然为1/2,n=3的时候,P(3)=1/3*(1+P(2)+0),n=4,P(4)=1/4*(1+P(3)+P(2)+0)。
以4为例解释,1号坐在每个位置概率为1/4,当他坐在自己位置,4号必然坐到自己位置,概率为1;1号坐在2号,相当于2号随机坐(疯了),2号的原位置可以视作1,整个删除1号和他坐的2号位置,问题变为P(3);1号坐在3号位置,2号坐对了,他也删去,规模变为P(2);1号坐在4号,概率为0。
所以推测不是1的时候概率都是1/2,可以直接敲了(或者数学归纳法证明)。
m=1时也是1,1号最后登机时坐在自己位置概率为1,否则可以视作他前面的都正常删去,转化为第一个问题,则m不是1时,P(m)=1/m*(1+1/2*(m-1))。
Code
1 |
|
H.Fight Against Monsters
Problem
回合制,勇士打n个怪,每个有hp和atk(血量和攻击),勇士打每一个怪的伤害分别计算,第一次是1,第二次是2,每次加1,怪物先手,问勇士受到的最小伤害。
Solution
hp转成击败次数,贪心,除法排序。
Code
1 |
|