上午篇

一、高精度计算;

【以下内容先只考虑非负数情况】

•高精度加法:

思路:【模拟竖式运算】

注意:【进位】

•高精度减法:

思路:【同加法类似,模拟竖式运算,进位变退位】

注意: 【结果为负数的情况(一会儿讲到)】

•高精度乘法:

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

注意:【结果为0的情况】

附总代码:

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<cstdlib>
using namespace std;
char str[];
int a[],b[],c[];
int main(){
scanf("%s", str);
int len=strlen(str);
// '36'
for(int i=len-;i>=;i--)a[len-i]=str[i]-'';
// scanf("%s", str);
int n=len;
/*len=strlen(str);
// '36'
for(int i=len-1;i>=0;i--)b[len-i]=str[i]-'0';
int m=len;//将数字转成字符串输入
n=max(n,m);*/ //for(int i=1;i<=n;i++)c[i]=a[i]...b[i];//...处为运算符号
/*for(int i=1;i<=n;i++){
c[i+1]+=c[i]/10;
c[i]%=10;//模拟进位,以下被注释掉的大多也一样;
}*/-----高精加法部分
/*for(int i=1;i<=n;i++)
if(c[i]<0){
c[i]+=10;
c[i+1]-=1;
} while(c[n]==0)n-=1;*/-----高精减法部分 /*for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
c[i+j-1] += a[i]*b[j]; for(int i=1;i<=n+m-1;i++){
c[i+1]+=c[i]/10;
c[i]%=10;
}
n=n+m-1;
while(c[n+1]>0)n+=1;*/-----高精乘法部分
/*int B;
cin>>B;
cout<<B<<endl;
for(int i=n;i>;i--){
c[i]=a[i]/B;
a[i-]+=(a[i]%B)*;
}
while(c[n]== && n>)n--;*/-----高精除以低精部分
for(int i=n;i>;i--)printf("%d",c[i]); }

•那么,负数怎么办呢?

其实可以分三种

(1)加法:

一个数是负数:变为减法;

两个数是负数:全部变成正数算加法,最后取负;

(2)减法:

被减数是负数:全部变为正整数算加法,最后取负

减数是负数:减数取负,变为加法

都是负数:都取负,变为减法,即(-减数)-(-被减数)

(3)乘除法:

统计负数个数s

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

二、模意义下运算

•以七为例,模7意义下的运算:

(1)加法:         4 + 5 = 2  (4 + 5 = 9 = 7 * 1 + 2)

(2)减法:         4 - 5 = 6   (4 - 5 = - 1 = 7 * 1 - 6)

(3)乘法:         3 * 3 = 2   (3 * 3 = 9 = 1 * 7 + 2)

(4)除法:         3 / 3 = 1    (3 / 3 = 1 = 0 * 7 + 1)

(5)良心发现:          模意义下没有除法   ---蛤蛤蛤---

•模意义下运算的性质:

(1)满足基本的交换律、分配律、结合律

(2)对中间结果取模不影响最终答案

例:5 * 5 * 5 mod 7

=(5 * 5 mod 7)* 5 mod 7

= 4 * 5 mod 7

= 20 mod 7

= 6

• 快速幂:

题目描述:计算a ^ b % p = ?

三种思路:

(1)暴力(不说了,太难)

(2)分治

(3)神奇的快速幂(当做模板来记得了)

•费马小定理:

(1)定义:

对于素数p和任意正整数a(0~p-1),有a ^ (p-1) ≡ 1(mod p)

(2)应用:

计算C(n,m) % 10^ + 7

解:

C ( n , m ) = n ! / ( ( n - m ) !  * m ! )

= n ! * ( ( n - m ) ! * m ! ) ^ ( p - 2 )

= n ! * ( ( n - m ) ! ) ^ ( p - 2 ) * ( m ! ) ^ ( p - 2 )

•最大公约数

(1)一个叫gcd的东西

(2)gcd ( a , b ) = gcd ( b , a mod b )

(3)

•最小公倍数

(1)一个叫李春梅lcm的东西

(2)lcm ( a , b ) = a * b / gcd ( a, b )

(3)

•质数判别

(1)sqrt判别

(2)诶式筛

(3)线性筛

•欧拉函数

见选修4-6

下午篇

•蒟矩阵乘法

  (1)一个m * n的矩阵就是m * n个数排列成m行n列的一个【数阵】

  (2)一个m * p的矩阵A乘以一个p * n的矩阵B得到一个m * n的矩阵

  (3)其中

    (AB)ij=∑(k=1,p)aikbkj;

  (4)图片描述

  (5)例题

  (6)注意:   矩阵乘法满足结合律、分配律,不满足交换律

  (7)特殊矩阵的矩阵乘法:

      上三角矩阵

分块矩阵

      对角矩阵

      对称矩阵

•行列式

  (1)定义

       哈哈其实是计算啦

  (2)计算

•矩阵树定理

