清北学堂培训2019.4.4

第一次培训,心情有点激动(尽管没了清明节),还见到了各地的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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/536568.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国二c语言作弊用u盘,计算机等级考试可以插u盘吗(全国计算机等级考试报名系统官网)...

&#xff1a;不可以 会有嘀嘀嘀的报警声的&#xff1a;我以前考时不让带的&#xff0c;人家让你不能用优盘的话电脑会控制没法用的。&#xff1a;首先肯定回你&#xff0c;不可以带优盘或者其他作弊设备。很多计算机二级考点会把主机箱锁死&#xff0c;根本插不了优盘。在你进入…

「SCOI2011」棘手的操作

传送门 Description 有\(N\)个节点&#xff0c;标号从\(1\)到\(N\)&#xff0c;这\(N\)个节点一开始相互不连通。第$ i\(个节点的初始权值为\)a_i$ &#xff0c;接下来有如下一些操作&#xff1a; U x y 加一条边&#xff0c;连接第 \(x\) 个节点和第\(y\) 个节点。 A1 x v 将…

swft c 语言 数组,如何在swift中实现数组的深拷贝

在Objective-C中如果想将一个数组赋值给另外一个数组&#xff0c;同时想让两个数组之间相互独立(即改变其中的一个数组&#xff0c;不影响另外的一个)&#xff0c;有很多的办法&#xff0c;比如我们可以直接copy,用类方法创建新数组。这样得到的数组和原来的数组就是两个完全独…

tomcat CATALINA_HOME与CATALINA_BASE的区别

区别 https://blog.csdn.net/cfydaniel/article/details/41351927 Tomcat启动分析(我们为什么要配置CATALINA_HOME环境变量&#xff09; http://www.cnblogs.com/heshan664754022/archive/2013/03/27/2984357.html转载于:https://www.cnblogs.com/Andrew520/p/10664921.html

android 广告栏效果,实现android广告栏效果

