数学
数学算法
R_0nnie
这个作者很懒,什么都没留下…
展开
-
牛客 减数游戏
题目在这里可以证明得到性质:1:每次选取最小的两个数,最后得到的数是最大的如果直接这么暴力做,先排序,每次删去两个数得到一个数,将得到的新数插入排好序的数中。显然会超时间,long long也不够用。2. 前一次得到的数,一定比这一次得到的数小,满足单调性。由性质二,当得到的数第一次大于原数列中最大的数时,后面的数都会大于原序列最大的数,因此插入是在原数列后面依次插入。满足单调,有序性。因此将堆中的所有数取出加入队列操作。#include <iostream>#include &l原创 2021-02-18 21:02:57 · 113 阅读 · 0 评论 -
牛客 照看小猫 组合计数
题目在这里每只小猫的名字由小写英文构成,且有一个名字的长度上限。可考虑先初始化,对于不同长度上限,共有多少种不同的取名方案。然后将小猫名字上限从小到大排序,进行遍历。对于小猫i,设长度上限为k,前i-1只小猫的名字长度上限必然小于等于小猫i的,所以小猫i的取名方案数为:长度上限为k的方案数 - (i - 1)。#include <iostream>#include <cstring>#include <algorithm>using namespace原创 2021-02-18 20:39:00 · 100 阅读 · 0 评论 -
不同范围组合数
一.递推法题目描述给定n组询问,每组询问给定两个整数a,b,请你输出CabC_{a}^{b}Cab mod (10^9+7)的值。1≤n≤10000,1≤b≤a≤2000问题解法根据公式CabC_{a}^{b}Cab = Ca−1bC_{a - 1}^{b}Ca−1b + Ca−1bC_{a - 1}^{b}Ca−1b递推进行预处理,求出所有CabC_{a}^{b}Cab 的情况,询问的时间复杂度为O(1)。时间复杂度时间取决于a的值,两层for循环的时间复杂度是O(a^2)参考原创 2020-12-04 20:21:42 · 215 阅读 · 0 评论 -
欧拉函数的证明(容斥原理)
原创 2020-12-12 21:55:50 · 1798 阅读 · 0 评论