10603专题

例题 7-8 倒水问题(Fill,UVa 10603)

原题链接:https://vjudge.net/problem/UVA-10603 分类:优先队列 备注:状态图,Dijkstra算法 因为数据量小,所以比较简单。用一下优先队列就好。 #include<bits/stdc++.h>using namespace std;const int maxn=205;const int inf=0x3f3f3f3f;int vis[maxn][

Fill UVA - 10603(A*)

题目大意: 给你三个瓶子,并且给你他们的体积分别是a,b,c,但是一开始第一个和第二个杯子是空的,只有第三个是满的,然后给你一个d,问你通过许多次倒水使得其中一个水杯的体积为d,你倒的水的最小值是多少? 思路: 他求的是倒水的最小值,并不是倒水的最小次数,先把这个分清楚。 先把三个目前状态下的状态存储起来,然后每次选倒水量最小的(A*思路)损失函数G=水的量+到当前状态的水量。 用优先队列存储