
图
Steve_Junior
某中华名校的竞赛渣渣
展开
-
【棋盘上的BFS】滑旱冰
【问题描述】 经过跟FJ长达数年的谈判,奶牛们终于如愿以偿地得到了想要的旱冰鞋。农场上大部分的区域都是平整的,适合在上面滑动,但有一些小块的土地上有很多岩石,凭奶牛们的旱冰技术,是没有办法通过的。农场可以看成被划分成R行C列的矩阵。快要开饭了,贝西发现自己在坐标为(1,1)的格子里,并且它想赶到坐标为(R,C)的格子的牛棚去享受晚饭。贝西以她所在格子为起点,每 1 秒可以向它面朝的方向(东、南、西原创 2016-07-08 22:05:50 · 437 阅读 · 0 评论 -
USACO - 3.2.6 Sweet Butter 香甜的黄油 Dijkstra(迪杰斯特拉算法)+枚举
【问题描述】 农夫John发现做出全威斯康辛州最甜的黄油的方法:糖。把糖放在一片牧场上,他知道N(1<=N<=500)只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油。当然,他用额外赚来的钱给奶牛买奢侈品。 农夫John很狡猾。他知道他可以训练这些奶牛,让它们在听到铃声时去一个特定的牧场。他打算将糖放在那里然后下午发出铃声,以至他可以在晚上挤奶。 农夫John知道每只奶牛都在各自喜欢的牧场呆原创 2016-07-17 15:49:18 · 774 阅读 · 0 评论 -
USACO - Nov09 Job Hunt 找工作 SPFA算法+点权转边权
【问题描述】 奶牛们没钱了,正在找工作。FJ知道后,希望奶牛们四处转转,碰碰运气。而且他还加了一条要求:一头奶牛在一个城市最多只能赚D(0 < D <= 1000)美圆,然后他必须到另一个城市工作。当然,他可以在别处工作一阵后又回来再多赚D美元。而且这样往往返返的次数没有限制。 城市间P(1<=P<=150)条单向道路连接,共有N(2<=N<=300)座城市(编号为1..N)。贝西当前在城市S。原创 2016-07-17 16:14:06 · 549 阅读 · 0 评论 -
【训练题】区域个数 坐标离散化+BFS算法
【问题描述】 w*h的格子画了n条或垂直或水平宽度为1的直线,求出这些格子被划分成了多少个4连块(上、下、左、右连通)。 【输入格式】 第一行包含两个整数:w和h,表示矩阵的列数和行数(行列编号都从1开始)。 第二行包含一个整数n,表示有n条直线。 接下来的n行,每行包含四个整数:x1,y1,x2,y2,表示一条直线的列号和行号。【输出格式】 一个整数,表示区域数量。【输入样例】10 1原创 2016-07-20 19:06:21 · 1433 阅读 · 1 评论 -
复赛模拟试题 - 收费站 Dijkstra迪杰斯特拉+二分答案法 重庆一中高2018级竞赛班第九次测试 2016.9.10 Problem 4
【问题描述】 在某个遥远的国家里,有n个城市。编号为1 ,2,3,…,n。这个国家的政府修建了m条双向的公路。每条公路连接着两个城市。沿着某条公路,开车从一个城市到另一个城市,需要花费一定的汽油。开车每经过一个城市,都会被收取一定的费用(包括起点和终点城市)。所有的收费站都在城市中,在城市间的公路上没有任何的收费站。小红现在要开车从城市u到城市v(1<=u,v<=n)。她的车最多可以装下s升的汽油原创 2016-09-10 17:29:49 · 837 阅读 · 0 评论 -
NOIP 2010 - 提高组 引水入城 棋盘上的BFS+区间覆盖(贪心) 重庆一中高2018级竞赛班第十次测试 2016.9.16 Problem 4
【问题描述】 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠。该国的行政区划十分特殊,刚好构成一个N行M列的矩形,其中每个格子都代表一座城市,每座城市都有一个海拔高度。为了使居民们都尽可能饮用到清澈的湖水,现在要在某些城市建造水利设施。水利设施有两种,分别为蓄水厂和输水站。蓄水厂的功能是利用水泵将湖泊中的水抽取到所在城市的蓄水池中。因此,只有与湖泊毗邻的第1行的城市可以建造蓄原创 2016-09-20 19:16:15 · 845 阅读 · 0 评论 -
UVa - 10047 The Monocycle 独轮车 多状态BFS 重庆一中高2018级竞赛班第十一次测试 2016.9.24 Problem 4
注:原题为多组数据。本题输入改为只有一组数据。 【问题描述】 独轮车是一种仅有一个轮子的特殊自行车。他的轮子被等分成5个扇形,分别涂上一种不同的颜色。现在有一个人骑自行车行驶在M*N的网格平面上。每个格子的大小恰好使得当车从一个格子骑到下一个格子时,轮子恰好转过一个扇形。如下图所示,当轮子在1号格子的中心时,蓝色扇形的外弧线中线刚好于地面接触。当它移动到下一个格子(2号格子)的时候,白色扇形的外原创 2016-09-27 20:05:51 · 1162 阅读 · 0 评论 -
NOIP 2010 - 提高组 关押罪犯 二分答案+二分图的判定
描述 S城现有两座监狱,一共关押着N名罪犯,编号分别为1~N。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。如果两名怨气值为c的罪犯被关押在同一监狱,他们俩之间会发生摩擦,并造成影响力为c的冲突事件。每年年末,警察局会将本年内监狱中的所有冲突事件按影原创 2016-10-06 09:25:15 · 376 阅读 · 0 评论 -
NOIP 2014 - 提高组 寻找道路
思路: 以图论方法完成。存图时在正向图g上存储,再将边反过来在gr上存储。目的是,反向图上终点能到的点都是正向图上能到终点的点。然后在反向图上从终点出发BFS或DFS,标记能到终点的点。在正向图从起点开始时,进行BFS时先遍历i结点指向的每个j,如果有任意一个j没有被标记,则i不可以走,直接再从队列中取一个i验证。代码:#include<cstdio>#include<cstring>#inc原创 2016-11-10 10:15:50 · 486 阅读 · 0 评论 -
【训练题】最短路径树 SPFA
【问题描述】 所谓最短路径树,就是从s出发,沿着树上的边走到任意点i,那么经过的这些边的权值和就是s到i的最短路径。Dijkstra算法或SPFA算法不仅可计算从起点s到各点的最短路径长度,同时也可得到以s为根的最短路径树。方法是在进行松弛操作时,如果d[i] + c < d[j] 时,除了更新d[j]之外,还要设置fa[j]=i。这样把fa[j]看成j的父亲指针,则所有点形成了一棵树(因为每个结原创 2016-11-10 19:00:25 · 498 阅读 · 0 评论 -
【训练题】单源最优路径 SPFA(队列优化)算法
【问题描述】 给出N个顶点,M条无向带权边的连通图,和一个出发点(源点)S:请编程计算: 问1、S到其他点的所有路径中,需要经过的最小边最大的那条路径(最小边最大); 问2、S到其他点的所有路径中,需要经过的最大边最小的那条路径(最大边最小);【输入格式】 第一行:N(N<=50,000),M(M<=100,000),为图的顶点数目和边的数目。 接下来m行,每行三个整数x,y,t,为一条边原创 2016-07-16 16:23:26 · 570 阅读 · 0 评论 -
USACO - 2.4.2 穿越栅栏(改编) 重庆一中高2018级竞赛班第二次测试 2016.7.13 Problem 3
【问题描述】 FJ搭建了一个巨大的用栅栏围成的迷宫。幸运的是,他在迷宫的边界上留出了两段栅栏作为迷宫的出口,并且从迷宫中的任意一点都能找到一条走出迷宫的路。给定迷宫的行和列数和这个迷宫,然后计算从迷宫中最“糟糕”的那一个点走出迷宫所需的最少步数。【输入格式】 第一行为正数m和n,表示迷宫的行数和列数,用空格隔开。迷宫用一个由数字组成的矩阵表示,一个数字表示迷宫的一个格子。每一个格子的数字告诉我们原创 2016-07-15 11:24:59 · 372 阅读 · 0 评论 -
NOIP 2013 - Day 1 货车运输 重庆一中高2018级竞赛班第二次测试 2016.7.13 Problem 4
【问题描述】 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路。每一条道路对车辆都有重量限制,简称限重。现在有 q 辆货车在运输货物,司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物。【输入格式】 第一行有两个用一个空格隔开的整数 n,m,表示 A 国有 n 座城市和 m 条道路。 接下来 m 行每行 3 个整数 x、y、z,每两个整数之间用一个空格隔开,表示原创 2016-07-14 14:34:33 · 697 阅读 · 0 评论 -
【训练题】拓扑排序
【问题描述】 有N个士兵,编号依次为1,2,3,…,N, 队列训练时,指挥官要把一些士兵从高到矮依次排成一行。但现在指挥官不能直接获得每个人的身高信息,只能获得“p1比p2高”这样的比较结果:记为p1>p2。例如1>2,2>4,3>4。士兵的身高关系如图所示: 【输入格式】 第一行:包含两个整数N、M,第二至第M+1行:每行两个整数x,y,代表士兵x比士兵y高。【输出格式】 一个1原创 2016-07-08 22:29:47 · 534 阅读 · 0 评论 -
【训练题】二分图判定
【问题描述】 对于无向图 G=(V,E),如果可以把结点集分成不相交的部分,即 X和 Y=V-X,使得每条边的其中一个端点在 X 中,另一个在 Y 中,则称 G 为二分图(bipartite graph)。二分图的另一种等价说法是,可以把每个结点着以黑色和白色之一,使得每条边的两个端点颜色不同,所以黑白染色法这就是判定二分图的基本算法。不难发现,非连通图是二分图当且仅当每个连通分量都是二分图。比如原创 2016-07-09 15:09:52 · 422 阅读 · 0 评论 -
POJ - 2230 Watchcow
【问题描述】 FJ有 N 个农场,他们由 M 条双向道路连接。贝茜从农场出发巡逻。每条路必须由两个方向各走一遍,最后回到农场1。题目保证有这样的路径存在。 请输出这样的路径。【输入格式】 第一行输入N和M,之后M行输入一条路径的两个端点。【输出格式】 输出经过的农场,一行一个(字典序最小的)。【输入样例】4 51 21 42 32 43 4【输出样例】1214232原创 2016-07-09 16:55:43 · 338 阅读 · 0 评论 -
【训练题】强连通分量缩点
【问题描述】 有 N 个人和每个人所认识人的列表,注意:即使B在A的列表中,A也不一定在B的列表中。现在小明有一个重要消息要通知这N个人,注意:如果A认识B,则当A得到这个消息,他就会立即通知B。现在请你完成下面两个任务:任务1:请你计算要让N个人都得到消息,那么小明必须把这个消息直接通知的人的最少数目。任务2:如果小明想要只告诉这N个人中的任何一个人,其他所有人都能得到消息,那么可能需要在某些人原创 2016-07-10 15:46:54 · 467 阅读 · 0 评论 -
UVa - 11396 Claw Decomposition 二分图的判定
【问题描述】 给出n(n≤300)个节点的简单无向图(无自环无重边),每个点的度为3。现在你需要判断能否将它分解成若干个爪(如图所示)。在你的方案中,每条边必须恰好属于一个爪,但同一个节点可以出现在多个爪里。 【输入格式】 多组输入数据:每组数据第一行为这个图的点数n,第二行开始每行2个整数a, b(1 <= a, b <= n)为该图的边,以”0 0”结束。【输出格式】 对于每组数原创 2016-07-10 15:55:16 · 303 阅读 · 0 评论 -
UVa - 10099 The Tourist Guide 并查集+贪心
【问题描述】 Mr.he有一家旅游公司。他得当前任务是带一些游客去一个遥远的城市。一些城市之间有双向道路。每对相邻城市之间都有一条高速公路,每条路线规定了自己的最大乘客数目。Mr.he有一份包含城市间道路的状况和公交车最大载重容量的地图。(最多有50000个城市,有100000条道路,道路的容量位于区间[1,100000]),并保证任意两点之间能相互到达。往往无法一次性地将所有乘客带往目的地。例如原创 2016-07-11 14:49:39 · 331 阅读 · 0 评论 -
BZOJ - 1977 [BeiJing2010组队]次小生成树 Tree Kruskal演算法+最近公共祖先
【Description】 小C最近学了很多最小生成树的算法,Prim算法、Kruskal算法、消圈算法 等等。正当小C洋洋得意之时,小P又来泼小C冷水了。小P说,让小C求出一 个无向图的次小生成树,而且这个次小生成树还得是严格次小的,也就是说:如果最小生成树选择的边集是 EM,严格次小生成树选择的边集是 ES,那么需要满足:(value(e)表示边e的权值) 这下小C 蒙了,他找到了你,希原创 2016-07-12 14:45:21 · 429 阅读 · 0 评论 -
USACO - Oct08 Gold Watering Hole 挖井 Kruskal演算法+点权转边权
【问题描述】 FJ决定给他分别用1到N编号的牧草浇水,他可以直接在一颗牧草旁边直接挖一口井来获得水,也可以用管子从任意有水的牧草那里来获得水。在第i颗牧草旁边挖一口井的代价为Wi(),用管子连接第i与第j颗牧草的代价为Pij( Pij=Pji; Pii=0)。请求出FJ浇灌这些牧草花费的最小代价。【输入格式】 第一行,一个整数N。第二行到第N+1行,行i+1表示Wi。 第N+2行到第原创 2016-07-12 10:53:12 · 976 阅读 · 0 评论 -
USACO - Dec08 Bad Grass 重庆一中高2018级竞赛班第二次测试 2016.7.13 Problem 1
【问题描述】 贝茜像其它奶牛一样正在吃草,她正在思考她所在的地方。她注意到她只得到了一个平于海平面的广泛大片牧场。只有海拔1米或者更高更硬的草不那么美味。草随着海拔的增加越发难吃。 继续咀嚼,她意识到,这没有食欲的食物长成两侧的丘陵,形成了青翠美味丰富草地海洋中的一系列劣质草小岛 。贝茜穿上她的实验服,决心测定她的牧场有多少劣草小岛。她画出一张画有被分成R (1 < R <= 1,000) 行、C原创 2016-07-13 20:59:44 · 712 阅读 · 0 评论 -
RQNOJ - 190 拦截匪徒 重庆一中高2018级竞赛班第二次测试 2016.7.13 Problem 2
【题目描述】 某市的地图是一个由n个点组成的无向图,每个点代表一个区。现在第p区发生了抢劫案,而警察为了借助劫匪需埋伏在一个劫匪必经的区域。由于不知道劫匪会向哪个区域逃窜,所以市长要求你计算出对于任意一个劫匪可能逃向的区j,找出一个可以借助劫匪的区k(k<>p,k<>j),即劫匪从p区逃向j区,必经过k区。由于地区j可能为匪徒的老巢所在,所以警察希望能在路上拦住匪徒,而不是在j区抓捕。【输入格式】原创 2016-07-13 21:20:15 · 627 阅读 · 0 评论 -
UVa - 10278 Fire Station 消防站 图上的多源最短路径
【问题描述】 某城市中有一些消防队。居民抱怨说一些房子离最近的消防站很远,所以必须建一个新的消防站。你要选择这个消防站的位置,让离最缺少服务的居民区最近。 这个城市有N个路口,用1..N编号,这N个路口被M条长度不同的双向道路连接。房子和消防站的位置都在路口上。假定在每个路口至少有一栋房子,且在同一个路口可以有多个消防站。【输入格式】 第一行包含三个整数:f,N,M,分别表示城市现有f个消防站原创 2016-11-01 19:48:58 · 793 阅读 · 0 评论