清北学堂学习总结day1
上午篇
一、高精度计算;
【以下内容先只考虑非负数情况】
•高精度加法:
思路:【模拟竖式运算】
注意:【进位】
•高精度减法:
思路:【同加法类似,模拟竖式运算,进位变退位】
注意: 【结果为负数的情况(一会儿讲到)】
•高精度乘法:
思路:【类似,模拟竖式运算,考虑进位】
注意:【结果为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的更多相关文章
- 清北学堂学习总结 day1 数据结构 练习
1.二叉搜索树 STL set直接做就可以了 2.树状数组+差分数列: codevs 1081 线段树练习 2 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Maste ...
- 清北学堂学习总结day2
今天是钟皓曦大佬讲课,先来膜一波 %%%%% •数论 数论是这次培训的一个重点,那么什么是数论呢? 数论是研究整数性质的东西,所以理论上day2不会涉及小数QwQ (切入正题) •整除性: 设a, ...
- 清北学堂学习总结day3
小学知识总结 上午篇 •积性函数的卷积公式 (1)(f * g)( n ) = ∑(d|n) f( d ) x g ( n / d ) (2)代码实现 LL f[N], g[N], h[N]; voi ...
- 清北学堂寒假集训DAY1
第一天,上午讲了些基本的技巧和简单算法,主要就是适应这里. 中午跑到食堂吃了顿“饭”(我并没有挖苦233333),然后回宿舍休息休息 因为 迎接我们的是模拟啊啊啊啊啊阿 下午题一发下来,并没有想象中的 ...
- 清北学堂学习总结 day2 字符串 练习
1.hash表(哈希表) codevs 2147 数星星--简单哈希 时间限制: 3 s 空间限制: 64000 KB 题目等级 : 钻石 Diamond 题目描述 Description 小明 ...
- 清北学堂算法&&数据结构DAY1——知识整理
简述: 今天主要讲分治(主要是二分).倍增.贪心.搜索,还乱入了爬山算法和模拟退火(汗...) 一.分(er)治(fen): 二分是个在OI中广泛运用的思想,随便举些例子,就足以发现二分的运用的广泛性 ...
- 清明培训 清北学堂 DAY1
今天是李昊老师的讲授~~ 总结了一下今天的内容: 1.高精度算法 (1) 高精度加法 思路:模拟竖式运算 注意:进位 优化:压位 程序代码: #include<iostream>#in ...
- 清北学堂2017NOIP冬令营入学测试P4745 B’s problem(b)
清北学堂2017NOIP冬令营入学测试 P4745 B's problem(b) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试 描述 题目描 ...
- 清北学堂2017NOIP冬令营入学测试 P4744 A’s problem(a)
清北学堂2017NOIP冬令营入学测试 P4744 A's problem(a) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试题,每三天结算 ...
随机推荐
- MongoDB 用MongoTemplate查询指定时间范围的数据
mongoDB大于小于符号对应: > 大于 $gt< 小于 $lt>= 大于等于 $gte<= 小于等于 $lte 要查询同一个时间多个约束可能出现的error: org.sp ...
- SQL语句检索数据排序及过滤
阅读目录 一:排序检索数据 二:过滤数据 三:高级数据过滤 四:用通配符进行过滤 回到顶部 一:排序检索数据 1.1 排序数据 比如查询数据库中表数据的时候,我们使用如下语句: select * fr ...
- C#7.0中的解构功能---Deconstruct
解构元组 C#7.0新增了诸多功能,其中有一项是新元组(ValueTuple),它允许我们可以返回多个值,并且配合解构能更加方便的进行工作,如下面例子 static void Main(string[ ...
- Selenium自动化测试之学会元素定位
这是我经常被问到的一个问题,也是我很讨厌回答的问题,因为要想回答这个问题需要知道上下文.什么样式的元素,有哪些属性,是否有表单嵌套,都尝试了哪些定位方法...而且没几个提问者能事先详细的说明这些.哪儿 ...
- 《jmeter:菜鸟入门到进阶》系列
jmeter是我从事软件测试工作以来接触的第一个性能测试工具,也是耗费时间精力最多的一个工具,当然,学习jmeter过程中,由于知识储备不够,也顺带学习了很多其他相关的一些知识. 一直有个想法,就是把 ...
- 目前在segmentfault写博客
不是打广告.只是由于自己体验之类的关系,转移到segmentfault了,地址 https://segmentfault.com/u/linlinma,欢迎关注和交流
- Abp vNext 切换MySql数据库
Abp vNext是Abp的下一代版本,目前还在经一步完善,代码已经全部重写了,好的东西保留了下来,去除了很多笨重的东西,从官宣来看,Abp vNext主要是为了以后微服务架构而诞生的. 从源码来看, ...
- vue入门之编译项目
好记性不如烂笔头,最近又开始学习vue了,编译的过程中遇到几个小坑,特此一记. 首先说一下vue项目如何编译,其实很简单,cd到项目文件夹,然后执行命令: npm run bulid 不过np ...
- NOIP2015普及组复赛A 推销员
题目链接:https://ac.nowcoder.com/acm/contest/243/A 题目大意: 略 分析: 方法就是把疲劳值从小到大排个序,然后从尾部开始一个一个取,当选到第i(i > ...
- U盘文件被隐藏
转自https://blog.csdn.net/zichen_ziqi/article/details/80171891 文章原地址:http://www.uqidong.com/help/1625. ...