自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

岩山放牛娃

抬头看世界,低头写程序!!!

  • 博客(76)
  • 资源 (1)
  • 收藏
  • 关注

转载 后缀数组——处理字符串的有力工具

<br />后缀数组——处理字符串的有力工具<br />作者:罗穗骞<br />2009年1月<br />【摘要】<br />  后缀数组是处理字符串的有力工具。后缀数组是后缀树的一个非常精巧的替代品,它比后缀树容易编程实现,能够实现后缀树的很多功能而时间复杂度也并不逊色,而且它比后缀树所占用的内存空间小很多。可以说,在信息学竞赛中后缀数组比后缀树要更为实用。本文分两部分。第一部分介绍两种构造后缀数组的方法,重点介绍如何用简洁高效的代码实现,并对两种算法进行了比较。第二部分介绍后缀数组在各种类型题目中的具体

2010-08-30 20:09:00 2747 1

原创 poj3342

#include#include#include#include#includeusing namespace std;int n;vector son[205];int dp[205][2];int num;int treep(int k,int p)//k为节点标号;p为是否选的标志    {//记忆化搜索        int i,len,sum;        if(dp[k][p]!=-1)        {return dp[k][p];}//以被算过        len=son[k].siz

2010-08-28 22:09:00 633

原创 zoj j

<br />#include<iostream><br />using namespace std;<br />int main(){<br />    //freopen("in.txt","r",stdin);<br />  //  freopen("out.txt","w",stdout);<br />    int m;string s;<br />    while(scanf("%d",&m),m){<br />        cin>>s;<br />int max=0;int rr=0;<b

2010-08-28 16:46:00 405

转载 最大独立子集模板!!!(树形dp)

#include #include #include using namespace std;/*********************************/* 可以动态变化的邻接矩阵* G[i]表示顶点i的邻接点/*********************************/const int MAXN=100;vector G[MAXN]; //无根树int l[MAXN]; //结点层次int p[MAXN]; //根树int dp[MAXN]; //dp数组int sumS[MAXN];

2010-08-27 19:45:00 760

原创 joj2691

树形dp(有向树k中值问题);计算机算法设计与分析

2010-08-26 21:50:00 349

转载 有向树k中值问题模板!!!(树行dp)

#include using namespace std ;typedef struct binode{    int wx , w , wd , *cost , d ;//wi,vi,di分别表示编号为i 的顶点的权为wi,相应的有向边为(i, vi),其边长为di    struct binode *parent , *left , *right ;}binode , *link ;int n , k ;link *subt ;link Newnode (){    link p = new binod

2010-08-26 21:39:00 1939

转载 ssscanf用法积累!!!

<br />大家都知道sscanf是一个很好用的函数,利用它可以从字符串中取出整数、浮点数和字符串等等。它的使用方法简单,特别对于整数和浮点数来说。但新手可能并不知道处理字符串时的一些高级用法,这里做个简要说明吧。<br />  1. 常见用法。<br />以下是引用片段:<br />  char str[512] = {0}; <br />  sscanf("123456 ", "%s", str); <br />  printf("str=%s/n", str);<br />  2. 取指定长度的字符串

2010-08-25 23:05:00 796

原创 zoj3383

<br />一道做到我流泪又流汗的题!!!题目什么也不说就让你看sample,真实。。。。特别是w和h的交换,哎,无语。。。。<br />#include<iostream><br />#include<string><br />using namespace std;<br />char ss[200];<br />string a[305][305];<br />int b[305][305];<br />int main(){<br />       // freopen("in.txt","r",s

2010-08-25 22:28:00 343

原创 joj2687

没有变形的八数码问题!!!(宽搜!!!!)

2010-08-24 22:49:00 296

原创 STL------set用法!!!

STL中set的使用2010年06月10日 星期四 20:44set/multiset会根据待定的排序准则,自动将元素排序。两者不同在于前者不允许元素重复,而后者允许。1) 不能直接改变元素值,因为那样会打乱原本正确的顺序,要改变元素值必须先删除旧元素,则插入新元素2) 不提供直接存取元素的任何操作函数,只能通过迭代器进行间接存取,而且从迭代器角度来看,元素值是常数3) 元素比较动作只能用于型别相同的容器(即元素和排序准则必须相同)set模板原型://Key为元素(键值)类型template , class

2010-08-23 16:27:00 644

原创 zoj3384

