
数论
lushanlushan0026
退役acmer,准研究生
展开
-
类欧几里得板子
一下为三个基本的可用类欧几里得求解的式子其中(结论来自Great_Influence大佬的博客)采用递归的形式实现就可以了 如果是更一般的形式如 使用万能欧几里得会更方便(待补)...原创 2020-08-12 17:27:09 · 146 阅读 · 0 评论 -
整除分块的模板
整除分块 用来求 可以在的复杂度内完成大佬的证明 简单明了:整除分块证明#include<bits/stdc++.h>using namespace std;typedef long long ll;int main(){ ll ans=0,n; scanf("%lld",&n); for(ll L = 1,R; L <= n; L=R+1){ R = n/(n/L); ans+=(R-L+1)*(n/L); } prin...原创 2020-08-02 18:29:42 · 191 阅读 · 0 评论 -
牛客多校训1 B Infinite Tree 虚树+数论+树状数组
第一场真的怀疑人生 做题做不动 补题补不动 还有叉姐的一句话题解 (看不懂啊呜呜呜) 然后我左翻右翻 终于找到了这题的题解 博主讲的非常详细 :Infinite Tree知道有虚树这个东西 但是还没看过 虚树的建树过程大概就是 先把所有需要的点拿出来(也有博客说这是叫啥 议事点) 显然这题我们需要的点 就是 1!,2!,3!,,,,,,,n! 这n个点 然后把他们按dfs序排序 所幸 这题按照1~n的顺序就是 dfs序排序的 我们找出每个点前面那个点的lca 最后...原创 2020-07-17 17:36:46 · 231 阅读 · 0 评论 -
E. Johnny and Grandmaster 数论+思维
这道题的思路来源于一个叫zbr的大佬 真的挺秒的 仔细想想也不是很难 但是没有想到如此简便的做法首先我们要从大到小排序 这个应该没问题 因为大数的权重远远比小的大 所以先分配大的在分配小的其次 我们要清楚 对于一个大数 如果我们把他分配给一个集合 另外一个集合就要想办法凑出这个数 根据p^k这个特殊性 假设我们这个一个大数是 p^k 那么比它小的数 要么刚好凑成它要么不够凑 这是显然易见的 如果不够凑 答案就是 p^k减去所有比它小的数 否则 我们把p^k 凑出来 在重置差值为0 再...原创 2020-06-05 11:44:15 · 297 阅读 · 0 评论 -
hdu 4349 组合数奇偶性判断
题目链接:hdu 4349给一个数n求 中为奇数的项数这里有个 公式就是 n&k==k时 C(n,k) 为奇数 具体证明请看https://wenku.baidu.com/view/f15e9b661eb91a37f1115c23.html那么我们只要看n的二进制数有多少个1 假设有cnt个 答案就是 2^cnt#include<bits/stdc...原创 2020-04-28 22:36:39 · 265 阅读 · 0 评论 -
HDU - 6601 Keen On Everything But Triangle 数论+主席树
题目:hdu 6601这个题其实是个很裸的主席树,关键是在复杂度分析。首先,如果对于一个区间的所有值,我们想去选一个最大周长三角形该怎么选? 因为三角形的周长要最大,我们先把值从大到小排序。用Ki表示第 i 大的边,选出K1,K2,K3,如果K1<K2+K3的话,就能构成三角形且周长最大(K1+K2<K3,K1+K3<K2 必然成立) 如果不能构成三角形,我们思考一下...原创 2020-04-28 08:21:59 · 332 阅读 · 1 评论 -
abc 162 E Sum of gcd of Tuples (Hard)
这个题看似很复杂 但我们仔细想想其实就比较简单了假设我们要让N个数的gcd为x (显然x的取值为1到k) 那么我们可以在这N个数里面填 1*x,2*x,3*x...i*x 其中i=k/x 但我们发现 这样去填的话很有可能出现gcd大于x的情况 怎么减去这些情况呢 我们需要合理的容斥我们可以从大向小计算 以ans[x] 表示gcd为x时有多少种填充方法假如N=6,K=...原创 2020-04-15 14:07:28 · 250 阅读 · 0 评论 -
c++高精度(大数)模板
暂时包括大数乘 大数乘int 大数加 大数比较大小struct Bignum{ int ct,c[50]; Bignum(){ct=0,memset(c,0,sizeof(c));}; void output(){ for(int i = ct; i >= 1; i--) printf("%d",c[i]); puts(""); } Bignum(char ...原创 2020-04-12 15:08:26 · 254 阅读 · 0 评论 -
poj 2279 dp(防MLE) 或 数论(杨氏矩阵+勾长公式)
题目链接:poj 2279这个题目 有两种做法 dp 或者是 杨氏矩阵+勾长公式首先是dp做法(参考lyd的书) 这有个小技巧 就是 31的5次方会爆内存 所以我们得开个可变的数组 就是 先把那5维的大小输入 在创建数组 这样可以节省很多空间 另外像这种可变数组是不能全局声明的#include<cstdio>#include<cstring>...原创 2020-04-06 12:27:27 · 343 阅读 · 0 评论