博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA 10603 Fill
阅读量:6161 次
发布时间:2019-06-21

本文共 1828 字,大约阅读时间需要 6 分钟。

题意:

  题目的意思是倒水,给出的四个数据是第一个水杯,第二个水杯,第三个水杯,和目标水量。一开始只有第三个水杯是满的,剩下的水杯是空的。倒水的时候只能把倒水出来的这个杯子倒空,或是倒水进去的杯子倒满。 问最少转移多少水量,使三个杯子中(其中一个)出现目标水量。如果无法出现目标水量,就目标水量减一,还无法出现再减一。

分析:

  bfs不需要退出条件,应该搜到所要状态都访问过为止。每得出一个新状态了,这时候这个状态下达到这三种水量的总倒水量,就是这个状态的里面累加上来的倒水量,如果小于之前记录的达到这三种水量的最小倒水量,就替换,当然如果这个水量是没有出现过的,就直接替换。到最后我们得到一个ans数组(前面说到的达到某种水量的最小倒水量)。初始目标水量是d那我们就先看ans[d] 如果是-1 ,说明从没出现过那就ans[d-1]直到出现不是-1的,就把最小倒水量值输出来,也把下标(这时的目标水量):

代码:

  
#include 
#include
#include
#include
#include
using namespace std; struct node {
int v[3]; int dist; bool operator <(const node& a) const {
return dist>a.dist; } }; const int maxn=205; int vis[maxn][maxn],cap[3],ans[maxn]; void solve(int a,int b,int c,int d) {
memset(vis,0,sizeof(vis)); memset(ans,-1,sizeof(ans)); cap[0]=a; cap[1]=b; cap[2]=c; priority_queue
q; node start; start.v[0]=start.v[1]=0; start.v[2]=c; start.dist=0; q.push(start); vis[0][0]=1; while(!q.empty()) {
node u=q.top();         q.pop();         int i,j,k;         for(i=0;i<3;i++)         {
int d1=u.v[i]; if(ans[d1]<0||u.dist
if(ans[d]>=0)             break;         for(i=0;i<3;i++)         {
for(j=0;j<3;j++) {
if(i!=j) {
//cout<
<
=0) {
//cout<
<
=0) {
printf("%d %d\n",ans[d],d); return; } d--; } } int main() {
int t; scanf("%d",&t); while(t--) {
int a,b,c,d; scanf("%d%d%d%d",&a,&b,&c,&d); solve(a,b,c,d); } }

转载于:https://www.cnblogs.com/137033036-wjl/p/4869522.html

你可能感兴趣的文章
SQL优化技巧
查看>>
thead 固定,tbody 超出滚动(附带改变滚动条样式)
查看>>
Dijkstra算法
查看>>
css 动画 和 响应式布局和兼容性
查看>>
csrf 跨站请求伪造相关以及django的中间件
查看>>
MySQL数据类型--与MySQL零距离接触2-11MySQL自动编号
查看>>
生日小助手源码运行的步骤
查看>>
Configuration python CGI in XAMPP in win-7
查看>>
bzoj 5006(洛谷 4547) [THUWC2017]Bipartite 随机二分图——期望DP
查看>>
CF 888E Maximum Subsequence——折半搜索
查看>>
欧几里德算法(辗转相除法)
查看>>
面试题1-----SVM和LR的异同
查看>>
MFC控件的SubclassDlgItem
查看>>
如何避免历史回退到登录页面
查看>>
《图解HTTP》1~53Page Web网络基础 HTTP协议 HTTP报文内的HTTP信息
查看>>
unix环境高级编程-高级IO(2)
查看>>
树莓派是如何免疫 Meltdown 和 Spectre 漏洞的
查看>>
雅虎瓦片地图切片问题
查看>>
HTML 邮件链接,超链接发邮件
查看>>
HDU 5524:Subtrees
查看>>