暴零不多说 |
2019-08-12
####1Kejin Player
#####思路
p:概率
w:花费
x:回到的关卡
化简:
,故求p的逆元即可
小费马定理:在p是素数的情况下,对任意的整数都有
其中若x无法被p整除,我们有。利用这条性质,在p是素数的情况下,很容易求出一个数的逆元。
把上面的式子变形得到,因此可以通过快速幂运算求逆元
//p, q, x, a;$p_i=\frac{p}{q} $,x下降对应等级,a花费
1 | scanf("%d%d%d%d", &p, &q, &x, &a); |
#####标程
1 |
|
#####我的代码
记住取模时加一个mod防止产生负数
1 | /************************************************************************* |
#####参考大佬博客
####2A + B = C
#####这题解也是没谁了太好了
解一补零到a; b; c 长度相等之后, 可能的情况只有四种: b | (c - a); b | (10c - a); a | (c - b); a | (10c - b).逐个判断.
解二首先把a; b; c 末尾的0 都去掉得到A;B;C, 方便处理.去掉的0, 显然是可以通过调整相对
大小补回来的.
考虑 , k > 0 的情况只存在于A + B, 因为如果是
的情况, 显然B 的末尾是存在0 的, 这和我们上面已经去掉了末尾的0 矛盾.
那么接下来, 显然就是k = 0 的情况, 这样的话, 显然n = 0 或者m = 0, 因为C 的最后以为是
非0 的.确定一个数和C 末尾对齐以后, 另一个要么是和C 首位对齐, 要么就是和C 第二位对齐
(发生了进位).
还有一种情况是, A (不失一般性) 和C 长度相等, 这个时候B 的位置是不确定的, 但我们可以
通过从A 的末尾开始和C 比较, 不相同的最后以为就是B 的末尾所在的位置.
技巧这道题目其实可以不用到高精度.判断两个数相加结果是否等于第三个数, 可以直接用hash
判断.
#####标程
1 |
|
#####参考大佬博客
####3Final Exam
#####口胡题解
换位思考, 考虑如果我们是出题人会怎么让学生做不出k 题, 即最坏情况.显然, 我们会挑出学
生复习得最少的n - k + 1 道题, 让每道题的难度都等于他复习的时间.(田忌赛马的策略)
因此, 回到学生视角, 我们要让自己复习的最少的n - k + 1 题复习时间总和> m, 构造方式显
然.(这谁特喵能想到)
输入样例:
t (case个数)
n m k (分别代表总题,总分数,至少过题目)
例如输入n=5,m=10,k=3
则最坏情况是3 3 4 0 0,而应对策略是前三个只要有一个通过就可以通过,所以田忌赛马就是3 4 4 4 4
#####标程
1 |
|
#####我的代码
1 | /************************************************************************* |
#####(感谢我杰哥的精彩讲解)