2013年8月8日

POJ2570, ZOJ1967

摘要: 题意:给你 n个点 m条边 每条边有些公司支持 问 a点到b点的路径有哪些公司可以支持 这里是一条路径中要每段路上都要有该公司支持 才算合格的一个公司 分析:map[i][j] 等于 i直接到 j 的 公司数,加上i经过中间节点到 j 的 公司数 因为每两个站点间的公司数最多为26个,所以可以用位运算, 用二进制去表示每个公司 1表示该路径上有该公司 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define N 205 8 int n; 9 int map[N... 阅读全文

posted @ 2013-08-08 23:58 爱∪ 阅读(148) 评论(0) 推荐(0) 编辑

ZOJ3088

摘要: 题意:给定同一个图上的两种路径,求出从某点出发到另一点的路径长度来回长度之比最大的情况,最后还要输出路径。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define inf 9999999 9 #define N 1005 10 #define M 1005 11 struct Edge 12 { 13 int v,w,next; 14 Edge(){} 15 Edge(int V,int W,int ... 阅读全文

posted @ 2013-08-08 14:03 爱∪ 阅读(214) 评论(0) 推荐(0) 编辑

POJ3259(spfa判负环)

摘要: 思路:如果某个顶点入队列的次数超过了n,那么久存在负环! 记得清空队列 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define inf 9999999 9 #define N 52010 #define M 552011 int size,n,m,l;12 int dis[N],vis[N],head[N],in[N];13 struct Edge14 {15 int v,w,next;16 Edge(){}17 Ed... 阅读全文

posted @ 2013-08-08 01:38 爱∪ 阅读(169) 评论(0) 推荐(0) 编辑

POJ3268

摘要: 题意:给你n个奶牛,m个农场,在x农场开派对,问你所有奶牛中必须花费最大的时间 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define M 100005 9 #define N 100510 #define inf 999999911 int size1,size2,n,m,x;12 int dis[N],vis[N],head1[N],head2[N];13 int sum[N];14 struct Edge15 {16 int v... 阅读全文

posted @ 2013-08-08 00:52 爱∪ 阅读(193) 评论(0) 推荐(0) 编辑

2013年8月6日

ZOJ1092 POJ2240

摘要: 题目:给出几个国家,并给出每个国家之间的汇率,求这几个国家构成的图中所形成的环中,问是否存在套汇的可能,即自身汇率大于1 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 35 9 #define M 100010 map mp; //map 映射 11 struct Edge12 {13 int u;14 int v;15 double w;16 }edge[M]; // 结构体存边 17 dou... 阅读全文

posted @ 2013-08-06 14:42 爱∪ 阅读(660) 评论(0) 推荐(0) 编辑

2013年8月4日

ZOJ1298 POJ1135

摘要: 题意就不说了。。1.如果最后倒下的牌是关键牌,其时间及位置是第一张关键牌到其他关键牌中最短路径的最大值及对应的关键牌2.最后倒下的牌是两张关键牌之间的某张普通牌,时间t = (dis[i] + dis[j] + g[i][j])/2.0;位置在这两张关键牌之间3.比较上面两种情况的最大值,然后决定取那种方法 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 #define inf 9999999 9 #define N 50510 double dis[N];11 in... 阅读全文

posted @ 2013-08-04 07:08 爱∪ 阅读(168) 评论(0) 推荐(0) 编辑

2013年8月2日

SRM587 div2

摘要: 250:题意 给你两个字符串,问你B串是否可以由A串任意插入z得到 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 class InsertZ11 {12 public:13 string canTransform(string , string );14 };15 16 string InsertZ::canTransform(string init, string goal)17 {18... 阅读全文

posted @ 2013-08-02 16:35 爱∪ 阅读(213) 评论(0) 推荐(0) 编辑

2013年7月31日

POJ1679判断最小生成树是否唯一

摘要: 判断最小生成树是否唯一的思路: (1) 对图中每条边,扫描其它边,如果存在权值相同的边,则对该边作标记 (2) 然后用Kruskal算法求MST (3) 求得MST后,如果该MST中为包含作了标记的边,即可判定MST唯一; 如果包含作了标记的边,则依次去掉这些边再求MST,如果求得的MST 权值与原MST的权值相同,即可判定MST不唯一 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define N 105 8 #define M 10050 ... 阅读全文

posted @ 2013-07-31 11:39 爱∪ 阅读(160) 评论(0) 推荐(0) 编辑

2013年7月30日

ZOJ2158,POJ1789

摘要: 题意:给你n辆车,每辆车有7个字符的编号,他们之间的距离值等于他们中不同字符的位置数目,然后叫你求最高优劣值的派生方案 1/Q,Q就要最小,求最小生成树 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define inf 999999 8 #define N 2013 9 int n,dis[N],vis[N],g[N][N];10 char s[N][10];11 12 int prim(int st)13 {14 for(int i=1; i g[i][id... 阅读全文

posted @ 2013-07-30 00:51 爱∪ 阅读(183) 评论(0) 推荐(0) 编辑

ZOJ1586

摘要: 题意:有n个人,每个人都有自己喜欢用的网络适配器,要你求连接所有人的最小费用 构图的时候每条边的权值等于 两个人用的适配器的费用加上两个人之间网线的费用,然后求最小生成树 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define inf 9999999 8 #define N 1005 9 int n,g[N][N],vis[N],dis[N];10 int cos[N];11 12 int prim(int st)13 {14 for(int i=1; ig... 阅读全文

posted @ 2013-07-30 00:19 爱∪ 阅读(197) 评论(0) 推荐(0) 编辑

导航