《挑战程序设计》
Melody_HUNNU
SE在读蒟蒻,找不到工作,担心没有书读。
展开
-
POJ 3414 Pots
不是书上的题目,但不知道为啥在BFS那边标记了一下。看了一下是一道挺好的广搜的题目。题意:给定两个壶,第一个壶的容量为A,第二个的容量为B,然后给定想要的容量为C。一共有三种操作,Fill把壶装满,Drop把壶倒空,POUR把一个壶的水倒到另外一个壶中。问需要的最少操作数和操作序列。思考:这是一道六状态的BFS的题目。往常做的最简单的BFS是四状态的迷宫问题,从一个点考虑上下左右四个方位走路的问题,然后问最短步数或者最短步数对应的路径。然后这里这道题其实可以装换成六状态的问题,原来迷宫当中的x,y坐标可原创 2021-01-24 11:16:33 · 183 阅读 · 1 评论 -
POJ - 2386 Lake Counting
题面:给定一个N*M的区域,如果是W代表有水。水是可以八个方向联通的,问有多少个连通块。想法:简单的dfs。首先循环判断每个点可不可以走(符号是’W’的先前没有访问过的格子),然后进行深搜(考虑往四面八方走)。书中给的想法是不用vis记录状态,走过的W直接变成.。code:#include <iostream>#include <cstdio>using namespace std;int n,m;int cnt;char maze[1010][1010];boo原创 2021-01-24 07:46:24 · 86 阅读 · 0 评论 -
POJ1852 Ants
因为很久没有想题目了,所以开始复健,把基本买的算法书,先刷一遍。《挑战程序设计竞赛》和紫书等算法书的习题可以参考vj上的:挑战ICPC编程 https://vjudge.net/group/challenge本题题面:在一根给定长度的棍子上有n只蚂蚁,给定他们的位子,不告诉行走的方向。如果两只蚂蚁相撞就会各自转向。蚂蚁每单位时间走1,当它们走到棍子两端的时候,就会掉下去。问它们掉下去的最早和最晚时间。想法:就是思维题。最简单的情况:如果只有一只蚂蚁/如果不考虑相撞,两个时间无非就是往左走和往右走的原创 2021-01-19 15:45:20 · 114 阅读 · 0 评论