#include#include#includeusing namespace std;int a[1005];int b[1005];int c[1005];int main(){    int n;int suma;int sumb;    while(cin>>n){        int i=0;        memset(c,0,sizeof(c));        suma=0;sumb=0;        for( i=0;i>a[i];suma+=a[i];}        for( i=

2010-08-22 17:47:00 366

原创 joj2689

#includeusing namespace std;int n,m;int a[115][115];int c[115];int b[115];//int max_array(int* p,int m){    memset(c,0,sizeof(c));    c[0]=p[0];    for(int i=1;i        {if(c[i-1]            c[i]=p[i];            else c[i]=c[i-1]+p[i];            }    int

2010-08-21 16:34:00 290

转载 最大子矩阵模板

#include using namespace std;  int ** a;  int **sum;  int max_array(int *a,int n){        int *c = new int [n];        int i =0;        c[0] = a[0];        for(i=1;i        {                if(c[i-1]                        c[i] = a[i];                else 

2010-08-21 14:13:00 398

原创 joj2697

搜索越来越顺手!!!!!

2010-08-20 23:41:00 314

原创 acm---文件应用

freopen函数在竞赛中的使用(2010年06月23日) 发表于 ChinaUnix<br />在做 acm 题目的过程中,我们需要在本地机器上调试。调试过程中,如果输入数据少还可以接受,但如果输入数据很庞大的话,我们就很难忍受一次又一次的重新输入和调试了。通过 google ,找到一种简便的方法,那就是 freopen 函数。 <br />        使用 freopen 函数可以解决测试数据输入问题,避免重复输入,不失为一种简单而有效的解决方法。   <br />下面为函数的简介,详细可参见 ht

2010-08-20 12:24:00 408

原创 uva4262

模板题!!!求有向图强连通分支数!!!

2010-08-15 14:56:00 291

原创 hdoj1176

#includeusing namespace std;int c[100002][12];int d[100002][12];int main(){ int x,t,n; while(scanf("%d",&n)!=EOF){ memset(c,0,sizeof(c)); memset(d,0,sizeof(d)); for(int i=1;i=5+i;j--) if(c[i]

2010-08-15 14:08:00 473

原创 uva4267

<br />#include<iostream><br />#include<stdio.h><br />#include<algorithm><br />using namespace std;<br />int a[1005];<br />int d[1005];<br />int mat[1005][1005];<br />bool v[1005];<br />int fa[1005];<br />int ans[1005];<br />int n;<br />void dijskra(){<br /

2010-08-15 13:59:00 284

原创 uva3900

<br />#include<iostream><br />#include<stdio.h><br />#include<string.h><br />using namespace std;<br />int main(){<br />    int T;<br />    scanf("%d",&T);<br />    char s[82];<br />    while(T--){<br />        scanf("%s",s);<br />        int n=strlen(s);<

2010-08-15 08:53:00 286

原创 uva3901

求最长重复子串!!!一开始完全不敢做!!!太暴力了,但数据水,大模拟过了!!!

2010-08-14 22:37:00 371

原创 hdoj1160

粗心=====丑行

2010-08-13 17:02:00 400

原创 poj1458

dp经典(Common Subsequence)算法可以改进,但我不会!!!

2010-08-13 16:27:00 446

原创 poj1887

<br />很简单的dp,但是题意难理解;<br />本人一开始以为是求最长的(连续的)的降序列!!!悲剧,但其实是不用连续!!!<br /> <br />#include<iostream><br />using namespace std;<br />int a[100000],d[100000];<br />int main(){<br />    int m=1;<br />    while(1){<br />        int temp;<br />        cin>>temp;<br

2010-08-13 11:13:00 525

原创 hdoj2084

关键字:状态+状态转移方程!!!

2010-08-12 16:49:00 441

原创 hdoj1466

<br />(m-r)条平行线与r条直线交叉的交点数   + r条直线本身的交点方案 =(m-r)*r+r条之间本身的交点方案数(0<=r<m)<br /> <br />#include<iostream><br />using namespace std;<br />int n,sum[22][191],t;<br />void point(){<br />    for(int i=0;i<=n;i++)<br />    sum[i][0]=1;<br />    for(int k=2;k<21;k

2010-08-12 15:09:00 574

原创 poj2531

1,dfs 2, 随机化做法(rand()用法!);

2010-08-11 16:56:00 672

原创 poj2677

