- 博客(14)
- 资源 (1)
- 收藏
- 关注
原创 uva - 11137 - Ingenuous Cubrency
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2078题意:用21种球币:1^3, 2^3, ..., 21^3(数量不限)来组成数n来几种方法。——>>汝佳神牛白书动态规划中通过率最高的一题,却让我搞了大半夜也没弄出来,今早一试却AC!
2012-11-24 08:19:06 972
原创 zoj - 2048 - Highways
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1048题意:N个城镇之间已有M条高速公路,问还需建哪几条高速公路使所有的城镇都相通,并且路程最短。——>>这道题与zoj1203很是相像,不同的是这题已有互通的边。计算任意两个town之间的距离并存起来,排序,并查并记录要连的边。处理输出顺序,在这里,可能前
2012-11-22 22:24:13 1418
原创 zoj - 1203 - Swordfish
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1203题意:求连通n个城市的最短路径。——>>先把“任意”两点间的距离存到dist数组里,然后对其进行一次排序,接着开始对dist进行扫描,如果扫描的两个点的树根相同,说明这两个城市已经相连,就不用加距离了,如果扫描到的两个点的树根不相同,说明这两个
2012-11-21 18:32:36 1240
原创 zoj - 1828 - Fibonacci Numbers
遇到高精度的题目,曾经是多么的不快,可是一次又一次硬着头皮写了过后,觉得,高精度的题目也想像中的那么烦……这道大斐波数,更是乌龙,原来打算从右边找到不为0的位置来确定长度,不慎将 “!=” 写成了 “==” ,奇迹的是竟然AC了!后来发现,把数为0的位也相加,不影响结果,还省去了求长度的麻烦,当然,占的内存多了点,哈哈!#include #include using namesp
2012-11-20 16:54:08 1203
原创 zoj - 2833 - Friendship
这是一道简单的并查集题目,对于每个人,都先建一棵以他为根的根树,用数组实现树的思想,只要一个fa[]数组就够了,然后写一个寻找树根的函数,因为我们每次操作都是对树根进行的,再写一个判断函数,判断在同一棵树中的时候,返回1,不在同一棵树的时候,把层数小的并到层数大的树中,返回0,另外一个数组,保存以每个人为根的朋友数。就这样了,TLE!(不听老人言,用cin没用scanf) CE!(点
2012-11-19 18:51:21 1062
原创 zoj - 1091 - Knight Moves(广度优先地图记数法)
今天兴致再起,突发想法,用第三种方法,广度优遍历棋盘,每走一步,就在那个位记录下到达那个位置所需的步数,AC此题。#include #include #include using namespace std;typedef struct Tdata //定义结点数据类型{ int x; int y;}data;data end;
2012-11-14 10:43:24 1444
原创 zoj - 1940 - Dungeon Master
这是一个在三维空间中找出口的最短路径问题,从出发点开始,广度优先遍历地图,记录到达各地所需的步数,然后,AC!但要小心,别漏了外加一层墙,不然就WA了(不加的话最外一层判断能否外的时候怎么办,哈哈)。#include #include #include using namespace std;const int maxn = 30 + 10;typedef struct T
2012-11-13 20:47:20 1102
原创 zoj - 2412 - Farm Irrigation
连块问题,输入矩阵后,逐点扫描,该点若没未标记过,计数器就+1,然后深度优先遍历,标记这一大块的通路,接着,继续扫点。#include #include using namespace std;const int maxn = 50 + 10; //设置最大长度struct Tmap //定义结点数据类型,共有11种块,故开一个大小为12的数组,加1个四个方向
2012-11-10 00:47:01 590
原创 zoj - 1091 - Knight Moves(广度优先法)
这个问题的难处,对我而言在于计步数,开始时想在for(i = 0; i #include #include #include using namespace std;typedef struct Tdata //定义结点数据类型{ int x; int y;}data;int s[8][8]; //结点表:a1 对应 s[0][0
2012-11-09 18:37:44 900
原创 zoj - 1091 - Knight Moves(直接查找法)
#include #include using namespace std;int main(){ int f[8][8] ={{0, 3, 2, 3, 2, 3, 4, 5}, //因为是8*8的方阵,不是很多数,所以枚举了所有的情况,就是从点(0, 0)到(x, y)最少要几步 {3, 2, 1, 2, 3, 4, 3, 4},
2012-11-01 01:34:02 804
原创 zoj - 1204 - Additive equations
先分层,然后进行深度优先遍历。#include #include using namespace std; const int maxn = 30 + 10; //每组数据最多有30个数int n, ok, C[maxn], a[maxn]; //n为每组数据的个数,ok标记是否有等式存在,C用来存路径,a为输入的数组 bool search(int
2012-11-01 01:32:29 1807
原创 zoj - 2734 - Exchange Cards
题目简单,但是要注意格式,本人提交5次,前4次均PE#include using namespace std; const int maxn = 10 + 10;int n, m, cnt; typedef struct datatype //定义数据类型{ int val; int num;}data; data a[maxn];
2012-11-01 01:31:08 925
原创 zoj - 1076 - Gene Assembly
小心格式,又试了一次PE!!!#include #include using namespace std; const int maxn = 1000 + 10; int a[maxn], b[maxn], d[maxn], G[maxn][maxn]; //a为外显子的起始点,b为外显子的终止点,d为路径长度,G为图 int n, first;
2012-11-01 01:29:38 666
原创 zoj - 1788 - Quad Trees(四分树)
题意:输入一个整数1 <= k <= 100,为测试组数,接着每组测试数据先输入一个整数N,N <= 512且N是2的次幂,然后输入一个N*N的矩阵,矩阵元素的值为0或为1,如果整个N*N的矩阵是全0(或者全1),则记录为00(或者01),不用继续拆分;否则,记录为1,并将矩阵一分为四,西北、东北、西南、东南各一块,并按此顺序审查各分块是否都是全0或者全1, 不是的话继续四分,最后把所有的01
2012-11-01 01:26:56 3098
LA - 3135 - Argus.cpp
2013-01-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人