第一次培训,心情有点激动(尽管没了清明节),还见到了各地的dalao们,十分开森

Day 1(李昊dalao)

上午篇

上午呢,主要讲了关于高精,快速幂,膜模意义下的运算,筛素数,费马小定理以及欧拉定理,欧拉函数。。。

我印象最深刻的,便是dalao的c++必备head(头文件及各种令人窒息的define)

让人头脑一热QAQ

高精度(先全部考虑非负数)

高精度主要分为以下几个部分

1.高精度加法:

思路:模拟竖式运算

注意:进位

优化:压位

2.高精度减法:

思路:同加法相似,模拟竖式运算,进位变为退位

注意:结果为负数的情况

3.高精乘

思路:类似,模拟竖式运算,考虑进位

注意:结果为0的情况

4.高精除以单精(高精除以高精在日常并不常用)

至于负数的情况呢QAQ

加法:

•一个数是负数:变为减法
•两个数是负数:全部变为正数算加法,最后取负

减法:

•被减数是负数:全部变为正数算加法,最后取负
•减数是负数:减数取负,变为加法
•都是负数:都取负,变为减法,即(-减数)-(-被减数)

乘法:

•统计负数个数s
•都变为非负数计算,若s为奇数,最后取负

除法同理。。。

膜模意义下的运算

这一个就听得十分有意思(毕竟我提前了解了一下)

这里需注意:无除法运算(很容易遗忘)

性质:

•满足基本的交换律、分配率、结合律
•对中间结果取模不影响最终答案

快速幂:

1.分治

int calc(int a,int b,int c)
{if(b==1){return a;}int tmp=calc(a,b/2,c);tmp=tmp*tmp%c;if(b&1){tmp=tmp*a%c;}return tmp;
}

2.快速幂

int ans=1;
while(b)
{if(b&1){ans=ans*a%c;}a=a*a%c;b/=2;
}

类似于这样的操作

费马小定理/欧拉定理

在模意义下有这个东西:

•C(n, m) = n! / ( (n-m)! * m! )
•             = n! * ( (n-m)! * m! )^(p-2)

显然二者有推广关系

筛法

前面讲过,这里就不一一赘述

欧拉函数

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int,int> pr;
const double pi=acos(-1);
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define per(i,n,a) for(int i=n;i>=a;i--)
#define Rep(i,u) for(int i=head[u];i;i=Next[i])
#define clr(a) memset(a,0,sizeof a)
#define pb push_back
#define mp make_pair
#define fi first
#define sc second
ld eps=1e-9;
ll pp=1000000007;
ll mo(ll a,ll pp){if(a>=0 && a<pp)return a;a%=pp;if(a<0)a+=pp;return a;}
ll powmod(ll a,ll b,ll pp){ll ans=1;for(;b;b>>=1,a=mo(a*a,pp))if(b&1)ans=mo(ans*a,pp);return ans;}
ll read(){ll ans=0;char last=' ',ch=getchar();while(ch<'0' || ch>'9')last=ch,ch=getchar();while(ch>='0' && ch<='9')ans=ans*10+ch-'0',ch=getchar();if(last=='-')ans=-ans;return ans;
}
//head
#define N 110000
bool p[N];
int prime[N],tot=0,rec[N],phi[N];
int main(){clr(p);rep(i,2,100000){if(!p[i]){prime[++tot]=i;rec[i]=i;}for(int j=1;j<=tot && prime[j]*i<=100000;j++){p[prime[j]*i]=1;rec[prime[j]*i]=prime[j];if(i%prime[j]==0)break;}}rep(i,2,100000)if(rec[i]==i)phi[i]=i-1;elseif(i%(rec[i]*rec[i])==0)phi[i]=phi[i/rec[i]]*rec[i];else phi[i]=phi[i/rec[i]]*(rec[i]-1);rep(i,2,20)printf("%d : %d\n",i,phi[i]);
}

李昊大佬的码风有些清奇qwq

