===图论===
文章平均质量分 51
LOI_Sherlock
日拱一卒,功不唐捐。
展开
-
【bzoj 1821】 [JSOI2010]Group 部落划分 Group
Description聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落之间则经常发生争斗。只是,这一切都成为谜团了——聪聪根本就不知道部落究竟是如何分布的。 不过好消息是,聪聪得到了一份荒岛的地图。地图上标注了N个野人居住的地点(可以看作是平面上的坐标)。我们知道,同一个部落的野人总是生活在附近。我们把两个部原创 2017-10-22 16:19:20 · 395 阅读 · 1 评论 -
【codevs 1316】文化之旅
题目描述 Description 有一位使者要游历各国,他每到一个国家,都能学到一种文化,但他不愿意学习任何一种文化超过一次(即如果他学习了某种文化,则他就不能到达其他有这种文化的国家)。不同的国家可能有相同的文化。不同文化的国家对其他文化的看法不同,有些文化会排斥外来文化(即如果他学习了某种文化,则他不能到达排斥这种文化的其他国家)。现给定各个国家间的地理关系,各个国家的文化,每种文化对其他文化原创 2017-10-31 14:34:28 · 361 阅读 · 0 评论 -
【模板】迪杰斯特拉
模拟过程//基于1557#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<queue>using namespace std;const int maxn=100000+10;int first[maxn<<1],nxt[maxn<<1],tot;int dis[maxn];原创 2017-09-24 21:46:13 · 390 阅读 · 0 评论 -
【模板】tarjan
完整的模拟过程void dfs(int u){ low[u]=dfn[u]=++dfs_clock; s.push(u); for(int i=first[u];i!=-1;i=nxt[i]) { int w=l[i].t; if(!dfn[w]) { dfs(w); l原创 2017-09-19 19:27:10 · 362 阅读 · 0 评论 -
【codevs 2833】奇怪的梦境
题目描述 Description Aiden陷入了一个奇怪的梦境:他被困在一个小房子中,墙上有很多按钮,还有一个屏幕,上面显示了一些信息。屏幕上说,要将所有按钮都按下才能出去,而又给出了一些信息,说明了某个按钮只能在另一个按钮按下之后才能按下,而没有被提及的按钮则可以在任何时候按下。可是Aiden发现屏幕上所给信息似乎有矛盾,请你来帮忙判断。输入描述 Input Description 第一行,原创 2017-09-02 21:46:11 · 522 阅读 · 0 评论 -
【codevs 1077】多源最短路
题目描述 Description 已知n个点(n<=100),给你n*n的方阵,a[i,j]表示从第i个点到第j个点的直接距离。 现在有Q个询问,每个询问两个正整数,a和b,让你求a到b之间的最短路程。 满足a[i,j]=a[j,i];输入描述 Input Description 第一行一个正整数n,接下来n行每行n个正整数,满足a[i,i]=0,再一行一个Q,接下原创 2017-07-15 13:42:48 · 309 阅读 · 0 评论 -
【codevs 1557】热浪
题目描述 Description 德克萨斯纯朴的民眾们这个夏天正在遭受巨大的热浪!!!他们的德克萨斯长角牛吃起来不错,可是他们并不是很擅长生產富含奶油的乳製品。Farmer John此时以先天下之忧而忧,后天下之乐而乐的精神,身先士卒地承担起向德克萨斯运送大量的营养冰凉的牛奶的重任,以减轻德克萨斯人忍受酷暑的痛苦。FJ已经研究过可以把牛奶从威斯康星运送到德克萨斯州的路线。这些路线包括起始点和终点先原创 2017-07-15 23:14:35 · 422 阅读 · 0 评论 -
临接表存图
struct edge{ int f,t,v;}l[maxn];void build(int f,int t,int v);{ l[++tot]=(edge){f,t,v}; next[tot]=first[f]; first[f]=tot;}原创 2017-04-22 17:11:42 · 386 阅读 · 0 评论 -
【复习记录】最小/大生成树
概念在一张图上确定n-1条边,将n个点全部连接。n-1条边就构成一个生成树。 顾名思义,最小生成树就是最小的n-1条边,最大生成树就是最大的n-1条边。 听说Prim怎样优化都不如Kruscal快,所以只学了后者。实现用并查集维护联通关系。 求最小生成树时,先将边从小到大排序。之后遍历每条边,如果一条边的起点和终点不在同一个集合中,将这条边加入答案,合并两个端点。直到加到n-1条边时结束。原创 2017-11-04 12:22:54 · 402 阅读 · 0 评论 -
【复习记录】树上倍增
概念树上倍增一般是求lca。在找lca的时候可能还会求一下最大值最小值什么的。 lca–最近公共祖先。 不再急急忙忙地刷题找题解了突然开始思考这个东西的意义。。。 倍增求lca的过程相当于在树上找最短路的过程。 小机房的树明明可以最短路解决呀,, 货车运输也可以在最大生成树上求最短路呀,, 当然是为了省时间。 spfa的时间复杂度是O(kE),k为所有顶点进队的平均次数。这样就t了。原创 2017-11-04 15:08:48 · 494 阅读 · 0 评论 -
【复习记录】Tarjan
概念Tarjan是在有向图中找环的算法。 模板及模拟过程实现记录到达每个点的时间t和每个点往前能走到的t最小的点的t。这个最小的t就是环里的代表元素。 具体实现用栈。 方法是dfs。应用1、求环的数量codevs 2822 爱在心中 的第一问:求大于1的强连通分量的数量 codevs 1332 上白泽慧音 输出最大的环2、缩点codevs 2822 爱在心中 的第二问 缩点后找出度为0的原创 2017-11-04 16:11:02 · 275 阅读 · 0 评论 -
【洛谷 2656】采蘑菇
题目描述小胖和ZYR要去ESQMS森林采蘑菇。 ESQMS森林间有N个小树丛,M条小径,每条小径都是单向的,连接两个小树丛,上面都有一定数量的蘑菇。小胖和ZYR经过某条小径一次,可以采走这条路上所有的蘑菇。由于ESQMS森林是一片神奇的沃土,所以一条路上的蘑菇被采过后,又会长出一些新的蘑菇,数量为原来蘑菇的数量乘上这条路的“恢复系数”,再下取整。 比如,一条路上有4个蘑菇,这条路的“恢复系数”为原创 2017-10-19 14:56:16 · 395 阅读 · 0 评论 -
【复习记录】拓扑排序
概念给出多对关系(a,b),表示a在b之前。最后确定一个序列,使整个序列满足所有的(a,b)的过程就是拓扑排序。实现邻接表+(优先)队列 输入时处理每个点的入度 开始时将所有入度为0的点入队,每次弹出时入度–应用hzoj 1285 确定比赛名次 由于规定编号较小的先输出,所以用小跟堆维护。 codevs2833 奇怪的梦境 记录弹出的点的数量,使初始点数与之作差即可。原创 2017-11-04 16:34:22 · 265 阅读 · 0 评论 -
【学/复习记录】最/次/k短路
最短路1、弗洛伊德求多源最短路时间复杂度n^3,慎用。 实现过程就是枚举中间点k,三层for处理出任意两点之间的最短路。 板子:codevs 1077 多源最短路 简单的应用:codevs 1079 回家2、SPFA详解 重点是松弛操作。 用队列实现。 首先将起点入队,然后一层一层扩展节点。每扩展到一个节点都将到达这个节点经过的路径与现有的路径长度比较,若更小,则更新。如果要更新的点不在原创 2017-11-04 19:01:01 · 280 阅读 · 0 评论 -
【学习记录】二分图染色
Q:什么是二分图? A:一张图,如果能把所有顶点分成两份,每一份中的顶点都互不连接,并且每个顶点都与另一份中的某一个或几个顶点有边相连,那么这个图就是二分图。Q:二分图能干什么? A:染色、匹配。染色刚学了,匹配不会,也不打算学。Q:什么是二分图染色? A:假设有红黑两种颜色。从一个顶点出发,先把这个顶点染成红色,再把与这个顶点相邻的所有顶点染成黑色,再把与黑色顶点们相邻的所有顶点染成红色……原创 2017-10-29 20:48:34 · 607 阅读 · 0 评论 -
【codevs 1069】关押罪犯
题目描述 Description S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。如果两名怨气值为c 的罪犯被关押在同一监狱,他们俩之间会发生摩擦,并造成影响力为c 的冲突事件。每年年末,警察原创 2017-10-21 07:36:03 · 347 阅读 · 0 评论 -
【codevs 1535】封锁阳光大学
题目描述 Description 曹是一只爱刷街的老曹,暑假期间,他每天都欢快地在阳光大学的校园里刷街。河蟹看到欢快的曹,感到不爽。河蟹决定封锁阳光大学,不让曹刷街。阳光大学的校园是一张由N个点构成的无向图,N个点之间由M条道路连接。每只河蟹可以对一个点进行封锁,当某个点被封锁后,与这个点相连的道路就被封锁了,曹就无法在与这些道路上刷街了。非常悲剧的一点是,河蟹是一种不和谐的生物,当两只河蟹封锁了原创 2017-10-29 16:05:17 · 327 阅读 · 0 评论 -
【codevs 2370】小机房的树
题目描述 Description 小机房有棵焕狗种的树,树上有N个节点,节点标号为0到N-1,有两只虫子名叫飘狗和大吉狗,分居在两个不同的节点上。有一天,他们想爬到一个节点上去搞基,但是作为两只虫子,他们不想花费太多精力。已知从某个节点爬到其父亲节点要花费 c 的能量(从父亲节点爬到此节点也相同),他们想找出一条花费精力最短的路,以使得搞基的时候精力旺盛,他们找到你要你设计一个程序来找到这条路,要原创 2017-04-28 11:20:23 · 299 阅读 · 0 评论 -
【codevs2627】村村通
题目描述 Description 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场。当然,他需要你的帮助。约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场。为了用最小的消费,他想铺设最短的光纤去连接所有的农场。你将得到一份各农场之间连接费用的列表,你必须找出能连接所有农场并所用光纤最短的方案。每两个农场间的距离不会超过100000输入原创 2017-08-16 14:42:49 · 478 阅读 · 0 评论 -
【codevs 3287】货车运输
题目描述 Description A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路。每一条道路对车辆都有重量限制,简称限重。现在有 q 辆货车在运输货物,司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物。输入描述 Input Description 第一行有两个用一个空格隔开的整数 n,m,表示 A 国有 n 座城市和 m 条道路。 接下来 m 行每行原创 2017-09-16 07:14:01 · 432 阅读 · 0 评论 -
【codevs 2273】扬帆远洋大战牧师妹酱
题目描述 Description 扬帆远洋为了打败牧师妹酱,不惜一切代价通过各种各样的手段得到了传奇道具“れいじまいご”来释放能量使得全球充满扬帆远洋的威严气场和能量场。但是,“れいじまいご”释放的能量只能在某个很小的区域中存在,为了使得效果可以逸散的全球,扬帆远洋决定效仿心灵操控者——尤里,在世界各地修建了N个“れいじまいご·ベクトル変換”使得其能量场可以在全世界张开。根据计算机的计算结果,这N原创 2017-09-25 21:45:14 · 359 阅读 · 0 评论 -
【hzoj 1285】确定比赛名次
Problem Description有N个比赛队(1<=N<=500),编号依次为1,2,3,。。。。,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结果,即P1赢P2,用P1,P2表示,排名时P1在P2之前。现在请你编程序确定排名。Input输入有若干组,每组中的第一行为二个数N(1<=N<=500),M;其中N原创 2017-09-02 10:55:32 · 517 阅读 · 0 评论 -
【codevs 1036】商务旅行
题目描述 Description 某首都城市的商人要经常到各城镇去做生意,他们按自己的路线去做,目的是为了更好的节约时间。假设有N个城镇,首都编号为1,商人从首都出发,其他各城镇之间都有道路连接,任意两个城镇之间如果有直连道路,在他们之间行驶需要花费单位时间。该国公路网络发达,从首都出发能到达任意一个城镇,并且公路网络不会存在环。你的任务是帮助该商人计算一下他的最短旅行时间。输入描述 Input原创 2017-09-03 15:32:49 · 371 阅读 · 0 评论 -
【poj 2001】Shortest Prefixes
DescriptionA prefix of a string is a substring starting at the beginning of the given string. The prefixes of “carbon” are: “c”, “ca”, “car”, “carb”, “carbo”, and “carbon”. Note that the empty string i原创 2017-10-06 20:54:51 · 253 阅读 · 0 评论 -
【codevs 1231】最优布线问题
题目描述 Description 学校需要将n台计算机连接起来,不同的2台计算机之间的连接费用可能是不同的。为了节省费用,我们考虑采用间接数据传输结束,就是一台计算机可以间接地通过其他计算机实现和另外一台计算机连接。为了使得任意两台计算机之间都是连通的(不管是直接还是间接的),需要在若干台计算机之间用网线直接连接,现在想使得总的连接费用最省,让你编程计算这个最小的费用。输入描述 Input Des原创 2017-09-29 06:46:32 · 310 阅读 · 0 评论 -
【codevs 1021】玛丽卡
题目描述 Description 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复。因为她和他们不住在同一个城市,因此她开始准备她的长途旅行。在这个国家中每两个城市之间最多只有一条路相通,并且我们知道从一个城市到另一个城市路上所需花费的时间。麦克在车中无意中听到有一条路正在维修,并且那儿正堵车,但没听清楚到底是哪一条路。无论哪一条路正在维修,从玛丽卡所在的城市都能到达麦克所在的城市。玛丽卡将只从不原创 2017-09-29 09:30:04 · 216 阅读 · 0 评论 -
【codevs 1079】回家
题目描述 Description 现在是晚餐时间,而母牛们在外面分散的牧场中。 农民约翰按响了电铃,所以她们开始向谷仓走去。 你的工作是要指出哪只母牛会最先到达谷仓(在给出的测试数据中,总会有且只有一只最快的母牛)。 在挤奶的时候(晚餐前),每只母牛都在她自己的牧场上,一些牧场上可能没有母牛。 每个牧场由一条条道路和一个或多个牧场连接(可能包括自己)。 有时,两个牧场(可能是字母相同的)之间会有超原创 2017-09-29 16:05:55 · 623 阅读 · 0 评论 -
【codevs 1269】匈牙利游戏
题目描述 Description Welcome to the Hungary Games! The streets of Budapest form a twisted network of one-way streets.欢迎来到匈牙利游戏!布达佩斯(匈牙利首都)的街道形成了一个弯曲的单向网络。You have been forced to join a race as part of a “原创 2017-09-27 20:06:48 · 405 阅读 · 0 评论 -
【codevs 2822】爱在心中
题目描述 Description “每个人都拥有一个梦,即使彼此不相同,能够与你分享,无论失败成功都会感动。爱因为在心中,平凡而不平庸,世界就像迷宫,却又让我们此刻相逢Our Home。”在爱的国度里有N个人,在他们的心中都有着一个爱的名单,上面记载着他所爱的人(不会出现自爱的情况)。爱是具有传递性的,即如果A爱B,B爱C,则A也爱C。 如果有这样一部分人,他们彼此都相爱,则他们就超越了一切的限原创 2017-09-23 06:55:29 · 262 阅读 · 0 评论 -
【洛谷 2341】[HAOI2006]受欢迎的牛
题目描述每头奶牛都梦想成为牛棚里的明星。被所有奶牛喜欢的奶牛就是一头明星奶牛。所有奶 牛都是自恋狂,每头奶牛总是喜欢自己的。奶牛之间的“喜欢”是可以传递的——如果A喜 欢B,B喜欢C,那么A也喜欢C。牛栏里共有N 头奶牛,给定一些奶牛之间的爱慕关系,请你 算出有多少头奶牛可以当明星。输入输出格式输入格式: 第一行:两个用空格分开的整数:N和M 第二行到第M + 1行:每行两个用空格原创 2017-10-19 09:42:04 · 414 阅读 · 0 评论 -
【codevs 1332】上白泽慧音
题目描述 Description 在幻想乡,上白泽慧音是以知识渊博闻名的老师。春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄。因此慧音决定换一个能够聚集最多人数的村庄作为新的教学地点。人间之里由N个村庄(编号为1..N)和M条道路组成,道路分为两种一种为单向通行的,一种为双向通行的,分别用1和2来标记。如果存在由村庄A到达村庄B的通路,那么我们认为可原创 2017-09-23 15:35:35 · 311 阅读 · 0 评论 -
【codevs 2455】繁忙的都市
题目描述 Description 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造。城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个交叉路口之间最多有一条道路相连接。这些道路是双向的,且把所有的交叉路口直接或间接的连接起来了。每条道路都有一个分值,分值越小表示这个道路越繁忙,越需要进行改造。但是市政府的资金有限,市原创 2017-10-20 13:06:14 · 277 阅读 · 0 评论 -
【codevs 2038】香甜的黄油
题目描述 Description 农夫John发现做出全威斯康辛州最甜的黄油的方法:糖。把糖放在一片牧场上,他知道N(1<=N<=500)只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油。当然,他将付出额外的费用在奶牛上。农夫John很狡猾。他知道他可以训练这些奶牛,让它们在听到铃声时去一个特定的牧场。他打算将糖放在那里然后下午发出铃声,以至他可以在晚上挤奶。农夫John知道每只奶牛都在各自喜欢原创 2017-10-20 13:04:22 · 274 阅读 · 0 评论