https://zh.wikipedia.org/zh-hans/李亞普諾夫函數 李雅普诺夫函数(Lyapunov function)是用来证明一动力系统或自治微分方程稳定性的函数.其名称来自俄罗斯数学家亚历山大·李亚普诺夫(Александр Михайлович Ляпунов).李亚普诺夫函数在稳定性理论及控制理论中相当重要. 若一函数可能可以证明系统在某平衡点的稳定性,此函数称为李亚普诺夫候选函数(Lyapunov-candidate-function).不过目前还找不到一般性的方式可建…
static修饰的函数作用与意义 static修饰的函数叫做静态函数,静态函数有两种,根据其出现的地方来分类: 如果这个静态函数出现在类里,那么它是一个静态成员函数: 静态成员函数的作用在于:调用这个函数不会访问或者修改任何对象(非static)数据成员. 其实很好理解,类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直接去访问:非静态成员(变量和方法)属于类的对象,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对象(实例)去访问. 如果它不是出…
pro:给定N*M的矩阵,每次操作一个位置,它会增加2,周围4个位置会增加1.给定初始状态,求一种方案,使得最后的数都为0:(%3意义下. sol:(N*M)^3的复杂度的居然过了.          好像标程是M^3的,因为第一排确定了,后面的都确定了.所以我们只要设关于第一排的方程,那么跑下来,第N+1排的都为0,则合法. (此题由于3的特殊性,x关于3的逆元=x:所以不用求逆元 #include<bits/stdc++.h> #define rep(i,a,b) for(int i=a;…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5627 题意:Bestcoder的一道题,让你求&意义下的最大生成树. 解法: 贪心,我们从高位到低位贪心,如果含有这一位的边能够构成一棵树的话,我们就可以直接把其他不含有这一位的边全部去掉 然后重复这个行为 这个贪心显然正确啦,至于判断能否构成一颗树,就用并查集就好啦 //HDU 5627 #include <bits/stdc++.h> using namespace std; cons…
题意:给定p=1e9+7,A,B.  求一对X,Y,满足(X+Y)%P=A; 且(X*Y)%P=B: 思路:即,X^2-BX+CΞ0;  那么X=[B+-sqrt(B^2-4C)]/2: 全部部分都要在modP意义下,所以求一个x满足x^2%p=B^2-4C,这个用二次剩余求即可. 套了模板. #include <bits/stdc++.h> using namespace std; ; typedef long long ll; int k; ll a,p,w; struct T{ll x,…
题目链接 首先利用组合数学知识,枚举两人的总胜场数容易得到 这还不是卷积的形式,直接搞的话复杂度大概是O(n^2)的,肯定会TLE.但似乎和卷积有点像?想半天没想出来..多谢Q巨提醒,才知道可以用下面这个公式进行转化 最后,化得的公式为 另外注意,上式右边是一个卷积的形式,但是,所得和的第一项是不需要加上的(不过图中公式没有体现).结合实际意义大概就是,i==0&&j==0时,gcd(i,j)不存在约数d,虽然0可以被任意正整数整除 & 第一项不为0 #include<bit…
//写在前面 单就FFT算法来说的话,下面只给出个人认为比较重要的推导,详细的介绍可参考 FFT算法学习笔记 令v[n]是长度为2N的实序列,V[k]表示该实序列的2N点DFT.定义两个长度为N的实序列g[n]和h[n]为 g[n]=v[2n], h[n]=v[2n+1], 0<=n<N 则可进行如下推导 这里所用的FFT算法能够实现O(nlogn)复杂度的离散傅里叶变换和上面最后所得的关系密切相关. 下面进入正题——模意义下的FFT 还是需要先了解一下关于 复序列的DFT的对称性质及一些补充…
链接:https://www.nowcoder.com/acm/contest/80/B 题目描述 在文某路学车中学高一新生军训中,Jxc正站在太阳下站着军姿,对于这样的酷热的阳光,Jxc 表示非常不爽. Jxc将天空看做一个n*n的矩阵,此时天上有m朵云,这些云会随机分布在m个不同的位置,同时太阳会随机出现在一个位置,Jxc想知道他被太阳晒到的概率是多少,由于他仍在站军姿,所以这个有趣的问题就交给了你.考虑到精度问题,Jxc只需要知道这个概率在对998244353取模意义下的值. Tips:一…
以单下划线(_)表明是标准库的变量 双下划线(__) 开头表明是编译器的变量 建议自己在命名的时候不要用下划线开头,避免与标准库中的命名冲突 命名方法有好多,何必为自己找不自在呢.…
很久以前看到一篇文章,讲某个大网站储存用户口令时,会经过十分复杂的处理.怎么个复杂记不得了,大概就是先 Hash,结果加上一些特殊字符再 Hash,结果再加上些字符.再倒序.再怎么怎么的.再 Hash...看的眼花缭乱. 当时心想这么复杂应该很安全了吧.事实上即使现在,仍有不少人是这么认为的.所以在储存账号口令时,经常会弄些千奇百怪的组合. 奇怪的算法有意义吗,在什么情况下能派上用场?是否有更简单合理的替代方案? 这问题先从拖库说起. 知道算法才能破解 数据库中的口令,都是以 Hash 形式储存…