进阶
king9666
这个作者很懒,什么都没留下…
展开
-
模运算的应用
根据威尔逊定理,可得如果p是素数,那么就能找到这样的m值可使得 (p-1)! = (p-1) + mp或者可以说成 (p-1)! = (p-1) mod p举个例子6! = 1 * 2 * 3 * 4 * 5 * 6原式 = 1 * (2 * 4) * (3 * 5) * 6原式 = (1 * 1 * 1* 6) mod 7原式 = 6 mod 7PS: 也可以用模乘验证费马小定理....原创 2020-08-25 10:30:25 · 256 阅读 · 1 评论 -
Game 牛客算法周赛 博弈
Nancy喜欢博弈!Johnson和Nancy得到了一个神奇的多重集合,仅包含一个正整数n,两个人轮流进行操作。一次操作可以将集合中一个数字分解为它的任意两个非1的因数,并加入集合中。他们想知道,在Johnson和Nancy绝顶聪明的情况下,如果Nancy先手进行操作,最后谁没有办法继续操作了呢?输入描述:第一行:一个整数n。数据满足:1≤n≤95718输出描述:共一行:一个字符串,表示最后谁(Johnson或者Nancy)无法进行操作。示例1输入4输出Johnson思路:把n分原创 2020-05-18 10:09:26 · 389 阅读 · 1 评论 -
牛客算法周赛B华华对月月的忠诚(贝祖定理裸题)
传送门#include<iostream>#include<algorithm> using namespace std;char N[100005];int main(){ long long int A,B; cin>>A>>B; cin>>N; cout<<__gcd(A,B)<<endl; return 0;}原创 2020-05-18 10:06:53 · 174 阅读 · 0 评论 -
牛客算法周赛 青蛙过河(A) 递推思维题
传送门n片荷叶,k个石墩若k=0,那么在每片荷叶上放一只青蛙,最后从岸上直接跳到对面一只青蛙,可以有 n+1 只青蛙过岸若k=1,那么我们可以在这个石墩上叠n+1只青蛙,然后就又变为k=0的情况然后,每多一个石墩就可以利用原来的k−1个石墩把它们的青蛙全部放到这上面来,这样就增加了一倍的青蛙可以过岸PS: 每多一个垫脚石 答案乘个2。#include<stdio.h>int main(){ int n, m; scanf("%d",&n); sca原创 2020-05-18 09:48:11 · 626 阅读 · 0 评论 -
free删除new存在什么问题
其实本来free/ malloc new /delete是两个不同的东西.错用的话可能出现一些显式的或者隐式的错误经过自己的实验操作后发现简单数据类型在使用new分配内存后,用free来释放的内存,效果与delete相同。而复杂数据类型( 比如说一个类指针),则不能用free来进行内存的释放可能是因为free与delete不同,不会执行类的析构函数吧…...原创 2020-05-10 22:22:18 · 281 阅读 · 0 评论 -
DNS原理及其解析过程
为什么需要DNS解析域名为IP地址?网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,所以计算机在网络上进行通讯时只能识别IP地址,而不能认识域名。我们无法记住10个以上IP地址的网站,所以我们访问网站时,更多的是在浏览器地址栏中输入域名,就能看到所需要的页面,这是因为有一个“DNS服务器”的计算机自动把我们的域名“翻译”成了相应的IP地址,然后调出IP地址所对应的网页。DNS是什么?DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的原创 2020-05-09 16:25:43 · 2099 阅读 · 0 评论 -
HTTPS的加密过程
HTTPS的加密过程https证书加密的第一步是认证服务器。一些主流浏览器会内置一个受信任的CA机构列表,并会保存相关CA机构的https证书。当用户在访问部署了https证书的网站时,服务器会提供经CA机构颁发的https证书,如果认证该服务器证书的CA机构是存在于浏览器的受信任CA机构列表当中,并且该https证书中的所有信息均与当前证在访问的网站所有信息一致,那么浏览器就会认为服务端是可信的,并从https证书中取得公钥(也就是CSR文件),用于后面的流程。https证书加密的第二步是协商会话秘原创 2020-05-08 21:39:32 · 293 阅读 · 0 评论 -
堆和栈的区别
//main.cppint a = 0; //全局初始化区int a = 0; //全局初始化区char *p1; //全局未初始化区main() { int b; //栈 char s[] = "abc"; //栈 char *p2; //栈 char *p3 = "123456"; //123456\0在常量区,p3在栈上。 static int c = 0; //全局(静态)初始化区 p1 = (char *)malloc(10); p2原创 2020-05-08 21:34:24 · 121 阅读 · 0 评论 -
JVM内存结构
JVM内存的划分有五部分分别是:寄存器本地方法区方法区栈内存堆内存原创 2020-05-08 21:29:04 · 104 阅读 · 0 评论 -
static关键字的用法
static关键字之面向对象static关键字在面向对象中的妙用静态数据成员在类内数据成员的声明前加上static关键字,该数据成员就是类内的静态数据成员。其特点如下:静态数据成员存储在全局数据区,静态数据成员在定义时分配存储空间,所以不能在类声明中定义静态数据成员是类的成员,无论定义了多少个类的对象,静态数据成员的拷贝只有一个,且对该类的所有对象可见。也就是说任一对象都可以对静态数据成员进行操作。而对于非静态数据成员,每个对象都有自己的一份拷贝。由于上面的原因,静态数据成员不属于任何对象,在没原创 2020-05-08 21:24:31 · 184 阅读 · 0 评论 -
C语言中的static关键字的用法
static用法:主要定义全局静态变量,局部静态变量和静态函数作用:在某些情况下能够大大提高程序的模块化特性,有利于扩展和维护,增强程序的健壮性.总结空间分配时也与普通的变量有所不同普通局部变量存储于进程栈空间,使用完毕会立即释放.变量在全局数据区分配内存空间;编译器自动对其初始化.其作用域为局部作用域,当定义它的函数结束时,其作用域随之结束静态局部变量使用static修饰符定义,即使在声明时未赋初值,编译器也会把它初始化为0。且静态局部变量存储于进程的全局数据区,即使函数返回,它的值也原创 2020-05-08 21:21:02 · 152 阅读 · 0 评论 -
计算机网络传输层复习要点
传输层:TCP 和 UDP三次握手(three-way handshake)第一次握手: Client将SYN置1,随机产生一个初始的序列号seq发送给Server,进入SYN_SENT状态第二次握手: 收到SYN为1之后,知道客户端请求建立连接,将自己的SYN置为1,ACK置为1,产生一个acknowledge number = sequence number + 1,并随机产生一个自己的...原创 2020-02-28 11:45:55 · 212 阅读 · 0 评论 -
三角形外心公式
垂直平分线X, Y为外心坐标A1,A2 等为各自的顶点坐标原创 2020-02-15 22:05:41 · 2348 阅读 · 0 评论 -
Comet OJ - 模拟赛 #2 A
传送门样例输入 15 31 2 3 4 52 1 51 5 22 1 5样例输出 11519#include<bits/stdc++.h>#define maxn 100005#define LL long long#define S 300using namespace std;int n,q;int pr[maxn],vis[maxn],cnt_p...原创 2020-02-08 20:44:52 · 146 阅读 · 0 评论 -
重心拉格朗日插值法 (板子)
拉格朗日的作用就是给你 n+1 个点,让你构造出一个 n 次函数,使得这个函数的图像经过坐标轴上的 n+1 个点。重心拉格朗日插值法优化到O(n)O(n*n)#include<iostream>#include<cstdio>#define ll long longusing namespace std;const int M=2111;const ll...原创 2020-02-05 19:23:19 · 1838 阅读 · 0 评论 -
拉格朗日插值法
拉格朗日插值公式指的是在节点上给出节点基函数,然后做基函数的线性组合,组合系数为节点函数值的一种插值多项式。线性插值也叫两点插值,已知函数y = f (x)在给定互异点x0, x1上的值为y0= f (x0),y1=f (x1)线性插值就是构造一个一次多项式:P1(x) = ax + b,使它满足条件:P1 (x0) = y0, P1 (x1) = y1其几何解释就是一条直线,通过已知点A ...原创 2020-02-05 19:16:30 · 1550 阅读 · 0 评论 -
深入理解拉格朗日插值法
https://www.cnblogs.com/zwfymqz/p/10063039.html原创 2020-02-05 19:09:42 · 241 阅读 · 0 评论 -
ICPC_Number Game(博弈)
Number Gamedescription:Alice and Bob are playing a game on a line of N squares. The line is initially populated with one of each of the numbers from 1 to N. Alice and Bob take turns removing a singl...原创 2020-02-04 20:49:58 · 278 阅读 · 0 评论 -
莫比乌斯反演证明
我还不会证…后补原创 2020-02-02 22:42:09 · 152 阅读 · 2 评论 -
HDU1695 (莫比乌斯反演)
莫比乌斯反演用于解决排列组合问题的数论知识.应用例子: HDU1695后补原创 2020-02-02 22:40:49 · 114 阅读 · 0 评论 -
POJ 3904 入门莫比乌斯反演
POJ 3904入门莫比乌斯反演(数论)原创 2020-02-02 22:35:30 · 140 阅读 · 0 评论 -
LJJ爱数数(莫比乌斯反演)
传送门题意:给定n,求满足1/a+1/b=1/c,求a,b,c互质的三元组(a,b,c)数目。(a,b,c≤n)n≤10的12次方.后补原创 2020-02-02 21:19:38 · 167 阅读 · 0 评论 -
A. Berstagram icpc(用数组模拟)
A. Berstagramtime limit per test3 secondsmemory limit per test512 megabytesinputstandard inputoutputstandard outputPolycarp recently signed up to a new social network Berstagram. He immediate...原创 2020-02-01 21:05:16 · 321 阅读 · 0 评论 -
Codeforces Round #614 (Div. 2) B.JOE is on TV! (高精度)
B. JOE is on TV!#include<iostream>#include<cstdio>using namespace std;#define N 100005int n;double f[N];int main(){ scanf("%d",&n); int i; double ans=0.0; for(i=1;i<=n;i+...原创 2020-01-21 10:07:02 · 163 阅读 · 0 评论 -
pb_ds库的用法
pb_ds (平板电视???)pb_ds 是GNU-C++自带的一个C++的扩展库,其中实现了很多数据结构,比STL里面的功能更强大(Ex.#include <ext/pb_ds/assoc_container.hpp>)哈希表头文件#include<ext/pb_ds/assoc_container.hpp>#include<ext/pb_ds/hash...原创 2020-01-16 21:42:22 · 877 阅读 · 0 评论 -
Educational Codeforces Round 80 (Rated for Div. 2) E. Messenger Simulator
E. Messenger Simulator传送门#include <bits/stdc++.h>#include <ext/pb_ds/assoc_container.hpp> using namespace std;using namespace __gnu_pbds; template<class T> using ordered_set ...原创 2020-01-16 21:17:37 · 208 阅读 · 0 评论 -
C++中Template的用法
模板(Template)指C++程序设计设计语言中采用类型作为参数的程序设计,支持通用程序设计。C++ 的标准库提供许多有用的函数大多结合了模板的观念,如STL以及IO Stream。函数模板函数模板定义一族函数。//template1.cpp #include <iostream>template<typename T> void swap(T &a,...原创 2020-01-16 20:39:11 · 1934 阅读 · 0 评论 -
浅谈威尔逊定理
威尔逊定理定义在初等数论中,威尔逊定理给出了判定一个自然数是否为素数的充分必要条件。即:当且仅当p为素数时:( p -1 )! ≡ -1 ( mod p ),但是由于阶乘是呈爆炸增长的,其结论对于实际操作意义不大,但借助计算机的运算能力有广泛的应用,也可以辅助数学推导。证明威尔逊定理充分性如果“p”不是素数,当p=4时,显然(p-1)!≡6≡2(mod p), 当p>4时,若p不是完...原创 2020-01-16 20:17:40 · 878 阅读 · 0 评论 -
乘法逆元的三种思想(后补)
????????????????????费马小定理欧拉定理阶乘逆元ll j[maxn];ll in[maxn];void pre_solve(int n,ll p){ jc[0]=1; for(int i=1;i<=n;i++) j[i]=(j[i-1]*i)%p; in[n]=qpow(j[n],p-2,p); // 快速幂 for(int i=n-1;i...原创 2020-01-15 23:08:55 · 103 阅读 · 0 评论 -
Lucas定理和扩展
Lucas定理是用来求 c(n,m) mod p,p为素数的值。它是用来求组合数 C(n, m) % p 值的定理,这里的p是素数。所以,它是一个解决大组合数求模的算法。卢卡斯定理适用于模数 ???? 为质数的情况首先我们知道组合数的计算公式????????????=????!/????!(????−????)!所以我们可以先递推出阶乘再用快速幂或 ???????????????????? 计算逆元也可以直接递推阶乘逆元然后就可以计算 ????了ll qpow(l...原创 2020-01-15 23:03:35 · 185 阅读 · 0 评论 -
J Programming Tutors
J Programming TutorsYou are the founder of the Bruce Arden Programming Collective, which is a tutoring programme that matches experienced programmers with newbies to teach them. You have N students a...原创 2020-01-10 20:25:24 · 235 阅读 · 1 评论 -
矩阵求导、几种重要的矩阵及常用的矩阵求导公式
https://blog.csdn.net/daaikuaichuan/article/details/80620518转载 2019-11-11 10:51:43 · 243 阅读 · 0 评论 -
D1. The World Is Just a Programming Task (Easy Version) (字符串匹配)
http://codeforces.com/contest/1248/problem/D1#include<bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<int, int>pi;ll beauty(string &s){ int n = s.size(); ...原创 2019-10-24 17:22:41 · 284 阅读 · 0 评论 -
C. Ivan the Fool and the Probability Theory (思维题)
http://codeforces.com/contest/1248/problem/C#include<bits/stdc++.h>using namespace std;const int INF = 0x3f3f3f;int MOD = 1e9 + 7;const int N = 100005;int add(int a, int b){ if(a + ...原创 2019-10-24 17:21:17 · 211 阅读 · 0 评论 -
A. Integer Points codeforces #594(Div.2)
http://codeforces.com/contest/1248/problem/A注意开大数#include<bits/stdc++.h>using namespace std;typedef long long ll;int main(){ ios::sync_with_stdio(false); ll t; for(cin >>...原创 2019-10-24 16:51:31 · 150 阅读 · 1 评论 -
哲学家算法c++线程实现
哲学家算法c++线程实现调用了很多STL函数标记了注释具体实现了五个哲学家就餐的问题 当然 人数可以根据需求改变#include <windows.h>#include <process.h>#include "iostream"using namespace std;const unsigned int N= 5; //number of ph...原创 2019-10-21 11:33:14 · 633 阅读 · 0 评论 -
SDUT校赛补题 沉心十年(打印图形)
Time Limit: 1000 ms Memory Limit: 65536 KiBProblem Description今年是SDUTACM举办的第十一届校赛啦!今年校赛的参赛规模也是再创新高!在今天的赛场上与大家同台竞技的,还有50多个来自中小学的小朋友。十年风雨,我们曾经一起走过。现在让我们脚踏实地,一起奋斗下一个十年!现在请你使用’SDUTACM’这一个字符串,打印出只属于今天...原创 2019-05-30 20:19:38 · 138 阅读 · 0 评论 -
Codeforce div3 C. Letters(二分查找 前缀求和)
C. LettersThere are nn dormitories in Berland State University, they are numbered with integers from 11 to nn. Each dormitory consists of rooms, there are aiai rooms in ii-th dormitory. The rooms in ...原创 2019-06-12 20:53:18 · 341 阅读 · 0 评论 -
二分查找的两个便捷的函数
头文件都是二分函数,头文件upper_bound返回第一个大于的元素的下标;lower_bound返回第一个大于等于元素的下标;example#include <iostream>#include <algorithm> // 必须包含的头文件using namespace std;int main(){ int point[10] = {1,3,...原创 2019-06-12 21:05:57 · 134 阅读 · 0 评论 -
Codefoces 566 div2 B. Plus from Picture(模拟)
B. Plus from Picturetime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou have a given picture with size原创 2019-06-13 00:30:45 · 326 阅读 · 0 评论