下午篇

蒟矩阵

such as:

特殊矩阵:

1.上三角矩阵

2.分块矩阵

3.对角矩阵

4.对称矩阵

行列式

需要学一下逆序对(皮一下很舒服)

可以学一下这本书@工程数学线性代数

矩阵逆元

说到逆元,以下是洛谷P3811求乘法逆元的正解

#include<bits/stdc++.h>
using namespace std;
int n,p,inv[25000528];
int main()
{scanf("%d%d",&n,&p);inv[1]=1;for(int i=2;i<=n;i++){inv[i]=(long long)(p-p/i)*inv[p%i]%p;    }for(int i=1;i<=n;i++){printf("%d\n",inv[i]);}return 0;
}

还讲了一堆十分神奇的东西:

矩阵树定理

•一个图的邻接矩阵G:对于无向图的边(u,v),G[u][v]++,G[v][u]++
•一个图的度数矩阵D:对于无向图的边(u,v),D[u][u]++,D[v][v]++
•而通过这两个矩阵就可以构造出图G的基尔霍夫矩阵:C=D-G.
•Matrix Tree定理:将图G的基尔霍夫矩阵去掉第i行和第i列(i可以取任意值,可以证明所得到的结果相同),得到(n-1)*(n-1)的矩阵,对这个矩阵进行行列式的值求解,abs(det(A))即为图G的生成树个数。

让人十分慌张。。。

有向图 - 矩阵树定理

•树形图:以i点为根节点的树形图有(n-1)条边,从i节点出发可以到达其他所有(n-1)个节点.
•定义: 有向图的邻接矩阵G:对于有向图的边(u,v),G[u][v]++.
•有向图的度数矩阵D:对于有向图的边(u,v),D[v][v]++.
•尤其需要注意的是:有向图的度数矩阵指的是一个点的入度,而不是出度。
•而有向图的基尔霍夫矩阵的构造方式是一模一样的:C=D-G.
•有向图Matrix Tree定理:
•将有向图G的基尔霍夫矩阵去掉第i行和第i列,得到(n-1)*(n-1)的矩阵,对这个矩阵进行行列式的值求解,abs(det(A))就是以i为根的树形图的个数。

让人更加慌张。。。

so:这一下午就在慌张中过去了QAQ

之后还会有题目的整理鸭!!!

转载于:https://www.cnblogs.com/gongcheng456/p/10656667.html

