![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数学
狐佑 怜
都写都写(指题解)
展开
-
关于逆元的一些知识
因为完全搞不懂逆元,所以在这里留一个MOD是质数时O(N)求逆元的板子inv[1]=1; for(int i=2; i<=n; i++) inv[i]=1ll*(mod-mod/i)*inv[mod%i]%mod;原创 2020-10-26 18:01:28 · 169 阅读 · 0 评论 -
关于组合数的一些知识
昨晚的ATcoder D直接傻掉了,后来看了题解发现是在考察组合数相关知识,麻了,完全不知道这种知识的我只能傻眼,于是就悻悻的来补知识了。。。题目链接原创 2020-10-25 19:57:37 · 146 阅读 · 0 评论 -
Codeforces Round #652 (Div. 2) D. TediousLee (1900)
D. TediousLee题目大意:在树第N次成长后,最多能选出多少颗爪型树,求出这个值*4(点的数量)思路:经过几次推导,能够发现,会新长出来的点的数量a[i]=a[i-1]+2*a[i-2],因为爪型树的根节点来自a[i-2],左右两边的点来自a[i],下面的点来自a[i-1],能够看出,每当选出一层的根节点为a[i]爪型树,就不能再选根节点层数为a[i-1]和a[i-2]的爪型树,所以能推出递推式ans[i]=ans[i-1]+2*ans[i-2]+(i%3==0);该递推式的意思值的是从最原创 2020-07-10 09:52:43 · 126 阅读 · 0 评论 -
Educational Codeforces Round 90 (Rated for Div. 2) C. Pluses and Minuses (1300)
C. Pluses and Minuses题意:给一个字符串s,有如下代码:res = 0for init = 0 to inf cur = init ok = true for i = 1 to |s| res = res + 1 if s[i] == '+' cur = cur + 1 else cur = cur - 1 if cur < 0原创 2020-07-01 20:13:15 · 216 阅读 · 0 评论 -
Educational Codeforces Round 88 (Rated for Div. 2) E (组合数)
E. Modular Stability题意:给你 n 个数,你要从中选 k 个来组成 a 数组,使得非负数 x 对数组 a 中的所有元素以任意的顺序取模后的结果不变,即:问这样的数组一共能构造多少个?思路:能看出来数组的关键就在于最小的那一项,如果最小的那一项是其余所有元素的因子的话,那该数组就能被构造,例:n = 10 , k = 4 ;a[4] = { 2 , 6 , 8 , 10 }设最小项为 m , 那么数组中元素就是 m ,2m,3m,4m,……。不论 x 是多少,它都必定被分解原创 2020-05-30 00:00:13 · 224 阅读 · 0 评论 -
Educational Codeforces Round 88 (Rated for Div. 2) C
C. Mixing Water题目大意:T组数据,每组数据3个值,分别是h,c,t (1≤c<h≤106; c≤t≤h) ,分别指热水温度,冷水温度和目标温度。问按照 热水->冷水->热水->冷水 这样的顺序倒水,最少需要几杯水能使得得到的温度距离目标温度的绝对值最小思路:可以知道,我们能得到的最高温度是h,最低温度是( h + c ) / 2,所以我们先判断 t 是否 ≤ ( h + c ) / 2,因为不能得到更低的温度,所以如果 ≤ 的话就直接输出 2 ,否则我们再来看>原创 2020-05-29 19:18:39 · 180 阅读 · 0 评论 -
HDU - 1495 非常可乐 (GCD+数学)
HDU - 1495虽然用BFS暴力上去很好做,但是用GCD的方法会好写很多。假设 A,B,C 3个杯子大小递减,饮料一开始是装在A里的。那么在这3个杯子之间能够允许的被转移的饮料的最小量就是GCD(B,C)。这样一来,只用看A是GCD的多少倍就行了,如果是奇数倍则不能平分,输出NO;否则输出A/GCD-1(有一份是留在A里没有动的,所以要减一)最后这两份饮料一定是分别在A和B里的。一...原创 2020-03-16 23:37:09 · 277 阅读 · 0 评论