摘要:
问题描述 模型是有n个角色需要抽取,每次抽卡都有$p_i$的概率抽到第$i$个角色,问毕业(抽到全部角色)的抽卡次数数学期望是多少 算法 其中P是目标角色抽卡概率的集合 代码 #include <bits/stdc++.h> using namespace std; double cal(vecto 阅读全文
摘要:
多重背包优化 二进制拆分 18个物品可以拆成1,2,4,8,3倍物品,这样5个物品任意取可以得到1~18个物品的所有方案。 时间复杂度是$O(nWlogP)$,P是一种物品的最大数量 #include <bits/stdc++.h> using namespace std; const int ma 阅读全文
摘要:
P2508 [HAOI2008]圆上的整点 题意: 求一个给定的同 \(\left(x^{2}+y^{2}=r^{2}\right),\) 在圆周上有多少个点的坐标是整数。 设正整数$n=2^p_{1}\dots p_q_{1}\dots q_$,其中$p_1,\dots ,p_s,q_1,\dot 阅读全文
摘要:
分治法,将所有点按x坐标进行排序,然后左右两半的点分别递归解决 考虑左边的点和右边的点的距离对答案产生的贡献:首先左右两半点分边计算得到的距离最小值为dis。显然只需要考虑和$P_$的x坐标相差不超过dis的点,对于这些点中的任意一点i,显然只需要考虑和i的y表座相差不超过dis的点,可以证明对于每 阅读全文
摘要:
Graham 算法 先选一个y最小的点p(y相同选x最小) 然后将其他点以p为原点进行极角排序 从p点开始维护一个单调栈,如果栈顶两个元素和新加入点的叉积小于0就弹出。 Point tbBottom; bool cmpTB(Point a,Point b) {//上半平面极角排序; double x 阅读全文
摘要:
问题定义: 双机流水作业调度:总共有n个作业,作业$i$分为两个内容,需要按顺序先后在机器A和机器B上完成,分别需要时间$a_i,b_i$来完成,一台机器只能同时进行一项作业,问完成所有作业所需的最小时间。 多机流水作业调度:一个作业需要在大于两台机器上先后完成,是NP-hard问题。 解法: 问题 阅读全文
摘要:
定义: 给定平面上一个反演中心$O$,给定反演半径$r$,对于平面上任意一个点$A$,都可以找到一个点$A'$,使得$OA*OA'=r^2$,称$A'$为$A$关于$O$的反演点,以$O$为圆心$r$为半径的圆称为反演圆。(下图中圆K为反演圆,A和B互为反演点) 性质 过反演中心的直线反演后就是自身 阅读全文
摘要:
题意: 给定m个数字(m<=9),要求用这些数字构造出一个最短的串,使得它有k不同的个长度为n的连续子串。 思路: 两个相邻的子串,前一个串的后n-1位就是后一个子串的前n-1位,因此想到可以将这个构造问题转化为图上的问题。 图上的点表示一个子串的后n-1位,边表示在后面插入一个新的数字(1~m), 阅读全文
摘要:
快速多项式乘法 FFT 多项式的表示方法 系数表示法 $A(x)=\sum_ a_ * x\(表示为\){{a_0,a_1,...a_n}}$ 点值表示法 $A(x)=\sum_ a_ * x\(表示为\){{x_0,y_0,x_1,y_1...x_n,y_n}}$ 优化多项式乘法的思路 如果用系数 阅读全文
摘要:
原根 **阶:**设 \(a, m \in \mathbb{N}^{+},\) 且 \(a \perp m,\) 使 \(a^{x} \equiv 1(\bmod m)\) 成立的最小正整数 \(x,\) 称为 \(a\) 模 \(m\) 的阶, 记为 \(\operatorname{ord}_{m 阅读全文