•有向图—矩阵树定理

***谢谢大家***

清北学堂学习总结day1的更多相关文章

  1. 清北学堂学习总结 day1 数据结构 练习

    1.二叉搜索树 STL set直接做就可以了 2.树状数组+差分数列: codevs 1081 线段树练习 2  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Maste ...

  2. 清北学堂学习总结day2

    今天是钟皓曦大佬讲课,先来膜一波   %%%%% •数论 数论是这次培训的一个重点,那么什么是数论呢? 数论是研究整数性质的东西,所以理论上day2不会涉及小数QwQ (切入正题) •整除性: 设a, ...

  3. 清北学堂学习总结day3

    小学知识总结 上午篇 •积性函数的卷积公式 (1)(f * g)( n ) = ∑(d|n) f( d ) x g ( n / d ) (2)代码实现 LL f[N], g[N], h[N]; voi ...

  4. 清北学堂寒假集训DAY1

    第一天,上午讲了些基本的技巧和简单算法,主要就是适应这里. 中午跑到食堂吃了顿“饭”(我并没有挖苦233333),然后回宿舍休息休息 因为 迎接我们的是模拟啊啊啊啊啊阿 下午题一发下来,并没有想象中的 ...

  5. 清北学堂学习总结 day2 字符串 练习

    1.hash表(哈希表) codevs 2147 数星星--简单哈希  时间限制: 3 s  空间限制: 64000 KB  题目等级 : 钻石 Diamond 题目描述 Description 小明 ...

  6. 清北学堂算法&&数据结构DAY1——知识整理

    简述: 今天主要讲分治(主要是二分).倍增.贪心.搜索,还乱入了爬山算法和模拟退火(汗...) 一.分(er)治(fen): 二分是个在OI中广泛运用的思想,随便举些例子,就足以发现二分的运用的广泛性 ...

  7. 清明培训 清北学堂 DAY1

    今天是李昊老师的讲授~~ 总结了一下今天的内容: 1.高精度算法 (1)   高精度加法 思路:模拟竖式运算 注意:进位 优化:压位 程序代码: #include<iostream>#in ...

  8. 清北学堂2017NOIP冬令营入学测试P4745 B’s problem(b)

    清北学堂2017NOIP冬令营入学测试 P4745 B's problem(b) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试 描述 题目描 ...

  9. 清北学堂2017NOIP冬令营入学测试 P4744 A’s problem(a)

    清北学堂2017NOIP冬令营入学测试 P4744 A's problem(a) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试题,每三天结算 ...

随机推荐

  1. (十四)Exploring Your Data

    Sample Dataset Now that we’ve gotten a glimpse of the basics, let’s try to work on a more realistic ...

  2. Skyline 7 版本TerraExplorer Pro二次开发快速入门

    年底了,给大家整理了一下Skyline 7版本的二次开发学习初级入门教程,献给那些喜欢学习的年轻朋友. 我这整理的是Web控件版本的开发示例,里面页面代码保存成html,都可以直接运行的. 测试使用的 ...

  3. 获取任意链接文章正文 API 功能简介

    此文章对开放数据接口 API 之「获取任意链接文章正文」进行了功能介绍.使用场景介绍以及调用方法的说明,供用户在使用数据接口时参考之用. 1. 产品功能 接口开放了根据提供的文章链接 Url 参数,智 ...

  4. Messenger更改系统语言以后无法登陆,提示“初始设置被修改”

    在安装messenger机器上使用SQL management studio打开数据库,链接YCD的数据库,找到dbo.Dic_Defaults的表,编辑打开以后找到“CultureInfo”两项,删 ...

  5. Kubernetes一键部署利器:kubeadm

    要真正发挥容器技术的实力,你就不能仅仅局限于对 Linux 容器本身的钻研和使用. 这些知识更适合作为你的技术储备,以便在需要的时候可以帮你更快的定位问题,并解决问题. 而更深入的学习容器技术的关键在 ...

  6. 如何使用Excel表格状态栏动态查看统计

    该文是以前的博文,本文中有一列是快递单号,其实这一列根本不需要,一般快递几天就到,在excel表中存快递单号,纯属浪费时间,快递单号一般都会有客户留存联,而且也登入了网上的表格,所以个人用的excel ...

  7. 爬虫与request模块

    一.爬虫简介 1.介绍 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁. ...

  8. 关于计时器的js函数

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  9. 解决Docker中运行的MySQL中文乱码

    docker exec -it mysql bash 如果没有安装vim,请参考 解决Docker容器中不能用vim编辑文件 vim /etc/mysql/mysql.conf.d/mysql.cnf ...

  10. BSGS算法

    BSGS算法 我是看着\(ppl\)的博客学的,您可以先访问\(ppl\)的博客 Part1 BSGS算法 求解关于\(x\)的方程 \[y^x=z(mod\ p)\] 其中\((y,p)=1\) 做 ...