
POJ
Ziiyan
这个作者很懒,什么都没留下…
展开
-
POJ - 1321 棋盘问题(回溯 DFS)
题目大意:中文题,任意的两个棋子不能放在棋盘中的同一行或者同一列。 解题思路:按行顺序处理,一次 dfs 处理一行,保证同一行只放一个棋子,vis[j] 标记第 j 列是否已经有棋子,用来保证列。#include<iostream>#include<stdio.h>#include<algorithm>#include<cmath>#include<string.h>#define ma原创 2017-07-24 10:33:50 · 285 阅读 · 0 评论 -
POJ - 3660 Cow Contest (floyd)
题目大意:给出 n 头牛的强弱关系,问有几头牛能够确定排名 解题思路:为每个关系建立一条边,间接有关的用 floyd 建好,然后统计与剩余 n-1 个点都相连的点的个数#include<iostream>#include<stdio.h>#include<stdlib.h>#include<algorithm>#include<cmath>#include<string.h>#incl原创 2017-09-22 16:04:12 · 225 阅读 · 0 评论 -
POJ - 1502 MPI Maelstrom(dijkstra/spfa)
题目大意:给出一个 n×n 邻接矩阵的下三角,x 表示不可达,A(i, j) = A(j, i),i == j 时为 0,求 1 到其余点最小花费时间中的最大值 解题思路:裸最短路 dijkstra: Time(ms):16 Mem(MB):0.2#include<iostream>#include<stdio.h>#include<stdlib.h>#include<algorith原创 2017-09-17 10:17:15 · 265 阅读 · 0 评论 -
POJ - 3259 Wormholes(bellman)
题目大意:n 个点 m 条边 w 个虫洞,m 行三个数表示 a 到 b 花费时间 c,w 行表示 a 到 b 时间逆流 c,即花费时间 -c,虫洞是单向的,问能否回到从前 解题思路:就是判断有无负环,权值能够无限减小。道路是双向的,虫洞是单向的,边的数组大小应该是 m×2+w ,贡献了一发 RE#include<iostream>#include<stdio.h>#include<algori原创 2017-09-17 10:08:40 · 207 阅读 · 0 评论 -
POJ - 1860 currency exchange(bellman)
题目大意:n 个城市 m 条道路,每条路都有一个承载量,求最大承载量。 解题思路:最大生成树,无向图,dijkstra。对于每条路线来说,最大承载量是该条路线所有道路承载量中的最小值#include<iostream>#include<stdio.h>#include<algorithm>#include<cmath>#include<string.h>#include<string>原创 2017-09-17 09:59:12 · 291 阅读 · 0 评论 -
POJ - 3268 Silver Cow Party(dijkstra)
题目大意:n 个点 m 条边,第二行开始每行三个数 表示 a 到 b 要花费 l 时间,所有奶牛要到 x 的位置去开 party,除了 x 外,别的奶牛去 x 都有一个来回的最短时间,求所有奶牛来回最短时间,并输出最大值 解题思路:有向图,所以来回时间是不同的,将临接矩阵行列对换,进行两次dijkstra即可#include<iostream>#include<stdio.h>#include原创 2017-09-17 09:30:58 · 290 阅读 · 0 评论 -
POJ - 1797 Heavy Transportation(dijkstra)
题目大意:n 个城市 m 条道路,每条路都有一个承载量,求最大承载量。 解题思路:最大生成树,无向图,dijkstra。对于每条路线来说,最大承载量是该条路线所有道路承载量中的最小值#include<iostream>#include<stdio.h>#include<algorithm>#include<cmath>#include<string.h>#include<string>原创 2017-09-17 09:23:28 · 270 阅读 · 0 评论 -
POJ - 2387 Til the Cows Come Home(dijkstra)
题目大意:n 个点,给出若干条边,无向图,求 1 到 n 的最短距离 解题思路:模板题,没啥好说的#include<iostream>#include<stdio.h>#include<algorithm>#include<cmath>#include<string.h>#include<string>#include<queue>#define max(a,b) ((a)>(b)?原创 2017-09-05 17:30:39 · 248 阅读 · 0 评论 -
POJ - 3616 Milking Time(LIS)
题目大意:n时间内产奶,m个时间段,每个段有 l,r,v 表示从 l 时到 r 时共可产奶 v,挤奶工每次挤奶必须挤完完整的时间段,且每次挤完需要休息 r 时,求可获得的牛奶最大值。 解题思路:n 并没有什么卵用……时间段按开始时间从小到大排序,然后套 LIS 多加一个判断条件,点像贪心#include<iostream>#include<stdio.h>#include<algorithm原创 2017-09-04 11:24:09 · 233 阅读 · 0 评论 -
POJ - 3186 Treats for the Cows
题目大意:给一组数,每次能从首或尾取出一个数,然后乘以当前次数,问如何取使得总和最大。 如:a1, a2, a3 第一次取首,第二次取尾,第三次取首,则和为 a1×1+a3×2+a2×3 解题思路:dp 记录每次取完当前数的最大和,i 表示第 i 次取首, j 表示第 j 次取尾,则 i + j 就表示取的次数。处理一下边界即可#include<iostream>#include<stdio原创 2017-09-04 10:25:24 · 205 阅读 · 0 评论 -
POJ - 3070 Fibonacci(快速幂)
题目大意:输入n求FnFnF_{n}的后四位,四位数中第一个非 0 数前面的 0 不需要输出 解题思路:题目给出了矩阵求法: [Fn+1FnFnFn−1][Fn+1FnFnFn−1]\begin{equation} \left[\begin{matrix}F_{n+1}&F_{n}\\F_{n}&F_{n-1}\end{matrix} \right] \end{equatio...原创 2016-11-30 16:58:57 · 304 阅读 · 0 评论 -
POJ - 3984 迷宫问题(BFS、DFS)
题目大意:5×5 的迷宫,左上走到右下,输出最短路线。 解题思路:水题,BFS 和 DFS 都写了,感受了一下区别。 BFS 第一次到达终点就一定是最短路,输出路径的话要保留之前所有的尝试操作并记录上一步,然后从终点找回起点,利用递归输出路径。 DFS 会找出所有的路径,需要对比步数找出最短的那条,同时只需要储存当前最短的那条路径就可以,如果找到更优的路径再更新。#include<iostre原创 2017-07-24 11:32:01 · 356 阅读 · 0 评论 -
POJ - 3414 Pots(BFS)
题目大意:有编号 1、2 两个水壶,容量分别是 A、B,有 FILL、DROP、POUR 三种操作,现在要通过这些操作得到 C 升水,问最少几步,并输出步骤。 FILL(i) 装满水壶 i DROP(i) 倒空水壶 i POUR(i, j) i 向 j 倒水,若 j 满了,则多余的水留在 i 中 解题思路:因为 i,j 都可以取 1、2,所以仔细拆分一下其实有 6 种操作,所以是 6 个入口原创 2017-07-24 11:25:05 · 265 阅读 · 0 评论 -
POJ - 3087 Shuffle'm Up(模拟)
题目大意:有S1,S2 两堆牌,每堆牌有 C 张,进行洗牌操作,最终得到 S12 一堆牌(共 2*C 张),从下至上的牌序是:S2的最后一张,S1的最后一张,S2的倒数第二张,S1的倒数第二张……接着把 S12 的上面 C 张当作新的 S2,下面 C 张当作新的 S1,再洗牌,如此循环。问洗几次牌后能够达成目标牌序。 解题思路:不知道为什么归类为搜索,直接用数组模拟了,搜了一下题解好像是数据大的话原创 2017-07-24 11:13:43 · 227 阅读 · 0 评论 -
POJ - 3126 Prime Path (BFS)
题目大意:给两个四位的素数 A,B,每次只允许变换一个数字,换完后的四位数也要求是素数,问几步能使 A 换成 B,无法换到输出 Impossible 解题思路:4 位数字,每位数字可以换成 0~9,粗糙看一下是40个入口的BFS。 剪枝: 1、千位不能为 0 2、不能换成自己 3、替换后的数字也要是素数 判定素数这边先打一个素数表//素数打表void isprime() { m原创 2017-07-24 10:59:58 · 228 阅读 · 0 评论 -
POJ - 1426 Find The Multiple (暴力DFS)
题目大意:给出一个数字 n,找到一个非零的,由 0、1 组成的十进制数字,且是 n 的倍数,输出这个数。 解题思路:暴力,第一位一定是 1,第二位开始可以 1 或 0,一位一位枚举下去肯定会找到的……#include<iostream>#include<stdio.h>#include<algorithm>#include<cmath>#include<string.h>#define原创 2017-07-24 10:49:35 · 190 阅读 · 0 评论 -
POJ - 3278 Catch That Cow (BFS)
题目大意:FJ 初始在点 N,奶牛初始在点 K,两点在同一条线上。 FJ 有两种移动方式: 1、x+1 或 x-1 2、2*x 奶牛不动,问最少移动几次 FJ 可以抓住奶牛。 解题思路:三个入口的 BFS,注意一下边界,不控制一下会 RE#include<iostream>#include<stdio.h>#include<algorithm>#include<cmath>#inc原创 2017-07-24 10:41:39 · 200 阅读 · 0 评论 -
POJ - 1847 Tram(spfa)
题目大意:火车从一点开到另一点,轨道上有很多岔路口,每个路口都有好几个方向,默认是第一个方向,如果要选择别的方向的话要进行一次换向操作 ,给定一个起点一个终点 ,问最少进行几次操作能够到达终点 , 如果开不到输出 -1 解题思路:转换次数作为权值,第一个路口是 0,别的是 1,求最短路#include<iostream>#include<stdio.h>#include<stdlib.h>#原创 2017-09-22 16:14:07 · 271 阅读 · 0 评论