- 博客(28)
- 资源 (5)
- 收藏
- 关注
转载 poj1190生日蛋糕
#include#include#include#include#include#include#include#includeusing namespace std;#define INF 10000000#define min(a,b) (a<b?a:b)int n,m,best,minv[22],mins[22];void Init(){ int i; m
2013-07-31 16:30:51 723
转载 poj 1185 炮兵阵地
#include#include#include#include#include#include#include#includeusing namespace std;/*为大家方便明白,注释比较多。该题可深化动态规划,学会滚动数组,状态压缩等知识。*/char map[101][11];//地图int surface[101];//地形状态压缩数int state[
2013-07-31 10:42:26 570
原创 KMP 模版
刚看到位兄弟也贴了份KMP算法说明,但本人觉得说的不是很详细,当初我在看这个算法的时候也看的头晕昏昏的,我贴的这份也是网上找的。且听详细分解:KMP字符串模式匹配详解来自CSDN A_B_C_ABC 网友KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。
2013-07-27 19:47:05 592
原创 HDU1075 What Are You Talking About
#include#include#include#include#include#include#include#include#includeusing namespace std;int main(){ mapmymap; int i,j,k; string s,e,m; cin>>s; while(cin>>e) { if(e=="END")
2013-07-27 10:39:57 663
转载 map的详细介绍及简单的运用
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有
2013-07-27 10:00:41 974
转载 ZOJ3703 Happy Programming Contest
#include#include#include#include#include#include#include#includeusing namespace std;struct Point{ int t,v;}p[55];bool cmp(Point left,Point right){ return left.t<right.t;}int dp[1005
2013-07-26 15:05:38 833
转载 POJ3659 Cell Phone Network
#include#include#include#include#include#include#include#includeusing namespace std;#define inf (1 << 29)#define Min(a, b) (a) < (b) ? (a) : (b)#define maxn 21000struct T{ int v, next
2013-07-24 20:57:51 738
原创 POJ1163 The Triangle
从n行到第一行的:#include#include#include#include#include#include#include#includeusing namespace std;int dp[102][102];int main(){ int n,i,j; memset(dp,0,sizeof(dp)); cin>>n; for(i=0;i<n;i+
2013-07-24 19:00:25 602
原创 POJ1157 LITTLE SHOP OF FLOWERS
一种dp[i][j]表示第i束花插入第[j]个瓶子里面所获得的最大的美观程度。则状态转移函数可以表示为dp[i][j]=max(dp[i-1][k]+a[i][j])其中i-1#include#include#include#include#include#include#include#includeusing namespace std;int a[102][102]
2013-07-24 10:25:08 641
转载 POJ 1088 滑雪
#include#include#include#include#include#include#include#includeusing namespace std;#define INF 0xfffffff#define MAX 101int c,r;struct Node{ int height; bool visited;//保存该节点是否
2013-07-22 22:32:04 569
转载 POJ 1050 To the Max
不过这道题还是不怎么会做。一开始我以为既然要用DP的话,那就把矩阵的某个点作为状态,但是这样一来的话,单纯依靠下一个状态是无法得到结果的,因为还有不定长的一行和一列。原来只要把二维矩阵压缩为一维数组,问题就转化为求数组的最长子串了!参考:http://www.cnblogs.com/aiyite826/archive/2010/07/23/1784032.html#include
2013-07-22 19:00:06 536
转载 POJ1042 Gone Fishing
#include#include#include#include#include#include#include#include#includeusing namespace std;int main(){ int n,h,f[26]={0},d[26]={0},t[26]={0},fs[26];//h是以小时为单位 cout<<"输入湖的数量:"<<endl;//1
2013-07-21 10:39:32 547
转载 POJ1160 Post Office
#include#include#include#include#include#include#include#include#includeusing namespace std;const int V_MAX = 305;const int P_MAX = 35;const int INF = 1<<30;//村庄数int vNum;//邮局数int p
2013-07-20 20:23:19 803
转载 POJ1037 A decorative fence
题目大意(转)有N条木板,长度不同,分别为1,2,……,N单位长度。现在要将这N条木板排成可爱的形状,所谓可爱的形状,是指对于不在边缘的木板,两边相邻的木板要么都比它高,要么都比它低,成波浪形排列。N条木板有若干种可爱的排列方法,现将这些排列按字典排序,即第一条木板较短的排前面,若第一条木板相同,则第二条木板相同的排前面,以此类推;最后,从1开始对排列方法编号。现输入木板条
2013-07-20 14:47:39 714
原创 POJ1276 Cash Machine
与poj1014,同一个模版http://blog.csdn.net/u010682557/article/details/9385609#include#include#include#include#include#include#include#include#includeusing namespace std;int dp[100002];int n
2013-07-19 22:10:53 615
转载 POJ1014 Dividing
#include#include#include#include#include#include#include#include#includeusing namespace std;#define N 155#define MAX(a, b) a>b?a:bconst int size = 7;int dp[60010], amount[size];int
2013-07-19 20:44:48 661
原创 POJ 1036 Gangsters
dp[ i ][ j ]表示第 i 个时刻门的打开程度为 j 时获得的最大的繁荣度。状态转移方程:dp[ i ][ j ] = MAX(dp[ i - 1 ][ j ], dp[ i - 1 ][ j + 1 ], dp[ i - 1 ][ j + 1 ]) + w; w为此状态下能够获得的繁荣值。 注意处理 j == 0 和 j
2013-07-19 16:23:19 637
转载 POJ1947 Rebuilding Roads
树形dp!!!关键是枚举s点的所有的不去掉k子树的情况!!! 因为是树形DP,而子问题往往涉及的是子树的信息,所以我们要对树先进行深搜,求出子问题的解,然后再返回根节点,求根节点的信息。。。#include#include#include#include#include#include#include#include#include
2013-07-19 11:16:38 652
转载 HDU1867 A + B for you again
#include#include#include#include#include#include#include#include#include#define N 100005int next[N];char str1[N],str2[N];void getnext(char *t){ int i=1,j=0;next[1]=0; int len=strlen(t+
2013-07-18 20:46:35 583
原创 HDU1863 畅通工程
运用并查集,如果所有的村庄的最终的父节点都相等,那么证明所有的路都是通的,一旦有父节点不相等的情况出现就直接输出“?”,对于修路的成本进行排序,运用最小生成树来做#include#include#include#include#include#include#include#include#includeusing namespace std;#define N
2013-07-18 18:34:34 609
转载 Vector 的用法了解
C++内置的数组支持容器的机制,但是它不支持容器抽象的语义。要解决此问题我们自己实现这样的类。在标准C++中,用容器向量(vector)实现。容器向量也是一个类模板。标准库vector类型使用需要的头文件:#include 。vector 是一个类模板。不是一种数据类型,vector是一种数据类型。Vector的存储空间是连续的,list不是连续存储的。一、 定义和初始化vec
2013-07-18 09:47:49 746
转载 HDU4340 Capturing a country 树状DP经典
很明显的树状DP。状态:dp[i][j][k]i:第i个城市j:为0时用A占领;为1时用B占领k:为0时,全部取了一半的时间;为1时,已经有一个连通的城市选取了完整的价值。假设城市1为树的根,最终的答案就为:min(dp[1][0][1], dp[1][1][1])转移:假设正搜索到第u个城市,它的叶子节点已经搜索完成
2013-07-17 22:08:45 701
转载 HDU1569 方格取数(2) 网络流
#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x3fffffffint n,m,cnt,s,t;int map[51][51],head[3000],dis[3000],gap[3000];struct
2013-07-17 20:46:19 814
原创 HDU1565 方格取数(1)网络流
#include#include#include#include#include#include#include#include#includeusing namespace std;#define N 30#define INF 0x3fffffffint map[N][N];int dis[4][2]={{1,0},{0,1},{-1,0},{0,-1}};i
2013-07-17 16:03:40 1067
转载 HDU3560 Graph’s Cycle Component
#include#include#include#include#include#include#include#include#include#define N 100002int n,m,pre[N],flag[N],degree[N];void clear(){ for(int i=0;i<n;i++) { degree[i]=flag[i]=0;
2013-07-17 09:58:51 836
转载 HDU1242 Rescue
#include#include#include#include#include#include#include#include#includeusing namespace std;int map[211][211];int n,m;int x_s,y_s;int x_e,y_e;struct node{ int x,y; int step; frien
2013-07-16 19:06:59 642
转载 HDU2444 The Accomodation of Students
#include#include#include#include#include#include#include#include#includeusing namespace std;#define N 211int n,m,cnt;int head[N];int color[N];int vis[N];int math[N];struct Node{ i
2013-07-16 15:59:53 658
转载 HDU 1083 二分匹配图
http://acm.hdu.edu.cn/showproblem.php?pid=1083#include#include#include#include#include#include#include#include#includeusing namespace std;int cs[305][305];//课程与学生的关心,cs[i][j]为1时表
2013-07-16 10:55:56 687
输出素数C++
2014-11-10
MyInteger类
2014-11-10
TicTacToe游戏
2014-11-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人