- 博客(8)
- 收藏
- 关注
原创 HDU 4192(中缀表达式转后缀表达式)
参考:点击打开链接一、把中缀表达式转换为后缀表达式算法的基本思路是从头到尾地扫描中缀表达式中的每个字符,对于不同类型的字符按不情况进行处理。1、先定义一个工作数组,用来存储转换之后的后缀表达式,定义一个栈,用来存储运算符。(越往栈顶优先级越高的原则)可以先定义一个‘#’优先级为0存入栈底2、扫描:若遇到的是操作数,直接存入工作数组中,若遇到运算符,将该运算符与栈顶元素比较,若该
2016-04-23 18:59:23 805
原创 POJ3070(矩阵快速幂模板)
#include #include #include #include using namespace std;const int maxn = 3;const int mod = 10000;typedef long long LL;struct node { int a[maxn][maxn]; node() { memset(a, 0, sizeof(a));
2016-04-14 15:46:43 435
原创 hdu 2665 Kth number(划分树模板)
跟线段树类似的,对于每一层的中间位置的数 把比他小的放左边,比他大的放右边#include #include #include #include #include using namespace std;const int maxn = 100000 + 7;int s[maxn];int tree[25][maxn];int toleft[25][maxn];int T,
2016-04-12 15:04:40 343
原创 LCA最近公共祖先问题(Tarjan离线算法)
参考:点击打开链接觉得链接处的代码有的地方好像有问题,然后自己改了改拿了过来。。问题描述:给定一个有根树,n个节点和n-1条边 以及q个查询 查询两个点的LCA 要求按输入顺序输出q个查询的答案。#include #include #include #include #include #include using namespace std;const int
2016-04-30 18:08:03 380
原创 POJ 1236(tarjan+缩点)
把所有强连通分量各缩成一个点,重新建图,ans1 = 入度为0的点的个数 ans2 = max(入度为零的点的个数,出度为0的点的个数)#include #include #include #include #include #include using namespace std;const int maxn = 100 + 7;int n, k = 0, newk = 0;
2016-04-14 17:53:54 327
原创 hdu 1402 A * B Problem Plus(快速傅里叶变换模板)
快速傅里叶变换在这里的主要用处就是可以快速求出两个多项式的乘积,可以把两个大数转换成a1 + a2*x + a3*x^2......的形式,利用FFT快速求值。#include #include #include #include #include using namespace std;const int maxn = 200000 + 7;const double PI =
2016-04-14 13:27:12 420
原创 HDU 4081 次小生成树模板题
先求最小生成树,然后对于最小生成树这个图中的所有点对,求出任意两点之间的所有路径上的最大边,注意是对于构造出来的最小生成树这个图来说。然后枚举删每一条边,求最优解。#include #include #include #include #include #include #include using namespace std;const int maxn = 10
2016-04-08 21:18:37 421
原创 POJ 3164(最小树形图模板题)
参考地址:点击打开链接最小树形图是从一个源点出发,选取一些边,使得能够从源点可以到达其他所有点,并且权和最小,即有向图的最小生成树。算法步骤:1.判断图的连通性,若不连通直接无解,否则一定有解。2.为除了根节点以外的所有点选择一个权值最小的入边,假设用pre数组记录前驱,f数组记录选择的边长,记所选边权和为temp。3.(可利用并查集)判断选择的的边是否构成环,
2016-04-08 21:10:44 379
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人