自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

storm

努力学习编译知识,恶补计算机体系结构!

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

原创 dp 最优三角剖分问题

额,基本和算法分析上的差不多,只是更加了解dp的状态吧#include#include#include#include#include#includeusing namespace std;#define max 100int n; int t[max][max], s[max][max];int value[max][max]; int w(int i, int j,

2012-03-30 21:49:20 424

原创 第四届河南省程序设计竞赛 迷宫问题

额,刚开始有指导说用动态规划,而我也觉得dp 是可解的,但是后来提交时WA,用了一组测试数据发现存在漏洞 。例如: 3  1 0 0  1 0 0 1 0 0后来又有人说用搜索,可是自己却感觉搜素不可行的,不过结果是可想而知的。。。。。。题目链接 #include #include #define SIZE_N 101 #define INF_MAX 0x7ffffff

2012-03-30 21:05:44 1196 2

原创 hduj 1114 完全背包

#include using namespace std; int nCases;int nPack, nVolume1, nVolume2, nVolume;int weight[510], value[510];int record[10000];const int INF = 1000000001;int main(){ scanf("%d",

2012-03-27 20:37:57 484

原创 石子合并问题

在一个圆形操场的四周摆放着n堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。试设计一个算法,计算出将n堆石子合并成一堆的最小得分和最大得分。没有用dp 感觉一般的也能写,时间复杂度也不高。。。#include#include#include#include#include#includeusing

2012-03-27 19:06:05 523

原创 编辑距离问题 dp

其实和最长字符串公共序列差不多,关键是要把握好状态的转移。。其他的就没什么了,不解释哈,、、、继续学习中。。。。。题目描述:设A和B是两个字符串。要求用最少的步骤将字符A转换为字符串B.步骤包括:1. 删除一个字符    2. 插入一个字符   3.将一个字符改变为另一个字符。#include#include#includechar A[100], B[100];int

2012-03-26 23:10:27 664

原创 HDOJ 2544 最短路

第一次用dijkstra .感觉就是动态规划啊,先找出当前图的最小距离,加入当前结点。在在此节点的基础上更新新的距离,其实真正理解了也是很好想的,刚开始数组地图开的小了map[100][100], 结果WA 了,数组开大点就好。#include#include#include#include#include#includeusing namespace std;#define m

2012-03-25 14:42:30 548

原创 poj 1125 最短路问题

额,刚开始都不带看清楚题意的,今天阳光很好,心情也好,下午准备去玩。。。。#include#include#include#include#include#includeusing namespace std;#define MAX 1000#define INF (1<<20)int dist[MAX][MAX];int point, maxsize, minsize;

2012-03-25 10:49:14 389

原创 基因匹配问题

就是dp, 数据处理的时候要注意。而且状态转换用了只用了一个sim[2][m],节省了空间。再者就是转换的时候有权值,加上权值比较即可。#include#include#include#include#include#includeusing namespace std;char weight[5][5] = { {5,-1,-2,-1,-3}, {-1,5,-3,-2

2012-03-22 19:45:11 866

原创 网络的可靠性

#include#include#include#include#include#includeusing namespace std;#define MAX 1000int N, num, MIN, V=0;bool is_AR[MAX]; //记录关节点的个数 vector map[MAX];int visited[MAX],low[MAX];void DFSAr

2012-03-21 23:23:21 460

原创 第三届河南省大学生程序设计竞赛 聪明的“KK”

dp 问题,不过要注意开始的时候下表要考虑好,我是让d[][] 的四周空出一行,这样就不会出错了#include#include#include#include#include#includeusing namespace std;int N, M;int map[25][25], d[25][25];int dp(int N, int M){ memset(d,

2012-03-21 19:20:34 923

原创 素 数

#include#include#include#include#includeusing namespace std;int is_prime(int n){ int i; if(n<=1) return 1; for(i=2; i<=sqrt(n); i++) if(n%i==0) return 0; return 1;}int mai

2012-03-21 18:52:21 618

原创 第三届河南省大学生程序设计竞赛 房间安排

这个是一个贪心的题,只是排序好会议结束的时间,让后再每次查看当前的日期是否已经符合当前的情况,然后在看当前的房间数是否够用,其他的就没有什么了。#include#include#include#include#include#includeusing namespace std;typedef struct data{ int number;

2012-03-21 18:29:08 814

原创 最近的感悟

感觉时间就这么快速的流逝着,大二了,想想现在的知识水品,再想想自己刚出的梦想,感觉有点格格不入这个社会呢。没办法,技术才是硬道理,其他的说得再多也没有用,本来想学jsp。可是实在看不下去了,所以我觉得还是先看数据库吧,不知道这条路到底对不对,没有人指导真的有时候会好迷茫,再说说感情的问题,表示是一团糟啊,没办法,处理不好也没有精力处理这些事请,对不起了哈。。。。。我会继续努力的,加油大学生活!!!

2012-03-21 12:34:44 332

