IT民工
加油!

随笔分类 -  POJ

上一页 1 2 3 4 5 6
刷集训手册
POJ -1753-Flip Game
摘要:http://poj.org/problem?id=1753这道题用的深搜,操作方式还是蛮麻烦的 o(2^16) ,然后在读入的时候用了%c然后悲剧了...#include<cstdio>#include<cstring>#include<cstdlib>int map[4][4];int dx[] = { 1, -1, 0, 0};int dy[] = { 0, 0, -1, 1};int min = 100;void init(){ char a[10]; for( int i = 0; i < 4; i ++) { scanf( "%s 阅读全文
posted @ 2011-12-13 20:15 找回失去的 阅读(178) 评论(0) 推荐(0)
POJ 2255-Tree Recovery
摘要:http://poj.org/problem?id=2255这道题是输入二叉树的先序遍历、中序遍历,然后要求我们输出它的后序遍历,参考了白书上的二叉树重建的函数,先找到根结点,然后分别通过递归构造左右子树的后序遍历,然后将根节点放到输出字符串的最后。/*Accepted 160K 0MS C++ 563B 2012-07-31 12:16:15*/#include<stdio.h>#include<string.h>const int MAXN = 1 << 5;char s1[MAXN], s2[MAXN], ans[MAXN];void build(in 阅读全文
posted @ 2011-11-25 12:13 找回失去的 阅读(187) 评论(0) 推荐(1)
POJ 1321-棋盘问题
摘要:http://poj.org/problem?id=1321这是手册上的深搜题,首先我们要将棋盘的位置标记,因为行和列都不同,所以必须用两个数组分别来存点的横坐标和纵坐标,然后开始一个棋子一个棋子地摆上去,计算有几种摆法。#include<iostream>#include<string.h>using namespace std;const int N = 8*8 + 10;int x[N], y[N];bool visx[N], visy[N];int n, k, m;long long cnt;char ch[N];void dfs( int a, int ans 阅读全文
posted @ 2011-11-19 23:24 找回失去的 阅读(208) 评论(0) 推荐(0)
POJ 1915-Knight Moves
摘要:http://poj.org/problem?id=1915这道题还是求骑士从一个点移动到另一个点距离的问题,不同的是棋盘的规格是由我们输入的,最大有300*300,数组要开足够大,我把2243的代码修改了下就AC了...好好理解下BFS#include<iostream>#include<string.h>using namespace std;int x1, y1, x2, y2;int dist[305][305], qx[90005], qy[90005];int dx[] = { -1, -2, -2, -1, 1, 2, 2, 1};int dy[] = { 阅读全文
posted @ 2011-11-14 23:36 找回失去的 阅读(216) 评论(0) 推荐(0)
POJ 2243-Knight Moves
摘要:http://poj.org/problem?id=2243我是在看staginner大牛的博客的时候看到这道题的,因为看到了BFS,所以就拿来做了,但是发现好像之前没写过BFS这玩意,所以就基本照着搬了一遍他的代码,自己写了一下,理解了下队列和广搜。题目要我们找到从一个点到另一个点的骑士移动的步数,按照staginner的做法是记录在找到终点之前的所有点到起点的步数。#include<iostream>#include<string.h>#include<stdio.h>using namespace std;char a[5], b[5];int x1, 阅读全文
posted @ 2011-11-14 22:43 找回失去的 阅读(204) 评论(0) 推荐(0)
【转】POJ 题目列表(DP)
摘要:这份列表当然不是我原创的,转自月田人的博客http://www.cnblogs.com/qijinbiao/archive/2011/09/02/2163460.html※最近更新:Poj斜率优化题目1180,2018,3709列表一:经典题目题号:容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1191,1208, 1276, 1322, 1414, 1456, 1458, 1609, 1644, 1664, 1690, 1699, 1740, 1742, 1887,1926, 1936, 1952, 阅读全文
posted @ 2011-11-07 08:34 找回失去的 阅读(326) 评论(0) 推荐(0)
POJ 2503-Babelfish
摘要:http://poj.org/problem?id=2503这是一道字符串处理的题。有点写字典,查字典的意思,首先要解决的是输入字典和查字典时输入单词中间的那一个空行,我是用gets输入前面的东西,所以只需一个判断就可以跳出输入字典的循环。然后是输入单词翻译,因为字典当中的单词比较多,我又不会hash,所以用了二分查找。#include<stdio.h>#include<string.h>#include<stdlib.h>#define M 100003typedef struct dictionary{ char f[15]; char n[15];}D 阅读全文
posted @ 2011-11-03 12:42 找回失去的 阅读(286) 评论(0) 推荐(1)
POJ1308(Is It A Tree?)
摘要:http://poj.org/problem?id=1308最近几天有点忙,敲代码敲的比较少,才几天就比较生疏了。昨天晚上做了这道题和杭电的1225,终于找回了感觉。但是遗憾的是杭电那道题没有A掉,找不出错在哪。先说POJ1308,这道题要求我们判断这些case的数字连接起来是否构成一棵树。一棵树只有一个树根,树当中的两个父节点不能含有相同的儿子。然后我就开始写了,用的依然是并查集,但是看了下数据感觉不好输入,-1,-1是结束输入,0,0是结束一个case,所以每个case开始的第一组数据单独输入,后面的数据用while循环判断是否是0,0来输入。问题依然有,不知道哪些树出现了,所以增加了一个 阅读全文
posted @ 2011-10-13 10:44 找回失去的 阅读(1817) 评论(1) 推荐(0)
POJ1611(The Suspects)又见并查集
摘要:http://poj.org/problem?id=1611这貌似我做的第二道并查集的题,算是一道水题吧,题目的大概意思是找出与编号为0的人有交集的人数。所以要将出现的集合中有交集的合并成大集合,最后输出0所在集合的人数。贴代码:#include<iostream>using namespace std;#define N 30005int p[N],f[N];//f用来存集合元素的个数 int find(int x)//并查集的根本,找父亲结点 { return p[x] == x ? x : ( p[x] = find(p[x]) );}void merge(int a, in 阅读全文
posted @ 2011-10-05 13:59 找回失去的 阅读(205) 评论(0) 推荐(1)
POJ1065(Wooden Sticks)
摘要:http://poj.org/problem?id=1065我发现我真的不适合做这些问题,老是考虑不完全。看到题之后,我知道要先排序,因为最省时的是l'>l,w'>w,排序之后就可以只看weight了,所以先将lenth作为一级参数,weight作为二级参数排序。排序之后就只需要考虑weight这个方面了。然后开始处理stick,对处理过的stick标记为1,剩下再循环处理,每次开始新的循环时间都要+1,直到所有的stick都处理完毕。我自己给代码的注释还是蛮给力的.贴下我的代码:#include<stdio.h>#include<stdlib.h 阅读全文
posted @ 2011-10-02 16:16 找回失去的 阅读(288) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6