清北学堂培训2019.4.4相关推荐

  1. 清北学堂培训2019.4.7

    Day 4(没错,又是他→钟皓曦) 上午,考了个试(悲惨爆零[好像是多加了几个文件夹]) 下午是题目讲解和概率期望的知识(貌似网上好像能搜到他的课件) 这里也没什么奇特的,主要是一些定义的知识(这里采 ...

  2. 清北学堂培训2019.4.6

    Day 3(还是我们熟悉的钟皓曦大佬) 讲了神奇的组合数问题(据说各个网站的组合数问题都是钟皓曦出的,所以他说都是好题) 组合数需要用到下面两个原理和两个神奇的东西 加法原理:具有性质A的事件有m个, ...

  3. 清北学堂培训2019.4.28

    Day 1(冯哲) 今天的内容很杂但却都是基础知识 主要分为下面几个点 枚举 枚举也称作穷举,指的是从问题所有可能的解的集合中一一枚举各元素.用题目中给定的检验条件判定哪些是无用的,哪些是有用的.能使 ...

  4. 清北学堂培训2019.4.29

    Day 2(冯哲) 今天的内容主要分为一下几部分 二叉搜索树 二叉搜索树(BST)是用有根二叉树来存储的一种数据结构,在二叉树中每个节点代表一个数据. 每个节点包含一个指向父亲的指针,和两个指向儿子的 ...

  5. 7月清北学堂培训 Day 5

    今天是钟皓曦老师的讲授~ 动态规划 动态规划的三种实现方法: 1.递推: 2.递归: 3.记忆化: 举个例子: 斐波那契数列:0,1,1,2,3,5,8-- Fn = Fn-1 + Fn-2 1.我们 ...

  6. 清北学堂(2019 4 28 ) part 1

    今天主要用来铺路,打基础 枚举 没什么具体算法讲究,但要考虑更优的暴力枚举方法,例如回文质数,有以下几种思路: 1.挨个枚举自然数,再一起判断是否是回文数和质数,然而一看就不是最优 2.先枚举质数再判 ...

  7. 8月清北学堂培训 Day4

    今天上午是赵和旭老师的讲授~ 概率与期望 dp 概率 某个事件 A 发生的可能性的大小,称之为事件 A 的概率,记作 P ( A ) . 假设某事的所有可能结果有 n 种,每种结果都是等概率,事件 A ...

  8. 五一清北学堂培训之Day 3之DP

    今天又是长者给我们讲小学题目的一天 长者的讲台上又是布满了冰红茶的一天 ---------------------------------------------------------------- ...

  9. 7月清北学堂培训 Day 1

    基础算法 1. 模拟算法 面向测试算法 模拟算法的关键就是将人类语言翻译成机器语言. 要做到以下两点: 1.优秀的读题能力: 2.优秀的代码能力: 程序流程图: 读入,循环处理指令,输出: 读题是很重 ...

最新文章

  1. mysql 4 基础教程_MySQL基础教程(四):MySQL 管理
  2. python最基本的规则是什么_Python基础介绍(一)
  3. 局部变量和成员变量的初始值问题
  4. 数学:《线性代数》矩阵运算
  5. SQL Server中的文件流
  6. java 秒杀 源码 下载_java高并发秒杀系统3-4节秒杀功能实现.mp4
  7. lopatkin俄大神精简中文系统 DREY PIP MICRO BOX LITE区别
  8. 【场景实战】 头像违规的审查场景
  9. 邮件传输协议 SMTP 、POP3 、IMAP 和 Exchange 比较及联系?
  10. 3.3.7 使用difflib.get_close_matches函数
  11. 笔记本电脑CPU低压、标压、高压的区别
  12. ​​Wipe Pro(电脑隐私清理软件)官方正式版V2218 | 怎么清除电脑个人隐私?
  13. java实现将PDF文件拆分成图片
  14. root android 5.0,安卓android5.0怎么一键root? 安卓5.0一键root教程
  15. fiddler抓包史上最完整细致的步骤(抓包微信小程序解决无法Iphone无法上网)
  16. mysql密码expired_mysql密码过期的修改方法(your password has expired)
  17. 拾贰SparkSQL:数据关联优化
  18. 近岸蛋白递交注册:年营收3.4亿 朱化星控制71.24%表决权
  19. PythonStudy——列表与字典推导式 List and dictionary derivation
  20. 金融知识普及知识竞赛

热门文章

  1. mysql setup w_MySql的安装及配置详细指引!
  2. mysql数据库重做日志文件_mysql数据库重做日志
  3. java自动创建月份_使用Java根据月份动态绘制BarGraph
  4. php sql查询两个表语句,sql多表查询语句与方法
  5. 绿盟科技鸿蒙系统,华为 X 绿盟科技,打造“云原生安全新生态”
  6. python 调c++生成的dll 中识别char *_基于tensorflow 实现端到端的OCR:二代身份证号识别...
  7. 某一个接口403 其他接口可以调通_Neo的务实外设指南 篇三十六:一个就够,65W快充+C口混插+最多6个设备 - 飞利浦65W摩天轮插座_插座...
  8. 语音编码 c语言,语音编解码算法G.723.1在DSP - 嵌入式新闻 - 电子发烧友网
  9. 怎么在win7链接无线网络连接服务器,Win7系统网络连接一直显示正在获取网络地址但是连不上网解决方法...
  10. 熊猫的python小课账号_学习python中的pandas有没有好的教程推荐?