上一页 1 ··· 8 9 10 11 12 13 14 下一页
  2011年8月14日
摘要: poj1125题目大意:哎,本题读题就读了三遍才搞懂输入的究竟是什么东西,其实只要理解input和output就行了input是这样的,第一行输出经济人的个数,并且编号为1....n, 接下来n行每行第一个数为与n联系的人的个数m,接下来有m对,没对第一个表示与n联系的人的编号,第二个数表示两人取得联系的时间,toutput是这样的,输出从哪个人发出信息取得的总时间最短,并求出这个从该人向其他人发出信息最长时间解决:floyd算法求出各个点到其他点的最短时间,,并查集判断是否是连通的 ,代码比较简单就不加注释了#include <iostream>#include <cstd 阅读全文
posted @ 2011-08-14 16:17 猿类的进化史 阅读(329) 评论(0) 推荐(0) 编辑
摘要: poj1135题目大意:多米诺的关键点从1......n,把1推倒,求出最后倒下的是哪个,或者是两点中间倒下解决:迪杰斯特拉求出从1到各个顶点的最短代价(此处为时间),找出最短代价中用时最长的那个,然后再枚举出在边中间到下的最长时间是哪两个点比较下最长的即为所求的结果#include <iostream>#include <cmath>#include <cstdio>using namespace std;#define MAX 0x3f3f3f3fconst int N=505;int cost[N][N];bool vis[N];int dist[N] 阅读全文
posted @ 2011-08-14 11:02 猿类的进化史 阅读(468) 评论(0) 推荐(0) 编辑
  2011年8月13日
摘要: hdoj2544题目大意:给出两点和两点之间的时间代价,求出从起点到终点的最小时间解决:与hdoj 1874一模一样,地杰斯特拉算法求距离#include <iostream>using namespace std;int n;#define N 100#define MAX 0x3f3f3f3fint cost[N+10][N+10];int vis[N+10];int dist[N+10];void init(){ for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) cost[i][j]=MAX;}void dijikstra() 阅读全文
posted @ 2011-08-13 11:10 猿类的进化史 阅读(168) 评论(0) 推荐(0) 编辑
  2011年8月12日
摘要: hdoj 1874题目大意:给出一个有向图,求从某点到另一点的最短路径解决:迪杰斯特拉求単源点到其它点的最短路径#include <iostream>using namespace std;#define N 200#define MAX 0xffffffint cost[N+10][N+10];int vis[N+10];int dist[N+10];int n;void init(){ for(int i=0;i<n;i++) for(int j=0;j<n;j++) cost[i][j]=MAX;}int dijistra(int start,int end){ 阅读全文
posted @ 2011-08-12 23:10 猿类的进化史 阅读(319) 评论(0) 推荐(0) 编辑
  2011年8月11日
摘要: 对无向图:定义:给定无孤立结点图G,若存在一条路,经过图中每条边一次且仅仅一次,该条路称欧拉路,若存在一条回路,经过图中每边一次且仅仅一次,该回路称为欧拉回路。具有欧拉回路的图称为欧拉图,不是柏拉图。定理:无向图G具有一条欧拉路,当且仅当G是连通的,且有0个或者是两个奇数度得结点。推论:无向图G具有一条欧拉回路,当且仅当G是连通的,并且所有结点的度数均为偶数。一笔画问题就是典型的这类问题:要判定一个图G是否可一笔画出,有两种情况, 从图中某一个结点出发,经过图G中每个边一次再回到该结点,或者是从G中某一个结点出发,经过G中每边一次且仅一次到达另一个结点,分别对应着欧拉回路和欧拉路的问题对有向图 阅读全文
posted @ 2011-08-11 13:24 猿类的进化史 阅读(1068) 评论(0) 推荐(0) 编辑
  2011年8月10日
摘要: hdoj1251题目大意: 求出以某字符串为前缀的单词的数量解决:trie树#include <iostream>#include <cstring>using namespace std;struct node{ int cnt; int next[26];};node trie[3000000];int top=0;void init(){//初始化字典树,0号为根节点,只需将next值置为0就行了 memset(trie[0].next,0,sizeof(trie[0].next)); top=1;}void insert(char *str){ int i=0, 阅读全文
posted @ 2011-08-10 17:29 猿类的进化史 阅读(277) 评论(0) 推荐(0) 编辑
摘要: hdoj 1272题目大意:给出一个图,注意这是个有向图(小希希望任意两个房间有且仅有一条路径可以相通(除非走了回头路)),由于这个错误调试了一上午解决:与poj 1308 一模一样,用并查集判断图的连通性,统计结点和边的个数来判断是否有回路#include <iostream>#include <set>#include <utility>using namespace std;int num[100005];bool mark[100005];int Max;set<pair<int,int> > s;int find(int x 阅读全文
posted @ 2011-08-10 12:57 猿类的进化史 阅读(543) 评论(0) 推荐(0) 编辑
  2011年8月9日
摘要: hdoj1019题目大意:给多个数,求这几个数的最小公倍数解决:递归#include <iostream>using namespace std;int gcd(int a,int b){ if(b==0)return a; else return gcd(b,a%b);}__int64 lcm(int num[],int n){ if(n==1)return num[0]; else { __int64 ret=lcm(num,n-1); return ret* num[n-1] /gcd(ret,num[n-1]); }}int main(){ int icase; cin&g 阅读全文
posted @ 2011-08-09 23:40 猿类的进化史 阅读(331) 评论(0) 推荐(0) 编辑
摘要: poj 3984题目大意:解决:bfs,关键是对路径的保存#include <iostream>#include <cstring>#include <vector>#include <queue>using namespace std;int map[5][5];struct node{ int x,y;};//此处定义了一个存放上一个坐标的路径结构体,采用递归输出node path[5][5];queue<node> q;int sx=1,sy=1;int dx[]={1,-1,0,0};int dy[]={0,0,1,-1};i 阅读全文
posted @ 2011-08-09 23:29 猿类的进化史 阅读(301) 评论(0) 推荐(0) 编辑
摘要: zoj1711题目大意:给出一个和,求出所给数相加等于这个和的所有不同情况解决:The numbers in each list appear in nonincreasing order, and there may be repetitions.有序是前提,由于有4 6 4 3 2 2 1 1这样的数据存在,我们必须判断重复的等式6=3+2+1(第一个1)或者是6=3+2+1(第二个1)如何判断呢见代码//#include <iostream>#include <cstdio>#include <cstring>using namespace std;i 阅读全文
posted @ 2011-08-09 23:15 猿类的进化史 阅读(198) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 下一页