
基础图类
文章平均质量分 76
code_mryxj
这个作者很懒,什么都没留下…
展开
-
poj1094Sorting It All Out(拓扑排序)
题意:明确告诉你多少个点,多少条边,a有点不同时,这里判断是一条一条加入图中,如果已经构成一个唯一的拓扑排序,后面的边就忽略(不造有这个关系W了好多次),并输出到第几条边构成拓扑排序,当然很容易想到如果一条一条检测时已构成环,也可以直接判断此图无法构成拓扑排序,输出从第几条边输入时就不能构成拓扑排序。最后只有把所有边输入完后并没有出现以上情况,才能判断构成的拓扑排序是不是唯一的。#incl原创 2015-11-08 17:48:48 · 534 阅读 · 0 评论 -
poj2230 Watchcow
题意:输出一条经过每条边有且只有两次的通路,把这个无向图当做有向图dfs搜一次欧拉回路。但是注意邻接矩阵存图MLE,所以我选择vector处理的邻接表。#include<cstdio>#include<vector>#include<stack>#include<cstring>#include<iostream>using namespace std;const int maxn=10原创 2016-01-22 18:20:32 · 140 阅读 · 0 评论 -
HDU 2647 Reward(拓扑排序)
题意:春节来临给员工发工资,有n名员工,m个要求,每个要求是 a b,意思a的工资要比b多。每个员工最低工资是888.问总共发放工资的最低是多少? 思路:从最低工资拓扑排序.排序的方向就是从低到高,(开始方向建错,W好几发)。最低888,依次+1,没有要求就是统一等级。#include<bits/stdc++.h>using namespace std;int v[10010],ans[100原创 2016-04-21 18:54:42 · 363 阅读 · 0 评论 -
hdu1811 Rank of Tetris(并查集+拓扑排序)
题意:中文题意,就不多解释。 思路:这题比普通的拓扑排序多了一个相等的关系,而且当拓扑排序的结果不唯一的时候是输出”UNCERTAIN”. 然后这题处理相等的关系,由于是可以传递特性,果断选择并查集,将相等绑定在一起。然后把相等看成一个整体,对这些整体一块块拓扑排序。 当队列里出现两个以上入度为0的块,就说明解不唯一。 当最后还剩下没有排序的块,就说明排序矛盾。 没有出现以上情况就是ok#原创 2016-04-21 19:11:35 · 383 阅读 · 0 评论 -
uva10129
题意:给你一些单词,问是否存在按照这个单词尾字母和下个单词首字母相同的顺序拍而所有单词。 思路:把每个单词看做一条边,就变成了在有向图上判断是否存在一个欧拉道路。 欧拉图的定义: 有向图满足欧拉道路的条件就是:1.连通.2.图中入度不等于出度的点最多两个,一个入度=出度+1,另一个入度+1=出度。 图的连通性用并查集或者dfs判断,再根据欧拉道路的性质判断。#include<bits/std原创 2016-07-06 19:37:40 · 1122 阅读 · 0 评论 -
Codeforces Round #369 (Div. 2) A~D
前言:这场又蹦了。。。还是老老实实补题吧。 A:水题就不说了#include<bits/stdc++.h>#define rep(i,a,n) for (int i=a;i<n;i++)using namespace std;string s[1010];int main(){ int n; while(cin>>n){ int ans=0;原创 2016-08-30 23:51:37 · 378 阅读 · 0 评论 -
最短最优升级路径(某公司面试编程题)
最短最优升级路径 时间限制:C/C++语言 1000MS;其他语言 3000MS 内存限制:C/C++语言 65536KB;其他语言 589824KB 题目描述: 游戏网站提供若干升级补丁,每个补丁大小不一,玩家要升级到最新版,如何选择下载哪些补丁下载量最小。 输入 第一行输入 第一个数为用户版本 第二个数为最新版本,空格分开 接着输入N...原创 2016-09-19 21:09:47 · 2319 阅读 · 1 评论 -
邻接表的两种模拟写法(模板)
前言:邻接表一直图方便 vector实现,从来没有被卡住时间。直到遇到poj3107. 1.vector:struct edge{ int to,w;//更多关于边的属性可以自己添加,to连接的点,w权值。};vector<edge>G[MAX_N];//MAX_N点个数加边操作: G[s].push_back(edge{t,w}); //建一条从s到t权值为w的边遍历: for(v原创 2016-09-29 23:26:34 · 1936 阅读 · 0 评论 -
hdu3018Ant Trip(欧拉道路的判断)
题意:给你点和边,问至少可以几笔把所有边画完,孤立的点没有边,不需要画。 思路:在无向图里,满足一笔画就是欧拉图,奇数点度的数量两个或无,如果出现更多奇度点,说明不能一笔画,而一笔画可以最多消掉两个奇度的点,所以每个连通块里需要画的次数就奇度点个数/2。 于是,整幅图需要画的次数,等于所有奇度点个数之和/2+欧拉图的个数。</c++>#include<bits/stdc++.h>typede原创 2016-01-22 15:34:04 · 570 阅读 · 0 评论