杂七杂八的算法
BRCOCOLI
初学者 记录成长 Fighting
展开
-
中缀表达式转后缀并计算值
数字只能(0~9)运算符 加减乘除还有括号#include#include#include#include#include#include#includeusing namespace std;#define maxn 100void ToLast(string s,char* ans);double Value(char* ans);int main(){ str原创 2016-04-09 21:36:31 · 314 阅读 · 0 评论 -
关于阶乘的题目
poj 1423 Stirling公式,求阶乘的位数poj 1401 判断阶乘末尾0的个数poj 1604 求阶乘的最末非零位原创 2017-01-03 14:19:38 · 980 阅读 · 0 评论 -
暴力的优化方法总结
暴力就是所有解都试一下,找出最优解1.贪心一些显而易见的不可能的解事先排除数组排序啊。事先处理一些数据什么的2.枚举的顺序(定一个量,枚举另一个)一开始枚举不同的量的时间复杂度可能不一样UVa 10125 Sumsets 枚举4个数,变为枚举2个数UVa 10391 Compound Words 枚举两个单词拼成一个,不如枚举一个单词拆成两个原创 2016-11-13 15:40:05 · 883 阅读 · 0 评论 -
Floyd判圈算法(判断是否有环)
转载自:http://blog.csdn.net/thestoryofsnow/article/details/6822576用于判断是否存在环,求解环的起点,求解环的周长时间复杂度:O(n)算法原理:龟兔解法的基本思想可以用我们跑步的例子来解释,如果两个人同时出发,如果赛道有环,那么快的一方总能追上慢的一方。进一步想,追上时快的一方肯定比慢的一方多跑了几圈,即多跑的路的长度是原创 2016-10-15 08:47:38 · 2452 阅读 · 0 评论 -
输入输出外挂
输出int#include using namespace std;#define REP(i,a,b) for(int i=a;i<=(b);++i)#define REPD(i,a,b) for(int i=a;i>=(b);--i)int inline readInt(){ char ch; do{ch=getchar();}while(!isdigit(ch)); in原创 2016-10-14 21:13:38 · 191 阅读 · 0 评论 -
中国剩余定理一般情况
给定正整数n1,n2,...,nk(未必两两互质),要求找到x,满足x≡ai(mod ni) (i=1,2...k)x ≡ a1( mod n1)x ≡ a2( mod n2) ...........即n1,....nk之间不一定互质那便是解k个线性方程,如下x + u*n1 = a1 x - v*n2 = a2.............原创 2016-08-12 16:31:08 · 876 阅读 · 0 评论 -
矩阵的相关算法总结
题目地址:http://poj.org/problem?id=3233以下摘自百度百科矩阵加法:矩阵+常数:由于矩阵是一堆数,常数就一个,所以要把常数变为单位矩阵再相加单位矩阵用E表示:除了第i行第i列是1外,其他都是0所以矩阵+2,+1,就是+1E,+2E (2E就是E*2,即除了第i行第i列是2外,其他都是0)常数变完后就是正常的两个矩阵相加了,然后按上述原创 2016-08-05 23:45:49 · 3780 阅读 · 0 评论 -
线性筛法求素数
#include#include#include#includeusing namespace std;bool isPrime[100000+5];int main(){ int n; cin>>n; memset(isPrime,true,sizeof(isPrime)); for(int i=2;i<=(int)sqrt(n);i++) if(isPrime[i])原创 2016-08-12 11:57:07 · 219 阅读 · 0 评论 -
STL容器之删除元素,迭代器失效
转自博客:http://blog.csdn.net/panpanloveruth/article/details/7018549一. 种类:标准STL序列容器:vector、string、deque和list。标准STL关联容器:set、multiset、map和multimap。非标准序列容器slist和rope。slist是一个单向链表,rope本质上是一个重型字符串非标准关联容器转载 2016-08-31 22:33:36 · 1967 阅读 · 0 评论 -
中国剩余定理
含义:给定两两互质的正整数n1,n2,...,nk,要求找到最小的正整数x,满足方程组x≡ai(mod ni) (i=1,2...k)求法:– 令n=n1,n2,...,nk, mi = n/ni– 显然gcd(mi,ni)=1,利用扩展欧几里德算法计算出xi满足mi*xi≡1(mod ni)– x = (a1*x1*m1+a2*x2*m2+...+ak*xk*mk原创 2016-08-07 16:19:44 · 277 阅读 · 0 评论 -
快速幂算法
原理:a^b可以分为以下几种情况若b是偶数,a^b=a^(b/2) * a^(b/2)若b是奇数,a^b=a^(b/2) * a^(b/2) * a;这样就可以用递归了代码如下int pow_mod(int a,int n,int m) //a^n 结果对m取模 { if(n==0) return 1; int x= pow_mod(a,n/2,m); long l原创 2016-08-04 17:36:07 · 315 阅读 · 0 评论 -
PKU ACM/ICPC暑假训练班总结
1 Day:动态规划动态规划考虑三点:状态定义,如何决策,边界条件该状态选取是否可行:是否是最优子结构,是否有“无后效性” (此状态后的状态递推与如何达成此状态无关)如该状态无法递推或有漏解:加一维状态细化问题分类,即使状态更复杂遇到空间时间不足:滚动数组,状态空间压缩(集合表示等)两种实现方式:递归(+记忆化) ,递推两种思想方式:人人为我型(即由已知推未知) ,我为人人原创 2016-07-21 22:48:42 · 637 阅读 · 0 评论 -
最短路径算法汇总
Dijkstrad[0]=0;d[1~n]=INF; 1选最小的d[i];2从i点出发所有边 松弛d[j] 伪代码:for(1~n){所有未标记的点选出d最小的点x;标记x点走过;i点出发所有边 更新d[y]=min(d[y],d[x]+w[x][y]); // 属于E; } 1)简易版:O(n*n) 对边编号:u[i],v[i] 表示第i边连通哪两原创 2016-05-17 13:43:27 · 712 阅读 · 0 评论 -
A*,Dijkstra,BFS算法性能比较及A*算法的应用
一之续、A*,Dijkstra,双向BFS算法性能比较及A*算法的应用作者:July 二零一一年三月十日。出处:http://blog.csdn.net/v_JULY_v-------------------------------------------------- 引言: 最短路径的各路算法A*算法、Dijkstra 算法、BFS算法,都已在本B转载 2016-05-16 19:21:32 · 23619 阅读 · 3 评论 -
各种排序方法汇总
#include#includetypedef int ElementType;void Swap(int &a,int &b) {int n;n=a,a=b,b=n;}//--简单排序-- //冒泡排序void Bubble_Sort(ElementType A[],int N){ int flag; for(int P=N-1;P>=0;P--) { flag=0;原创 2016-05-10 19:30:04 · 848 阅读 · 0 评论 -
达成成就
杭电46道DP牛人总结 —— 2016/10/4原创 2016-10-04 21:50:09 · 321 阅读 · 0 评论