随笔分类 -  zoj

zoj 2100 Seeding
摘要:播种,唉,这道题想法一看就有,最长的那条dfs路,不过操作时很是令我难堪,刚开始:我想每各结点至多只走一步,肯定是一条dfs路,可惜,我没法保证结点走的那条路就是最优的那条,半天才看出这错误,后对dfs作一下小的剖析,似乎懂了,原理是记录:最长步数,然后判断。时间有限,打住#include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> char s[10][10]; int flag[10][10]; int dir[4][2] = {{1,0},{-1,0},{0 阅读全文

posted @ 2011-08-23 11:27 java课程设计例子 阅读(149) 评论(0) 推荐(0)

zoj 1709 Oil Deposits
摘要:千淘万漉虽辛苦,吹尽狂沙始AC啊,这道题经过慎重的分析之后,思路应该是相当清晰,可写代码时没有注意把定义过的全局变量在主函数中又定义了一次,结果输出总是有误,把主函数中的定义删去,立竿见影,一下AC,我也很是迷茫啊,谁能帮忙解释一下的话万分感激;这也算是我才开始写的DFS,回顾一下我的原理:在标志数组中把相连的油井赋值为1;进行几次DFS赋值就有几块油井,感觉还行吧#include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> #define M 100 in... 阅读全文

posted @ 2011-08-22 21:34 java课程设计例子 阅读(154) 评论(0) 推荐(0)

zoj 2165 Red and Black
摘要:走方格,这道题毫无疑问是BFS,不过做了好长时间,主要失误在一个if语句上,if语句竟然没加{ },看了半天才改过来思路是这样的,确定方向数组dir[][];然后明确题意需要什么队列里需要放什么;然后就是按照你的原理去写代码。这个题应该算是有一点简单,不过我调了好长时间#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>struct node{ int x,y;}q[400+10];struct node P,N;int dir[4][2]={{1,0},{-1 阅读全文

posted @ 2011-08-21 16:43 java课程设计例子 阅读(151) 评论(0) 推荐(0)

zoj 1091 Knight Moves
摘要:/*中午又熬了,做出来了,还值得小高兴一下,呵呵我的第一道宽度优先搜索注意横纵坐标及从'a''1'开始的吧感觉是个好题不过不会c++很吃力啊*/#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>int dir[8][2] = {{2,1},{2,-1},{-2,1},{-2,-1},{1,2},{1,-2},{-1,2},{-1,-2}};int flag[8][8];struct node{ int x,y,step;}q[1 阅读全文

posted @ 2011-08-21 14:57 java课程设计例子 阅读(139) 评论(0) 推荐(0)

zoj 1005 Jugs
摘要:本来以为今天中午这题不会写出来了,不过幸运AC了;先说一下,我知道这题好的方法是用搜索DFS(BFS貌似不爽吧);不过我还不会用DFS,确切说是不敢用没有大胆尝试,DFS,一定要试着写一写;说一下我的原理吧:小杯子往大杯子里pour,只要小杯子能装下,大的一定也能,所以我只让小的pour大的,并且只检验大的杯子里的数是否是目标值(应该迟早能达到目标值,只不过这种做法不是最优解而已);还有,分别用x,y来表示小大杯子里的实际水量很有助于理解哦#include<stdio.h>#include<stdlib.h>#include<string.h>#includ 阅读全文

posted @ 2011-08-19 13:52 java课程设计例子 阅读(159) 评论(0) 推荐(0)

zoj 1914 Arctic Network
摘要:找最小生成树的倒数第几长边的问题1,读入数据的处理,最终处理为结构体形式2,快排................................3,并查集找结点,并记录边长大小4,输出所求数据#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>typedef struct Tedge{ int from,to; int dist;}edge;edge dis[500*500]; //记录from点到to点的距离int ans[500+10]; //记录距离in. 阅读全文

posted @ 2011-08-19 10:15 java课程设计例子 阅读(120) 评论(0) 推荐(0)

zoj 1789 The Suspects
摘要:这道题是并查集的题,写过这道题之后,我明白了一点,就是从根上改变所属father域#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>int p[30000+100];int a[30000+100];int find(int x){ if(p[x] == x) return x; p[x] = find(p[x]); return p[x];}int main(){ int n,m,k,i,count,temp; while(scanf("%d%d& 阅读全文

posted @ 2011-08-19 10:11 java课程设计例子 阅读(159) 评论(0) 推荐(0)

zoj 1889 Ones
摘要:这道题开始看不懂题,英文学得不好,主要是当输入为9999时要输出36位的数,这个数很难保存到一个long long 型的变量中,所以考虑取模公式,还算是一道简单题吧,不过这上午半天就做了这一道题,难受#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>int main(){ int m,count; long long n; while(scanf("%d",&m)==1) { n = 1; count = 1; while(n % 阅读全文

posted @ 2011-08-18 11:26 java课程设计例子 阅读(117) 评论(0) 推荐(0)

zoj 2704 Brackets
摘要:输出最长的配对序列,brackets—括号忘了当时怎么讨论的了,总之用栈来存储序列的对应的标号,标号差值与序列的长度相关,然后从small 到big输出,只知道当时很纠结#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>#define maxn 100000char target[maxn+10];int stack[maxn+10];int top; //栈顶的元素的下标 void push(int x) //入栈 { s... 阅读全文

posted @ 2011-08-17 16:47 java课程设计例子 阅读(125) 评论(0) 推荐(0)

zoj 1406 Jungle Roads
摘要:从A到F找到最短路即可,由于我不会用prim算法只能用ku...算法,幸好这道题没有让输出路路径,所以用ku...算法也行我通常都是这样写的1.把边存起来2.快排3.并查集呵呵,过了,还行吧,对了输入注意用scanf中的%d前加一个空格#include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> typedef struct Tedge { int from,to; int dist; }edge; edge dis[100]; int N; int fa[30] 阅读全文

posted @ 2011-08-17 16:08 java课程设计例子 阅读(142) 评论(0) 推荐(0)