1.欧拉定理 设x1,x2,.....,xk,k=φ(n)为1~n中k个与n互质的数 结论一:axi与axj不同余 结论二:gcd(axi,n)=1 结论三:x1,x2,...,xk和ax1,ax2,...,axk一一对应 结论四:aφ(n)≡1(mod n) 计算:φ(m)=m*(1-1/p1)*......*(1-1/pi) Back to here 请证明:如果n为素数,取a<n,设n-1=d*2r,则要么ad≡1(mod n)要么存在0<=i<r,使得ad*2^t≡-1(mod…
1.算数基本定理: 对于任意的大于1的正整数N,N一定能够分解成有限个质数的乘积,即 其中P1<P2<...<Pk,a1,a2,...,ak>=1; 证: 存在性: 若存在最小的N不满足条件,当N为质数是,显然不成立:当N为合数时,存在P,使得N=P*(N/P),N/P<N,与假设N为最小的矛盾,故一定存在: 即:假设N为最小的 当N为质数直接gg 当N为合数还是gg 故不存在... 唯一性: 假设N的分解不唯一 设存在最小的N,使得N=p1r1 p2r2  .... pkr…
1.数论函数的卷积公式 (ƒ*g)(n)=Σd|nƒ(d)×g(n/d) 已知f*[1~n],g[1~n] 怎么求(f*g)[1~n]? 一个个求复杂度O(n根号n) 如何加速? 考虑更换枚举顺序(这点很重要,在接下来的一些求和运算中会用到) 枚举代码: ll f[N],g[N],h[N]; void calc(int n) { ;i*i<=n;i++) { h[i*j]+=f[i]*g[i]; ;i*j<=n;j++) h[i*j]+=f[i]*g[j]+f[j]*g[i]; } } 这样子…
今天是钟皓曦老师的讲授~~ 总结了一下今天的内容: 数论!!! 1.整除性 2.质数 定义: 性质:  3.整数分解定理——算数基本定理 证明: 存在性: 设N是最小不满足唯一分解定理的整数 (1)  若N为质数,则N=N¹,所以N不存在: (2)  若N为合数,则N=P*(N/P),因为N/P也是不满足定理的整数 所以与N是不满足定理的最小整除相矛盾 所以N不存在 唯一性: 4.素数的判定 (注:s.t.是“使得”的意思) 根据钟神长者的小学经验:取2,3,5,7,13,29,37,89这8个…
算数基本定理: 1.整数及其相关 2.唯一分解定理 对于任意的大于1的正整数N,N一定能够分解成有限个质数的乘积,即 其中P1<P2<...<Pk,a1,a2,...,ak>=1; 证: 存在性: 若存在最小的N不满足条件,当N为质数是,显然不成立:当N为合数时,存在P,使得N=P*(N/P),N/P<N,与假设N为最小的矛盾,故一定存在: 即:假设N为最小的 当N为质数直接gg 当N为合数还是gg 故不存在... 唯一性: 假设N的分解不唯一 设存在最小的N,使得N=p1r…
今天还是冯哲老师的讲授~~ 今日内容:简单数据结构(没看出来简单qaq) 1.搜索二叉树 前置技能 一道入门题在初学OI的时候,总会遇到这么一道题.给出N次操作,每次加入一个数,或者询问当前所有数的最大值.维护一个最大值Max,每次加入和最大值进行比较.时间复杂度O(N). EX:入门题给出N次操作,每次加入一个数,删除一个之前加入过的数,或者询问当前所有数的最大值.N ≤ 100000. 引入二叉搜索树(BST): 特征:二叉搜索树的key值是决定树形态的标准.每个点的左子树中,节点的key值…
版权声明:如需转载请标明出处,未得到本人许可请勿转载. 今天就可以看到传说中的 数据结构 嘿嘿嘿嘿 都有什么呢 链表 队列 栈 st表 hash 线段树 树链剖分 一.栈: 放出来这个看烂了的图 值得一提的是栈的性质是先进后出! 那么: 简单粗暴直接上代码 int main() { r=; while (Q--) { cin>>A; ) { cin>>B; s[++r]=B; m[r]=max(m[r-],s[r]); c[r]=c[r-]+s[r]; mc[r]=max(mc[r…
快住手!这根本不是暴力! 刷了一整天的题就是了..上午三道题的画风还算挺正常,估计是第一天,给点水题做做算了.. rqy大佬AK了上午的比赛! 当时我t2暴力写挂,还以为需要用啥奇怪的算法,后来发现,只需要把t1的std改上两行就是t2的std.... t3是比较有水平的,与线段覆盖有关的题.正解思路二分+并查集,想法挺巧妙. (上午考试结束之后抽奖发明信片,看到屏幕上的158,我感觉幸福来得太突然了... (是不是我这两天炉石不开橙把非气都用干净了?233 人家清北学堂倒是挺客气,连U盘都发.…
清北学堂2017NOIP冬令营入学测试 P4745 B's problem(b) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试 描述 题目描述 小B生活在一个很奇怪的国家里,这个国家的钱的面值只有可能是25,50,100的.小B最近在做社会实践,这次它选择在一个餐厅里干这件事情.但今天发生了一件有趣的事,这件事情是这个样子的,餐厅里大家都在排队买饭,粗心的打饭阿姨忘记要带零钱,并且所有排队打饭的人只带了一张钱. 具体地,第i个人带了一张…
清北学堂2017NOIP冬令营入学测试 P4744 A's problem(a) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试题,每三天结算一次成绩.参与享优惠 描述 这是一道有背景的题目,小A也是一个有故事的人.但可惜的是这里纸张太小,小A无法把故事详细地说给大家听.可能小A自己也讲不清楚自己的故事,因为如果讲清了,也就没有这道题目了-- 小A的问题是这个样子,它找到了n份不同的工作,第i份工作每个月有ai的工资,每份工作需要小A每天…
清北第二天,感受到了来自这个世界的不友善,大概把没听过不会的"名词"记录下来就已经一面了,然后被大佬说这都是最基础的东西,就很皮,那就趁别人练习字符串的题的时候,来写波博客了,倒不是不想写,(MD这么快就KMP,Hash,Manacher,AC自动机,Tire树,我毛都不会啊没法写啊,讲的巨难,详细也听不懂啊,上来一个指针就蒙了) 不扯没意思的,从早上开始积累的问题慢慢总结吧. 1.倍增:第一次听到这个词是懵逼的,然后什么树上倍增的直接让我就傻逼了,实际上在之前有次上课的时候,老师提了…
今天是李昊老师的讲授~~ 总结了一下今天的内容: 1.高精度算法 (1)   高精度加法 思路:模拟竖式运算 注意:进位 优化:压位 程序代码: #include<iostream>#include<algorithm>#include<cstdio>#include<cmath>#include<cstring>#include<cstdlib>using namespace std;char a1[1000],b1[1000];i…
这是题目描述的链接: http://lifecraft-mc.com/wp-content/uploads/2018/03/problems1.pdf (虽然这次没去清北,但还是厚颜无耻的做了一下这套题) T1: 估计noip水平的选手都知道这个题可以用矩阵乘法水过去,但是作为一个还有8天就要省选的蒟蒻,我来提供一种娱乐做法:指数型生成函数. 像1和3这样必须出现且出现偶数次的数就可以用一个闭形式为 (e^x + e^-x)/2 - 1 的指数型生成函数表示,具体的推式子见代码. /* ANS…
题目背景 2017国庆清北D1T1 题目描述 你是能看到第一题的 friends 呢. ——hja 何大爷对字符串十分有研究,于是天天出字符串题虐杀 zhx.何大爷今天为 字符串定义了新的权值计算方法.一个字符串由小写字母组成,字符串的权值 被定义为其中出现次数最多的字符的次数减去出现次数最少的字符的次数. (注 意,在讨论出现最少的字符的时候,该字符必须至少出现一次)现在何大爷给 你一个字符串,何大爷想知道这个字符串的所有子串中权值最大的权值是多 少? 输入输出格式 输入格式: 第一行一个整数…
今天是丁明朔老师的讲授~ 数据结构 绪论 下面是天天见的: 栈,队列: 堆: 并查集: 树状数组: 线段树: 平衡树: 下面是不常见的: 主席树: 树链剖分: 树套树: 下面是清北学堂课程表里的: ST表: LCA: HASH: 堆 支持两种操作: 1.插入一个值: 2.删除一个最大值(大根堆)或最小值(小根堆): 需要使用STL里的 priority_queue 或手写: LCA 结点 A 和结点 B 的最近公共祖先 LCA 及以上都是 A 和 B 的公共祖先: 注意 LCA 是尽局限于树上的…
今天是钟皓曦大佬讲课,先来膜一波   %%%%% •数论 数论是这次培训的一个重点,那么什么是数论呢? 数论是研究整数性质的东西,所以理论上day2不会涉及小数QwQ (切入正题) •整除性: 设a,b ∈ Z,如果  c ∈ Z 并且 a = b * c,则称 b | a 称: b为a的因子 b能整除a a能被b整除  / /好像很简单的样子 •质数: 只有1和自身作为因子的数叫做质数 以 π(x)表示不超过x的素数个数,可以证明出以下结论(1): lim π(x) * ln x / x =…
题解: 贪心+dp 30% N<=5  5!枚举一下 20%  高度没有的时候,高度花费就不存在了,将ci排序, 从小到大挨个跳.另外,20% 准备跳楼没有花费,那么跳 楼的高度一定是从小到大,或者是从大到小.所以按照hi从 小到大排序,那么跳楼一定是排序后连续的一段.枚举第一 栋楼从哪开始跳.对于100% (1)hi从小到大排序,最后高度 的花费一定是hend-hstart.那么start—end中间楼的高度就 不会造成影响,只需要将start—end中间的楼排序,取小的ci. (2)现在跳在…
上午讲数位dp和背包问题. 先讲背包: 完全背包:换了个顺序: 多重背包: 多重背包优化: 这样把每个物品分成这些组,那么把他们转变成不同的物品,就变成了01背包问题: 滑动窗口取最值问题.单调队列优化. 方法很简单,枚举每一组中的其中一个物品计算即可. 小技巧: 有些懵... : 终于,到了数位dp环节:(恶心了一上午.) dp方法: 判断上界. 假如我们要枚举到2147,当前已经枚举到了第二位,如果枚举到了1,那么我们说他达到了上界,下一位只能从0枚举到4.如果这一位是0,由于不管下一位是多…
Day2就搞一个KMP把  马拉车.AC自动机等准备省选的时候再说.. 模板题: 1204 寻找子串位置 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 青铜 Bronze       题目描述 Description 给出字符串a和字符串b,保证b是a的一个子串,请你输出b在a中第一次出现的位置. 输入描述 Input Description 仅一行包含两个字符串a和b 输出描述 Output Description 仅一行一个整数 样例输入 Sample Input abc…
/* 爆搜,正解弃坑 */ #include<iostream> #include<cstdio> #include<string> #include<cstring> #include<algorithm> #include<vector> #include<queue> #include<stack> using namespace std; ; int n,m,x1[maxn],y1[maxn],x2[m…
/* 现场代码,枚举每条边删除 */ #include<iostream> #include<cstdio> #include<string> #include<cstring> #include<vector> #include<queue> #include<algorithm> #define mx 1005 using namespace std; struct orz { int d,p; friend bool…
[题目描述]在世界的东边,有三瓶雪碧.--laekov黎大爷为了虐 zhx,给 zhx 出了这样一道题.黎大爷搞了一个数据结构,但是他没有告诉 zhx 这到底是什么数据结构,我们只知道这是一个数据结构.为了让 zhx 知道这是什么数据结构,黎大爷制造了很多次的输入和输出操作.每次加入操作,黎大爷会告诉你他向这个数据结构加入了一个数并告诉你这是多少:每次取出操作,黎大爷会从数据结构之中取出一个数并告诉这是多少.黎大爷希望zhx 根据这些操作来判断这是什么数据结构,但是 zhx 觉得这题太难了所以跑…
今天讲基础数据结构 首先讲(二叉搜索树) 保证左儿子小于右儿子,那么对于根节点来说.大于根节点的放到右子树递归,小于根节点的放在左子树 相等的呢?某大佬(老师)这么说: 删除的前提是找这个点在哪: 如果两个儿子咋办. 再回忆一遍:左儿子的值小于父亲节点的值 右儿子的值大于父亲节点的值 搞一个高度为logn的搜索树: 对于二叉搜索树,它可以通过中序排列大小: 然后是堆. 堆是?https://www.cnblogs.com/lbssxz/p/10776682.html 在堆中插入一个元素,将其与父…
1.hash表(哈希表) codevs 2147 数星星--简单哈希  时间限制: 3 s  空间限制: 64000 KB  题目等级 : 钻石 Diamond 题目描述 Description 小明是一名天文爱好者,他喜欢晚上看星星.这天,他从淘宝上买下来了一个高级望远镜.他十分开心,于是他晚上去操场上看星星. 不同的星星发出不同的光,他的望远镜可以计算出观测到的星星发出的光的数值W.小明当然想尽可能地多看到星星,于是他每看到一颗星星,就要看看他之前有没有看过这颗星星.但是他看的星星太多了,他…
a[问题描述]你是能看到第一题的 friends呢.                                                —— hja世界上没有什么比卖的这 贵弹丸三还令人绝望事了,所以便么一道题.定义…
/* 做法一:按h sort一遍,对于一段区间[i,j],高度花费就是h[j]-h[i] 然后枚举区间,把区间内C排序,一个一个尽量选即可. n^3logn 标算:n^3 dp 高度排序,保证从前往后调. f[i][j]表示当前在第i栋楼,已经跳了j次楼的最小话费.转移枚举下一次跳那座楼. f[k][j+1]=min(f[i][j],f[i][j]+h[k]-h[i]+c[k]);最后枚举f[i][j]<T,ans=max(ans,j). */ #include<iostream> #i…
#include<iostream> #include<cstdio> #include<cstring> #include<stack> #define N 100007 using namespace std; char ch[N]; int ans,pos; stack<char>s; int main() { freopen("shower.in","r",stdin); freopen("…
今天是赵和旭老师的讲授~ 背包 dp 模型 背包 dp 一般是给出一些“物品”,每个物品具有一些价值参数和花费参数,要求 在满足花费限制下最大化价值或者方案数. 最简单几种类型以及模型: 0/1背包: 完全背包: 多重背包: 01背包 状态设置:dp [ i ][ j ] 表示前 i 个物品花了 j 的花费能选出物品的最大价值是多少: 状态转移方程: 如果我们选了第 i 个物品,那么前 i-1 个物品只能花 j - w [ i ] 的钱,再加上这个物品本身的价值: 如果我们不选的话,那么花费和前…
a [问题描述] 你是能看到第一题的 friends呢.                                                —— hja世界上没有什么比卖的这 贵弹丸三还令人绝望事了,所以便么一道题.定义 f(x)为满足 (a×b)|x的有序正整数对 (a,b)的个数.现在给定 N,求 Σni=1f(i) [输入格式] 一行个整数 N. [输出格式] 一行个整数代表答案 . [样例输入] 6 [样例输出] 25 [数据范围与规定] 对于 30%的数据, 1≤N≤100…
先水了一下昨天没讲完的贪心. 然后今天讲的分治. 安利自己水的二分与三分. 二分一定要满足有序.三分适合解决单峰函数问题. 第一道题借教室.运用差分和二分查找. 三分: P1731 [NOI1999]生日蛋糕 p1903国家集训队数颜色/维护队列 高精度除法: 还有一个lyd的秘技:高精度开方. 然后是矩阵乘法,矩阵快速幂,高斯消元. 然后是欧拉大作:欧拉筛(线性筛),埃拉托斯特尼筛法. 积性函数.莫比乌斯函数. 快速gcd算法. a*和ida*神仙算法(完全不懂. exgcd与逆元. 中国剩余…