
zoj
文章平均质量分 52
晃晃--
这个作者很懒,什么都没留下…
展开
-
zoj 2857 Image Transformation水题
虽然是道水题,不过也复习了二维数组名作函数参数的用法,也算有点收获吧#includevoid xx(int a[][102],int n,int m){ int i,j; for(i=0;i<n;i++) for(j=0;j<m;j++)原创 2011-08-10 19:13:24 · 998 阅读 · 1 评论 -
zoj1709 Oil Deposits (DFS)递归算法
一道DFS题目,参考了书本上递归求解DFS的思路用递归做了一下,感觉比非递归简洁多了。。。#include#include#include#define STOP system("pause")int a[105][105],vis[105][105];void dfs原创 2011-09-17 11:52:15 · 690 阅读 · 0 评论 -
zoj 2165 Red and Black (BFS)
雨不停的下了好几天了,烦躁的心也渐渐平静下来,耳畔的轻音乐依旧。。。。静下心来做题,还算不错,有一道不会,先放过去了,这道题不快不慢得,一次就AC,感觉很好,呵呵。。。思路: 1.也算是队列吧,只是入队和出队时,把坐标也一起随进去了; 2.b数组用原创 2011-08-21 14:21:22 · 615 阅读 · 0 评论 -
zoj 1940 Dungeon Master(BFS)
三维的,思路和以前的是一样的,不过最初没注意到head和rear没初始化,SF了好几次(我以为是数组开小了呢,一直开大100W都还是错,后来才发现。。。。。。)那个用循环来控制情况的方法用着很爽,6种情况弄个循环搞定,呵呵,不错不错。。。#include#include原创 2011-08-21 18:07:18 · 852 阅读 · 0 评论 -
zoj 1730 Crazy Tea Party(水题吗?我不会啊!!!)
这道是和zoj2376一同放过去的题。。。。。。。 类似冒泡程序如果所有人是线性排列,那我们的工作就是类似冒泡程序做的工作:1,2,3,4,5变为5,4,3,2,1 ,耗时n(n-1)/2但是出现了环,也就是说1,2,3,4,5变为3,2,1,5,4也可满足条件原创 2011-08-22 11:23:36 · 1034 阅读 · 0 评论 -
zoj 1091 Knight Moves (BFS)(情况用循环控制,值得学习啊)
刚开始看不懂题,后来查了查才明白这颗棋子是走“日”字的。。。。接着,那就会出现8种情况。。。无语,不过,有了2165的模板,我居然慢悠悠的把这八种情况罗列出来并且AC了。。 上一篇2165就想把这种相同部分写成函数来调用,可是又发现,相同部分里,if语句中有原创 2011-08-21 16:23:13 · 614 阅读 · 0 评论 -
zoj 2376 Ants (水题,刚开始不会)
做BFS蚂蚁找家那道题,突然想起来前边beginner problem里还有道蚂蚁题放过去了,就又去看了看,我靠,果然是到水题啊!!!最开始时只会算最小时间,最大时间感觉很麻烦。。。现在又一想: 就算碰头了,那么两边还是各有一只蚂蚁再走,这不相当于没碰头啊!!!!天原创 2011-08-22 11:00:35 · 769 阅读 · 0 评论 -
zoj 1005 Jugs(数学做法,还可以用BFS(我不会))
首先注意这是一道 Special Judge题目,方案可能多种,找出一种即可本来是一道练习BFS的题,由于不会记录方案,就找了别人的思路,惊喜的发现,利用数论方面的知识可以轻松解决:我们只需要不停地用小桶给大桶里灌水,如果大桶水==N则终止,如果大桶满了就把大桶水倒掉继原创 2011-08-22 15:37:21 · 697 阅读 · 0 评论 -
zoj 1025 Wooden Sticks (DP子序列)(第100,纪念一下)
几天没做LIS问题了,变得好生疏啊!首先声明,此种思路是从别人那看到的,感觉很神奇,就按照他的方法试了试,AC了,不过我还不明白到底为什么这样做就是答案,此种方法大致是:把序列按照 l,w的顺序二级排序(升序)后,再求出w的最大下降子序列长度L,则L就是所要求的值。。。。我只原创 2011-08-22 17:42:13 · 909 阅读 · 0 评论 -
zoj3204 Connect them 最小生成树 MST
这道题,有几个地方,来看看:#include#includetypedef struct{ int x,y; int w;}NODE;typedef struct{ int x1; int x2;}xx;xx原创 2011-08-14 14:37:48 · 946 阅读 · 0 评论 -
zoj 3019 Puzzle (4)
又是一大遗憾,其实比赛时很早就看着道题了,当时想是不是排一下序就可以解决问题,但又想了想却不知道想哪了,就放过了,后来看做出来的不少,就回头看着道题,试着写了写,一次就AC了。。。。看来还是没经验啊。。。#include#includeint cmp(const void *原创 2011-08-17 14:23:57 · 598 阅读 · 0 评论 -
zoj 3321 Circle (4)
这道题,我用的是kruskal里的东西来做的,很遗憾的是当时或许太激动了,把m错写成n了,找了好久都没找到错误在那,最后提交4次才过,可惜可惜啊!#includetypedef struct{ int x; int y;}xx;xx node[30];i原创 2011-08-17 14:17:44 · 968 阅读 · 0 评论 -
zoj 2947 Abbreviation 水题
发现了,水题大多都是在训练语言。。。。。。。#include#includechar a[100];void xx(char x[]){ int len,i,k=0; gets(a); len=strlen(a); for(原创 2011-08-11 10:06:36 · 586 阅读 · 0 评论 -
zoj 2812 Quicksum 水题
没什么可说的,这道题后,除了几道题跳过去以外,The beginner problem基本上算是刷完了。。。。#include#includeint main(){ int i,len,sum; char a[300]; while(gets(原创 2011-08-11 10:34:43 · 678 阅读 · 0 评论 -
zoj 1406 Jungle Roads 最小生成树
伸个懒腰,哈哈,第一个最小生成树写出来了!!!!虽然昨天刚刚写了并查集,但今天脑袋就是打不过来那个弯了,索性就用了标志数组,第一次试调的时候程序出了bug,然后一步一步分析,几乎重头到尾分析透了,终于找出bug了,一开始第58行是这样的if(tag[u]!=tag[v])原创 2011-08-10 17:30:25 · 649 阅读 · 0 评论 -
zoj2878 Parking 水题
刚看时愣了一下,仔细想想,如果骑到第一个店还不下车,所走路必定是要变多的。。。。。啊。水题刷着真舒服。。#includeint main(){ int i,t,n,a[100],max,min; scanf("%d",&t); while(t--) {原创 2011-08-10 21:31:29 · 528 阅读 · 0 评论 -
zoj 1789The Suspects 并查集
哈哈,第一个并查集终于写出来了,虽然从昨天看到现在,不现在才完全搞清楚过程并第一次用代码实现,好兴奋#includetypedef struct //定义树节点 ,本题中,集合的名字用代表人的数字 ,node[3]代表代号为三人的人所在的树节点 { int fath原创 2011-08-09 16:44:22 · 1387 阅读 · 0 评论 -
zoj1372 Networking 最小生成树
最初,为了熟悉qsort用法,排序过程用了qsort,然后Floating Point Error 了7次。。。。。。终于,当我把可疑的地方找遍后,无果,于是果断放弃qsort,改为选择排序,终于出现了WA,天啊,第一次见到WA却是这么的高兴。。。后来,WA了5次,把可疑的地方找原创 2011-08-13 16:03:29 · 1128 阅读 · 1 评论 -
zoj 2326 Tangled in Cables 最小生成树
嗯,写最小生成树终于有感觉了,一次就AC了,比前两道好多了,不过,这次我没有用qsort,还是用了一般的排序,看来qsort是得好好学学了,这样,我的代码可以短很多,看着也会舒服了。。。#include#includetypedef struct{ int原创 2011-08-13 17:40:43 · 1043 阅读 · 0 评论 -
zoj 1037 Gridland
不知道哪根筋动了,又看到了这道所谓的水题........看别人代码之前我可不是这样想的。。。当时哥也找了个规律,就是不对。。。。。。。是知道会这么简单呢?我反正当时没想出来。。。规模是俩奇数时,就n*m-1+1.41。。。。没看出来,真没看出来啊#include#define原创 2011-08-14 16:01:07 · 603 阅读 · 0 评论 -
zoj 1671 Walking Ant (BFS)
昨天写了一晚上,以为还是一般的BFS,可是一直到睡觉时,样例还没过去。。。。当时就想删了重写,冲动是魔鬼啊!幸好没冲动,留下来了,现在又看,恩,只是多加了一个判断,昨天的功夫没白费。。说下昨天没考虑到的情况:我原是用HP[8][8]数组来代表蚂蚁走到每个格子时候的HP值,原创 2011-08-22 16:25:13 · 572 阅读 · 0 评论 -
zoj2100 Seeding (DFS递归+回溯)
对于递归+回溯,我确信这道题让我又理解的更加深刻了,自己想了好几天,设计了好多次dfs,总是差一点,终于还是和队友讨论了,这个弯才转过来,自己想了好多次了,也具体的画了一下代码执行过程,顿觉茅舍顿开啊!#include#include#include#define S原创 2011-09-22 18:41:11 · 958 阅读 · 0 评论 -
zoj 2514 Generate Passwords 水题
可恶的字符串!!水题,但还是WA了无数次啊!为什么用个结构体就是过不去,换成数组就a了。。不解释。#include#include int main() { char u[1000][100],p[1000][100]; int flag[1000]; int n; while(scanf("%d",&n)&&n) {原创 2011-10-27 11:24:24 · 549 阅读 · 0 评论 -
zoj 1057 Undercut 水题
不解释#includeint main(){ int i,n,a[25],b[25],suma,sumb; scanf("%d",&n); while(n) { suma=sumb=0; for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n;i++) scan原创 2011-10-27 12:49:12 · 741 阅读 · 0 评论 -
zoj1372 Networking 最小生成树Prime算法
用prime算法写了最小生成树,忽然发现比kruskal要简单许多,这道题以前刷过,现在用prime写感觉挺简单#include#include#define INTMAX 1000000int n,r,map[52][52],a[55],min;void init(){ int i,j; min=0; for(i=1;i<=n;i++) { for(j=1;j<原创 2011-12-09 15:33:50 · 718 阅读 · 0 评论 -
zoj 2091
直接写的,TLE,搜了一下,有证明:对于每一个a[ i ],一定是从 a[ i ] 加到a[ n ]再求平均这样得到的平均数最小。从所有的平均值中找最大的就行了。至于怎么证明的,真心不想看。。。。。#includeint a[10000];int main() { int n,i,j,len; double sum,k; while(scanf("%d",&n)!=原创 2012-05-02 21:06:40 · 645 阅读 · 0 评论 -
zoj1076 Gene Assembly 活动安排 dp
题目总不让人省心,大致有两种,一种是题目很好懂,程序不好写;另一种是题目不好懂,程序很好写。。。题简单了就会在语言上麻烦你。。。回顾qsort用法,第一个参数为数组名,第二个参数为元素个数,第三个为sizeof ( 数组类型),第四个为cmp函数。#include#includetypedef struct node{ int beg; int end; int x;原创 2012-05-03 12:22:11 · 1145 阅读 · 0 评论 -
zoj 1074 最大子段和的推广 dp
这道题是算法书上的例子,就照办书上的算法了。求最大子矩阵和。#includeint a[102][102];int b[102];int max1(int n){ int sum,x,i; sum=0,x=0; for(i=0;i<n;i++) { if(x>0) x+=b[i]; else x=b[i]; if(x>sum) sum=x;原创 2012-05-03 13:08:30 · 585 阅读 · 0 评论 -
zoj 1004 dfs+栈
突然想练练了,就随便看了一道oj上的题。好久没做题了,差不多忘完了,想到了用dfs,实现的时候却有些原创 2013-08-08 01:26:04 · 1305 阅读 · 0 评论 -
zoj 1006
给出plaintext 求 ciphertext#include#include//这个程序,给出plaintext 求 ciphertext int main(){ int k,n,i,temp,c[75],p[75]; char ct[75],pt[75]; ct[0]='_',ct[27]='.'; for(i=1;i<=26;i++) ct[i]='原创 2013-10-10 23:48:54 · 1034 阅读 · 0 评论 -
zoj 3166 Lazy Tourist 最短路 floyd
我是这样理解的:floyd找每两点之间最短路,最后在有所有有hotel的节点中,找出w[i][i]最小的一个。。。。。需要注意的是,在初始化中,w[i][i]应初始化为无穷大,即认为city和原city间无路(因为要出去)。恩,还是一道floyd的水题。。。不过我现在只能刷水题了。。。。#include#include#define INF 1000000int w[101原创 2011-10-26 10:58:59 · 666 阅读 · 0 评论 -
zoj 1221 Risk 最短路 floyd
仔细读题,发现:把边权值设为1,那么就转换成了两点间的最短路问题了。。。一激动,用了Dijkstra,并且文件结束!=EOF忘写了,TLE。。。然后改用floyd,顺利AC。。。#include#includeint w[21][21];int main(){ int i,j,t,u,n,ncase=1; while(scanf("%d",&t)!=EOF) {原创 2011-10-26 10:05:59 · 1648 阅读 · 0 评论 -
zoj 1092 Arbitrage(最短路,floyd)
最短路的floyd算法,具体说,理解的还不透彻啊!!!还得刷,还得刷!刚开始数据输入和记录方法采用的是zoj 1952的方法,但是改了好几次一直WA。。。和媛姐的对照了一下,改了改数据记录方式。。。。#include#includetypedef struct ss{ char s[100];}node;node a[500];int n,r,p,tx,ty;ch原创 2011-10-25 12:43:15 · 692 阅读 · 0 评论 -
zoj 2850 Beautiful Meadow 水题
#includeint main(){ int i,j,m,n,ok,num,a[12][12]; while(scanf("%d%d",&n,&m)&&n) { ok=1; num=0;原创 2011-10-04 12:38:51 · 764 阅读 · 0 评论 -
zoj 1582 Careless Tony 水题
#include#includeint main(){ int n,each,i,time,flag,len1,len2; char fal[85],tru[85]; scanf("%d",&n); while(n--)原创 2011-10-04 14:14:17 · 758 阅读 · 2 评论 -
zoj 1002 Fire Net dfs
做完这道题,我发现自己越来越喜欢递归了。最初就是理解不了,现在却觉得用递归解决问题非常方便,哈哈!最初这道题一会就把代码写好了,样例也过了,但就是WA。。。想了又想,还是没找出错误,最后搜了一下这道题的数据发现: 3原创 2011-10-05 21:32:27 · 917 阅读 · 2 评论 -
zoj1457 Prime Ring Problem DFS
依然是dfs,注意递归边界,恩#include#includeint n,num,a[20],isp[41],vis[20];int is_prime(int x){ int i; for(i=2;i*i<=x;i++) if(x%i==0)原创 2011-10-07 19:01:12 · 710 阅读 · 0 评论 -
zoj 1438 Asteroids! BFS
BFS题目,现在又做了,还是感觉这种题好玩,呵呵!刚开始没看清题目The first coordinate in a set indicates the column. Left column = 0.The second coordinate in a set in原创 2011-10-07 19:23:23 · 513 阅读 · 0 评论 -
zoj1909 Square dfs+优化(参考别人的)
本以为自己对dfs了解的可以了,可是这道题,我还是参看了别人的代码,自己设计的dfs不论怎样跳出,一直TLE。。。伤不起啊。。。里面是各种return。。。。。。#include#include#include#includeusing namespace std;int vis[20],len[20],n,aver;int dfs(int i,int j,int原创 2011-10-20 18:46:23 · 843 阅读 · 0 评论 -
zoj 1952 Heavy Cargo 最短路 Dijkstra
我写的第二道最短路。。。不得不承认,我对最短路理解的还是不透彻。。纠结了好长时间,总感觉不难不难但就是写不出来,对,就是这种感觉。。不过一天的时间没白费,一次就AC啦。。。程序里input()函数的作用: 将输入城市名转化为数字0~~n-1,这样接下来的处理会方便很多。#include#includetypedef struct ss{ char s[31];}原创 2011-10-21 19:48:15 · 716 阅读 · 0 评论