<br />/*此方法超时,原因在于最大的排列数达到16!=2*(10的13次方)<br />  故只能用搜索做!!!*/<br />#include<iostream><br />#include<algorithm><br />using namespace std;<br />int a[17];<br />int main(){<br />    int n,m;<br />    while(cin>>n>>m){<br />        for(int i=0;i<n;i++) a[i]=i+

2010-08-11 11:08:00 714

原创 poj1226

字符串的处理!!!

2010-08-11 11:07:00 885

原创 poj1141

<br />#include<stdio.h><br />#include<math.h><br />#include<algorithm><br />using namespace std;<br />double r[10002]={0.0};<br /><br />//bool comp(double x,double y){if(a/b<=x/y&&x/y<=1) return true;else return false;}<br />int main(){<br />double m,n,a,b

2010-08-11 11:04:00 370

原创 poj1426

<br />简单的bfs,但应该用字符处理才是最安全的__int64也不是很好<br />#include<iostream><br />using namespace std;<br />__int64 q[1<<20];<br />int n;<br />void bfs(){<br />    int front=0,rear=0;<br />    q[rear++]=1;//m第一个 数位0无意义; <br />     __int64 u;<br />     while(front<rear)

2010-08-11 10:56:00 308

原创 1141

#include#includeusing namespace std;int main(){ int n;int coach[1002]; while(scanf("%d",&n),n){  stack mm;  while(1){  while(!mm.empty())mm.pop();cin>>coach[0];if(coach[0]==0){coutelse{     int i=0;  for(i=1;i   cin>>coach[i]; int r=n-1,q=n;  while(r>=0){ 

2010-08-10 19:38:00 367

原创 poj3349

Snowflake Snow SnowflakesTime Limit: 4000MS Memory Limit: 65536KTotal Submissions: 14656 Accepted: 3615<br />Description<br />You may have heard that no two snowflakes are alike. Your task is to write a program to determine whether this is really true. You

2010-08-10 19:37:00 405

原创 joj 2319

为啥总是rutime error????

2010-08-10 19:33:00 336

原创 joj2660

求在一定范围类波动的最长字段!!!

2010-08-10 19:26:00 344

原创 joj1995

求和最大子段!!!

2010-08-10 19:24:00 361

原创 求子集的算法

<br />#include<iostream><br />#include <stdlib.h><br />#include<math.h><br />using namespace std;<br />int prim=0;<br />int pr (int sum)<br />{<br />    int i;<br />    int p=1;<br />    if(sum==1)<br />      p=0;<br />    else<br />     if(sum==2)<br />  

2010-08-10 19:22:00 1249

原创 无向图求环路

<br />1. 判断N结点的无向图G是否有环<br /><br />假定:结点个数为M,边条数为E<br />遍历一遍,判断图分为几部分(假定为P部分,即图有 P 个连通分量)<br />对于每一个连通分量,如果无环则只能是树,即:边数=结点数-1<br />只要有一个满足      边数   >   结点数-1<br />原图就有环<br />将P个连通分量的不等式相加,就得到:<br />    所有边数   >   所有结点数 + 连通分量个数<br />即:  E + P > M  所以只有判断 

2010-08-10 19:20:00 3823

原创 poj2485

<br />#include<iostream><br />using namespace std;<br />int t,n;<br />int w[503][503];<br />int lowcost[503];<br />bool s[503];<br />int maxlen;<br />void prim(){<br /> int i,j;int k;<br /> memset(s,0,sizeof(s));<br /> s[1]=1;<br />for(i=1;i<=n;i++)<br /> 

2010-08-10 19:16:00 336

原创 poj2359

<br />#include<iostream><br />#include<algorithm><br />using namespace std;<br />int n,m;<br />long ans=0;<br />int p[2002];<br />long w[10002];<br />int r[10002];<br />int u[10002];<br />int v[10002];<br />bool comp(int i,int j){return w[i]<w[j];}<br />in

2010-08-10 19:13:00 516

原创 poj1861

<br />#include<iostream><br />#include<algorithm><br />using namespace std;<br />int w[15002];<br />int u[15002];<br />int v[15002];<br />int p[1002];<br />int r[15002];<br />int ans;<br />struct p{<br /> int uu;<br /> int vv;}point[1002];<br /> int k=0;<b

2010-08-10 19:12:00 470

生物DNA序列比对算法研究

生物DNA序列比对算法研究!!!生物DNA序列比对算法研究!!!生物DNA序列比对算法研究!!!

2011-07-08

空空如也

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

TA关注的人

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