原创 杭电 2602 01 背包

#include#include#include#include#include#includeusing namespace std;#define MAX 1005int v[MAX],w[MAX];//int f[MAX][MAX];int recond[MAX];int N, V;int package(int N,int V){ int i,j;

2012-03-19 17:59:07 721

原创 poj 2485 秒杀

就是求最小生成树中那条最大的边。。。。#include#include#include#include#include#includeusing namespace std;#define MAX 65550int map[505][505];int dis[505];bool s[505];int prim(int n){ for(int i=0;

2012-03-18 08:34:19 462

转载 并查集

1、  概述并查集(Disjoint set或者Union-find set)是一种树型的数据结构,常用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。2、  基本操作并查集是一种非常简单的数据结构,它主要涉及两个基本操作,分别为:A. 合并两个不相交集合B. 判断两个元素是否属于同一个集合(1)       合并两个不相交集合(Union(x,y))

2012-03-18 08:08:36 345

原创 poj 1258 很简单的prim

刚开始的时候由于没有看清楚要多组输入,所以就卡了、、、后来又仔细的看了一遍题,才明白题目的意思,表示自己现在还是很着急呀。今天中午就写最小生成树的题吧,最近有看jsp 希望自己早点学到真东西。#include#include#include#include#include#includeusing namespace std;#define MAX 100005int map

2012-03-18 08:04:41 302

原创 poj 1251 郁闷了,大爷的、、、、、

#include#include#include#include#include#includeusing namespace std;typedef struct rode { int c1, c2, cost; }rode;int S[100];rode city[100];int find(int x){ if(S[x]==-1) retu

2012-03-17 23:27:35 307

原创 poj 1011 stricks

#include#include#include#include#include#includeusing namespace std;int start;int stick[64];bool issue[64];int compare(const void *a, const void *b){ return *(int*)b - *(int*)a;}bool

2012-03-17 08:25:50 397

原创 java 图形

