自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (1)
  • 收藏
  • 关注

原创 poj3311 TSP问题 状压DP

题意:从0走遍1~n最后再返回到0,一个点可以走多次,求经过的最短距离。分析:由于一个点可以走多次,所以需要求出任意两点间的最短距离,就要用到floyd算法,同时接下来可以搜索做复杂度是O(n!),而状态压缩的时间效率就高了,关于DP自己有时候状态转移方程知道了,却不知道如何去实现,循环时哪层放在外面,哪层放在里面,所以很容易把DP写成了暴力的搜索,自己要多想想。状态转移方程:dp[S][

2015-08-30 16:33:54 524

原创 poj4549 费马小定理+矩阵快速幂取余

题意:M斐波那契数列F[n]是一种整数数列,它的定义如下:F[0] = aF[1] = bF[n] = F[n-1] * F[n-2] ( n > 1 )现在给出a, b, n,( 0 你能求出F[n]的值吗?只需输出F[n]对1000000007取模后的值即可。分析:很容易推出F[n] = a^(f[n-1])*b^f[n](f[n]为 斐波那契数列)然而F[

2015-08-29 10:23:52 734

原创 poj2226 二分图匹配

题意:给一张图“*”表示可以放木板“.”表示不可以放木板,木板1米宽,可以是可以是任意长度。分析:如果不是二分专题上的题自己很难想到用二分来做,然而知道之后建图有很困难,对于这道题就是把每一行对应每一列,只要两者交点上是“*”,就把它们连起来,就可以建立起一张图 ,就变成求最小点覆盖的问题,就是求最大匹配。#include #include #include #include

2015-08-29 07:39:43 419

原创 poj1305毕达哥拉斯三元组

Language:DefaultFermat vs. PythagorasTime Limit: 2000MS Memory Limit: 10000KTotal Submissions: 1431 Accepted: 834DescriptionComputer generated and assisted

2015-08-28 10:46:41 507

原创 poj2689素数

Language:DefaultPrime DistanceTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 14463 Accepted: 3840DescriptionThe branch of mathematics called numb

2015-08-27 15:34:35 361

原创 POJ3461(KMP模板题)

不多说先粘代码#include #include #include using namespace std;const int maxn = 1000000+5;char text[maxn];char pat[10000 + 5];int nex[10005];int cnt;void Build(){ int len = strlen(pat); i

2015-08-26 23:16:13 427

原创 poj4474 枚举

题意:给一个数求该数的最小倍数的数且不含限定的数字,刚开始是不知道如果找不到的话限定到该数的多少倍 ,然后我就直接枚举到100倍TLE了,改成10倍又WA了。五个小时训练过去后还是没有做出来,看题解才知道枚举时直接判断是否该数的模被枚举过了就可以了, 虽然有点不太理解是为什么,再好好想想吧。#include #include #include #include #inclu

2015-08-26 21:51:56 393

原创 hdu4280 Island Transport 最大流模板Dinic算法

题意: 求从最左边的岛到最右边的岛的最大容量这道题还学会了手动开栈#include#include#include#include#include#include#pragma comment(linker, "/STACK:1024000000,1024000000")//外挂开栈using namespace std;const int maxn = 10000

2015-08-24 10:15:18 397

原创 poj1273 最大流模板 Edmond_karp算法

Edmond_karp算法:#include#include#include#include#include#includeusing namespace std;const int maxn = 200 + 5;const int inf = 0x7f7f7f7f;int pre[maxn], c[maxn][maxn], flow[maxn];int ans;

2015-08-23 16:47:27 346

原创 poj185 炮兵阵地 状压DP

题目链接:http://poj.org/problem?id=1185题意:在一个N*M的矩阵上最多能放多少门大炮,大炮只能放在平原上,且保证任何两支炮兵部队之间不能互相攻击,即任何一支炮兵部队都不在其他支炮兵部队的攻击范围内(横向纵向两个格子)。思路:1、这是经典的状态压缩题,由于当前第i行的状态不仅和第i-1行有关,还和第i-2行有关,所以要开一个三维的数组同时记录当前行和上一行的

2015-08-22 21:53:13 337

原创 poj3254 Corn Fields 状压DP入门

#include#include#include#include#include#includeusing namespace std;const int maxn = (1<<13) + 5;const int INF = 0x7f7f7f7f;const int mode = 100000000;int a[maxn], b[maxn];long long f[12][

2015-08-21 22:38:48 348

原创 Zoj3201 Tree of Tree 树形DP

题目大意:从一棵树上选取k个节点的子树使节点权值之和最大思路: 想到是树形DP了但是一直推不出来状态状态转移方程,首先是自己状态如何表示都没想好刚开始时用状态f[u][k][0]和f[u][k][1]表示以节点u父亲节点选k个节点0表示不选u,1表示选u,如果选u的话u的儿子至少要选一个,不选的话儿子可选可不选,然后想想这样下边计算时就会越来越乱~~~然后看了别人的思路:f[u][

2015-08-21 19:05:11 567

原创 poj1797 最短路变形

题目大意:求第1个点到第n个点的路径中所有的边所能承受最小重力的最大值思路: 刚开始一想没有思路然后想到用Floyd不断更新到每个点的最大值得最小值,TLE一发后想到这样做可能是错的,不仅仅是时间复杂度太高,更新过程中还要记录所有边的最小值,所以就想到了Dijkstra算法,不断更新距离已知集合的最大值不断把最大值得点加进去,中间记录答案网上见有的人说最大生成树,确实有道理,prim算法和

2015-08-21 11:16:08 568

原创 poj2082 连续矩形最大面积

Poj2082求连续区域矩形最大面积(堆栈)1 遇到比栈顶高度高或等于的矩形就进栈2如果比栈顶高度低就让栈里比curh高的出栈。同时进行数据处理,刚开始时toweight = 0,cursize = 0,每出一个矩形就加上所出矩形的宽度,更新最大值;然后toweight + curw,curh的矩形进栈;3最后栈中就是高度不下降矩形,如2 中的处理,不断更新最大值。 #in

2015-08-20 11:59:29 624

原创 Catalan数 大数运算&&普通运算

卡特兰数又称卡塔兰数,英文名Catalan number,是组合数学中一个常出现在各种计数问题中出现的数列。由以比利时的数学家欧仁•查理•卡塔兰 (1814–1894)命名 原理 令h(0)=1,h(1)=1,catalan数满足递推式[1] : h(n)= h(0)*h(n-1)+h(1)*h(n-2) + … + h(n-1)h(0) (n>=2) 例如:h(2)=h(0)*h(1)+

2015-08-20 11:10:43 373

原创 poj2761&&poj2104 主席树(静态区间第K大)

搞了两天参考大牛的博客终于写除了自己的主席树但是一直挖,在离散化时关于是否有相同的数,如果不考虑的话就莫名其妙的ac了,考虑的话就一直wa。 主席树: 好高大上的名字,说白了就是以序列的所有前缀或者后缀建立起来的线段树,同时在建树的过程中还用了上一个线段树的树根。 线段树里记录了其前缀序列里出现的值的次数。 离散后标记为1~n,要建立n个线段树

2015-08-19 15:47:23 531

原创 POJ2352(Treap || 线段树)

题目链接:http://poj.org/problem?id=2352 题目大意:先按Y的升序然后再按X的升序给出坐标,求出每个坐标左下方有多少个点,最后输出有从0到n-1个点的坐标有多少个。 本题可以说是线段树和树状数组的入门题,不用管Y按顺序依次求出每个X插入之前0到x有多少个坐标即可。这道题还可以用Treap来做,也是模板题,由于是刚学Treap,就用这个来写了。

2015-08-18 07:43:10 737

蚁群算法解决TSP问题

根据10个城市和30个城市的数据,用蚁群算法选择出来最短的路径

2016-12-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除