public classBannerLayout extendsRelativeLayout {privateViewPager mViewPager; // 轮播容器// 指示器(圆点)容器privateLinearLayout indicatorContainer;privateDrawable unSelectedDrawable;privateDrawable selectedDrawable;private intWHAT_AUTO_PLAY 1000;private boo…

自我练习

<!doctype html><html><head><meta charset"utf-8"><title>无标题文档</title><link rel"icon" href"../HTMLWork/day03/psb.ico.ico" type"img/*"></head><body> <a na…

android studio按钮槽函数,AndroidStudio按钮Button退出程序

AndroidStudio 3.1.41.创建一个新的项目&#xff0c;项目名称为Button&#xff0c;界面为activity_button.xml2.打开activity_button.xml3.点击HelloWorld标签&#xff0c;按Delete删除4.左侧组件栏选择Common - Button5.将Button组件拖到界面上&#xff0c;大概中间的位置6.右…

cobbler介绍与部署

cobbler介绍 Cobbler是一个Linux系统安装的服务&#xff0c;可以通过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机&#xff0c;同时还可以管理DHCP&#xff0c;DNS等。 Cobbler可以使用命令行方式管理&#xff0c;也提供了基于Web的界面管理工具(cobbler-web)&#…

android wifi视频监控软件,WiFi环境下Android智能视频监控系统研究与实现

摘要&#xff1a;在互联网飞速发展和移动互联网强势崛起的时代,科技产品服务于普通生活是新兴行业必然的发展趋势;监控系统是物联网时代各个领域必然争取的可控制系统。随着无线技术和移动终端设备的高歌猛进,移动终端智能无线视频监控系统成为时下监控领域发展的热点方向。无线…

android 本地地址转换为url,android本地mipmap图片转url、绝对路径转URL URL URI File Path 转换...

标签&#xff1a; url uri file pathFile to URI:File file ...;URI uri file.toURI();File to URL:File file ...;URL url file.toURI().URL();URL to File:URL url ...;File file new Path(url.getPath()).toFile();URI to URL:URI uri ...;URL url uri.toURL();URL …

ORACLE数据库导出导入数据

准备工作&#xff1a; 1、登录管理员system 2、create directory dbdata as C:\oracle\tempData;--创建备份文件夹 3、grant read,write on directory dbdata to gsjk2018;--授权读写为用户 --导出(每次修改文件名)expdp gsjk2018/gsjk2018_vimtech10.0.73.32:1521/orcl direct…

linux sed名宁,Linux shell利用sed批量更改文件名的方法

微子网络与大家分享了在Linux shell中使用sed批量更改文件名的方法。希望你看完这篇文章有所收获。大家一起讨论一下。示例去除特定字符目标&#xff1a;把2017-01-01.jpg和2018-01-01.jpg变成20170101.jpg和20180101.jpg方法&#xff1a;用空值替换全部for filein ls | grep …

android手机给iphone越狱,一台ROOT后的安卓手机:可以用来给iOS 13越狱了

iOS 13时代的越狱工具主要包括unc0ver和Checkra1n两款&#xff0c;前者最新的v4.2.1版本已经支持A9到A13设备从除了支持的设备和系统多&#xff0c;unc0ver的一大优势在于可在iOS设备上独立完成越狱操作&#xff0c;Checkra1n则需要借助电脑&#xff0c;包括重启失效后也是如此…

502 Bad Gateway The server returned an invalid or incomplete response

问题描述&#xff1a;最近在登陆某大学网站时&#xff0c;网站如下&#xff1a; https://yzb.tju.edu.cn/ 发现登录不进去&#xff0c;报了502 Bad Gateway The server returned an invalid or incomplete response这个错误。 问题解决&#xff1a;将https改为http&#xff0…

iOS VIPER架构(三)

路由是实现模块间解耦的一个有效工具。如果要进行组件化开发&#xff0c;路由是必不可少的一部分。目前iOS上绝大部分的路由工具都是基于URL匹配的&#xff0c;优缺点都很明显。这篇文章里将会给出一个更加原生和安全的设计&#xff0c;这个设计的特点是&#xff1a; 路由时用p…

android camera滑动,Android怎么实现小米相机底部滑动指示器

Android怎么实现小米相机底部滑动指示器发布时间&#xff1a;2021-04-15 14:39:38来源&#xff1a;亿速云阅读&#xff1a;94作者&#xff1a;小新这篇文章给大家分享的是有关Android怎么实现小米相机底部滑动指示器的内容。小编觉得挺实用的&#xff0c;因此分享给大家做个参考…

laravel安装laravel-ide-helper扩展进行代码提示(二)

一、扩展的地址 https://github.com/barryvdh/laravel-ide-helper二、安装扩展 1、引入库&#xff1a; composer require barryvdh/laravel-ide-helper composer require doctrine/dbal如果只想在开发环境上使用&#xff0c;请加上--dev composer require --dev barryvdh/larav…

android md 颜色,安卓MD(Material Design)规范

Md规范是一种设计风格&#xff0c;并不特指规范。是一种模拟纸张的手法。一、核心思想把物理世界的体验带进屏幕。去掉现实中的杂质和随机性&#xff0c;保留其最原始纯净的形态、空间关系、变化与过度&#xff0c;配合虚拟世界的灵活特性&#xff0c;还原最贴近真实的体验&…

Mariadb修改root密码

2019独角兽企业重金招聘Python工程师标准>>> 默认情况下&#xff0c;新安装的 mariadb 的密码为空&#xff0c;在shell终端直接输入 mysql 就能登陆数据库。 如果是刚安装第一次使用&#xff0c;请使用 mysql_secure_installation 命令初始化。 # mysql_secure_inst…

【译】Googler如何解决编程问题

本文是Google工程师Steve Merritt的一篇博客&#xff0c;向大家介绍他自己和身边的同事解决编程问题的方法。 原文地址&#xff1a;blog.usejournal.com/how-a-googl… 在本文中&#xff0c;我将完整的向你介绍一种解决编程问题的策略&#xff0c;这个策略是我在日常工作中一直…