import javax.swing.WindowConstants;import javax.swing.SwingUtilities;public class NewJFrame extends javax.swing.JFrame { /** * Auto-generated main method to display this JFrame */ publ

2012-03-16 10:56:34 397

原创 1086 最小水源 杭电

#includeint set[3000];int find(int x){ while(set[x]!=x) x=set[x]; return x;}void shu(int x,int y){ int rx,ry; rx=find(x); ry=find(y); if(rx!=ry) set[rx]=ry;}int main(){ int i,n,m,j,p,x

2012-03-12 23:13:25 993

原创 水杯倒水问题 bfs

刚开始还是弄不好各个状态之间怎么转换,e而且也不懂怎么去储存已经遍历过的状态,后来看到了哈希,感觉挺好的,这道题也就是深搜了。。基本的都看得懂#include#include#include#include#include #includeusing namespace std;typedef struct { int cur[3]; int v[3]; in

2012-03-11 10:17:52 2680

原创 dp 最大连续字段和 郁闷了

#include#include#include#include#include#includeusing namespace std;int b[1000005];int dp(int n){ int i; int t=0,sum =0; for(i=0; i<n; i++) scanf("%d",&b[i]); for(i=0; i<n

2012-03-10 23:27:59 1317

原创 三个水杯倒水的问题 还是没写出来

#include#include#include#include#include#includeusing namespace std;typedef struct { int a, b, c;}data;vector cup;int digit[100][100];int ok;int v1, v2, v3, e1, e2, e3;int total, step;

2012-03-10 22:54:25 1218

原创 poj 3278 简单的搜索

因为刚开始时不知道怎么储存每一层更新时步数的变化,所以纠结了好久,后来看了别人的代码才知道原来只是上层的步数+1就好,所以这题也就没什么问题了,但还是有两个只是盲点,就是bool 怎么初始化,和 怎么清空stl 队列。#include#include#include#include#include#include#includeusing namespace std;int n

2012-03-10 09:27:13 339

原创 素数环 回溯

#include#include#include#include#include#include#include using namespace std;int isp[10000],A[10000],vis[10000]; int n;int is_prime(int n) //打表{ int i; if(n <= 1) return 0; for(i

2012-03-08 22:26:28 399

原创 皇后问题 回溯

#include#include#include#include#include#includeusing namespace std;#define MAX 100int tot,n;int cur;int vis[3][MAX]; //刚开始vis[2] 它C 也不报错,悲剧了就。。int c[MAX]; //存储皇后位置 int search(int cur){

2012-03-08 13:24:07 423

原创 棋牌覆盖问题

用分治的策略可以设计棋牌覆盖问题的一个简捷的解法。当 K>0 时,将2^k X2^k 棋牌分割为4个小的棋牌, 特殊方法必位于4个较小的棋牌之一。内容来自算法设计———王晓东那本书上的思想。。。。#include#include#include#include#include#includeusing namespace std;#define MAX 1000int Bo

2012-03-07 23:24:55 1454 2

原创 求迷宫的的算法

#include#include#include#include#include#include#define MAXN 100using namespace std;int q[MAXN*MAXN];int maze[MAXN][MAXN],fa[MAXN][MAXN],vis[MAXN][MAXN],dist[MAXN][MAXN]; //墙是1空白是0 int n,

2012-03-07 21:45:36 304

原创 poj 3278 Catch That Cow 搜索

Farmer John想抓到一头牛,Farmer John在一个数轴的一个位子,牛在数轴的另一个位子。但Farmer John这个人在一个单位时间内可以有三种走的方式,一是走到数轴的下一格,或是前一格,或是他的数轴的两倍的格子上,为此人最快抓到牛的时间。点击打开链接#include#include#include#include#include#includeusing names

2012-03-07 21:43:16 407

原创 poj 2243 Knight Moves

一个8行8列的棋谱,任意给出knight的两个位子,问按照knight的走法,从其中的一个位子出发,问至少需要经过几步到达另外一个位子。 行用1-8表示,列用a-h表示,起始位置入队列,然后在当前结点能访问的结点依次搜索。。在进入队列前判断是否到达结束位置,用二维数组存储步数、、、、点击打开链接#include#include#include#include#include usin

2012-03-06 20:28:21 458

原创 南阳理工 吝啬的国度

题目描述是这样的,在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来。现在,Tom在第S号城市,他有张该国地图,他想知道如果自己要去参观第T号城市,必须经过的前一个城市是几号城市(假设你不走重复的路)。 下面是比较好的代码,用了递归。点击打开链接#include#include#include#include#include #includeusing na

2012-03-06 19:13:45 786 1

原创 DP 回文字符串 南洋理工

所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba"。当然,我们给你的问题不会再简单到判断一个字符串是不是回文字符串。现在要求你,给你一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符串#include#include#include#include#include#includeusing namespace std;

2012-03-05 21:36:18 692

原创 矩形嵌套 DP 南阳理工 http://acm.nyist.net/JudgeOnline/problem.php?pid=16

刚开始用DP、贪心都没有AC,后来看看书上讲的有知识,才发现自己错了。矩形之间的关系是典型的二元关系,二元关系可以用图来建模。如果X可以镶嵌在Y里,我们就从X到Y连一条有向边。只要求这个图上的最长路径即可。#include#include#include#include#includeusing namespace std;typedef struct { int a

2012-03-04 23:38:56 1003

原创 poj 2248 DFS+剪枝

由于每个数字都是由前面的两个数字之和。并且要使这个数字链最短。那么我们可以深搜一下,假设后面的数是由前面的两个数字的和,前面的两个数是我们可以逐渐往前扫描,那么算符就是前面的两个数相加,得到后面的数,这样深搜下去,并且记录找到解后这个数据链的长度。当数据长度最短时即为所求的解,这里为了加快寻找速度,对于一些不必要搜索的我们不需要去搜索,于是就把它剪去。#include#include#in

2012-03-04 20:15:15 1322 2

原创 poj 1562 简单的BFS搜索

对于个给出的图,用一个整型的二维数组代表有无石油,然后循环这个二维数组,如发现存在石油,则以这个方格为起始结点进行深搜,如发现石油就标记为-1,然后继续遍历这个二维数组,直至找到下一个有石油的方格,找到一个计数加1。最后的计数即为所求的石油的方块数。#include#include#include#includeusing namespace std;char map[100][1

2012-03-04 19:12:05 851 1

原创 最短路径

#include#include#include#define MAXV 100#define INF 100000typedef struct{ int n,e; int edges[MAXV][MAXV]; }MGraph;void Ppath(int path[],int i,int v){ int k; k=path[i]; if(k==

2012-03-04 17:56:22 304

原创 最小生成树

#include#include#includeusing namespace std;#define MAXV 1000#define MaxSize 100#define INF 20000typedef struct EDGE{ int u; int v; int w;}Edge;typedef struct { int edges[MAXV][

2012-03-04 17:54:57 294

原创 最近的总结

额,今天刚把csdn 的网页架构弄好吧,再次感谢于奇同学的帮助,最近又开始刷题了,虽然有时候有抱怨,有苦恼。可还是坚持下来了,最近又组了java 的小组,感觉大学真的要开始做些什么,心里还是很期待的,虽然有些累,可这个过程是快乐的,为了自己的梦想,也为了那些现实的压力,却是要有付出的,没办法,这个事大学生必须经过的过程,最近在写搜索的题,感觉自己还是怕写搜索的,还是不太理解一些东西,没办法,自己的

2012-03-04 17:49:33 312

转载 zoj 1050 bfs

#include #include #include using namespace std;struct rec { int n, m; };int main() { int N; cin >> N; while(N--) { int n = 0; char c; for(int i = 0

2012-03-04 11:57:20 627

大三文法分析

适合大三学习编译原理的同学使用,有源代码,可修改下!

2013-04-30

空空如也

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

TA关注的人

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