Komorebi
首页
文章
标签
关于
友链
51nod 1134 最长递增子序列
用了O(n^2)的方法会超时…所以学习了另一种O(nlogn)的方法: 纯说一些东西有点抽象,所以还是举个栗子: 定义d[k]:长度为k的上升子序列的最末元素,若有多个长度为k的上升子序列,则记录最小的那个最末元素。 举例:原序列为1,5,8,3,6,7 栈为1,5,8,此时读到3,用3替换5,得到1,3,8; 再读6,用6替换8,得到1,3,6;再读7,得到最终栈为1,3,6,7。最长递增子序列
2018-01-26
题解
状态压缩dp
状压dp也是以前的坑了…填坑ing… 在状压dp中位运算的常见应用1.判断一个数字x二进制下第i位是不是等于1。 方法:x&(1<<(i-1)) 将1左移i-1位,相当于制造了一个只有第i位上是1,其他位上都是0的二进制数。然后与x做与运算,如果结果>0,说明x第i位上是1,反之则是0。 2.将一个数字x二进制下第i位更改成1。 方法:x=x|(1<<(i-1
2018-01-26
题解
快速取幂法&&矩阵快速幂
快速幂 写成函数: long long PowerMod(long long a,long long b,long long c) { long long ans=1; long long k; k=a; k=k%c; while(b>0) { if(b&1) ans=(ans*k)
2018-01-25
学习
51nod 1079 中国剩余定理
题意:一个正整数K,给出K Mod 一些质数的结果,求符合条件的最小的K。 思路:参考博客:http://www.cnblogs.com/linyujun/p/5199415.html 举个栗子,K%3=2,K%5=3,K%7=2。 我们需要构造这个答案 5×7×inv(5×7,3) % 3 = 1 3×7×inv(3×7,5) % 5 = 1 3×5×inv(3×5,7) % 7 =
2018-01-25
题解
51nod 1073 约瑟夫环
假设现在是6个人(编号从0到5)报数,报到(2-1)的退出,即。那么第一次编号为1的人退出圈子,从他之后的人开始算起,序列变为2,3,4,5,0,即问题变成了这5个人报数的问题,将序号做一下转换:
2018-01-25
题解
51nod 1384 全排列
这道题跟之前写的dfs不同的一点是可以有重复的字母,想了一下dfs改不了,所以只能利用set容器了,set容器有唯一性,而且已经从小到大排列好了,还不用sort了。
2018-01-25
题解
51nod 1058 1130 N的阶乘的长度及斯特林近似
1058**(1<=n<=10^6):** n!的长度等于log10(n!) int main() { int n,i; double sum=1; scanf("%d",&n); for(i=1;i<=n;i++) sum=sum+log10(i); printf("%d\n",(int)sum); retur
2018-01-25
题解
vector用法
1>. a.size() //获取向量中的元素个数 2>. a.empty() //判断向量是否为空 3>. a.clear() //清空向量中的元素 4>. 复制 a = b ; //将b向量复制到a向量中
2018-01-25
学习
组合数学
错排公式对于D[n]都有D[n]=(n-1)*(D[n-1]+D[n-2])【特殊的,D[0]=1,D[1]=0,D[2]=1】。 D[n]=n!*(\frac{1}{2!}-\frac{1}{3!}+\frac{1}{4!}- \frac{1}{5!}+ ··· ··· +\frac{(-1)^{n-1}}{(n-1)!}+\frac{(-1)^n}{n!})。 下面拓展一下i个人有j个人是正确
2018-01-25
学习
尺取法
举个栗子看张图就可以懂了www 给定长度为n的数列整数a0,a1,a2,a3 ….. an-1以及整数S。求出综合不小于S的连续子序列的长度的最小值。如果解不存在,则输出0。(10<n<10^5,0<ai<10^4,S<10^8)
2018-01-25
学习
1
…
18
19
20
21
22
23
Search
×
keyword