Fill - UVA 10603

网址如下:

Fill - UVA 10603 - Virtual Judge (vjudge.net)

感觉有点浮躁,没法完全将思绪投入题的思考中

脑袋糊糊的

一道bfs题

代码如下:

#include<queue>
#include<cstdio>
#include<cstring>
#include<vector>
#include<algorithm>const int maxn = 201;struct Node{int v[3], dist;Node(){}Node(int a, int b, int c, int dist):dist(dist){v[0] = a; v[1] = b; v[2] = c;}bool operator<(const Node tmp)const{return dist > tmp.dist;}bool update_ans(void);
};
int vis[maxn][maxn];
int cap[3], d, ans, V;bool Node::update_ans(void){if(vis[v[0]][v[1]] && dist >= vis[v[0]][v[1]]) return false;vis[v[0]][v[1]] = dist;for(int i = 0; i < 3; i++){if(v[i] > ans && v[i] <= d){ans = v[i]; V = dist;}else if(v[i] == ans) V = V < dist ? V : dist;}return true;
}
void init(void){ans = V = 0;memset(vis, 0, sizeof(vis));
}
void bfs(void){std::priority_queue<Node> q; q.push(Node(0, 0, cap[2], 0));while(!q.empty()){Node tmp = q.top(); q.pop();if(tmp.update_ans()){//开始倒水for(int u = 0; u < 3; u++){for(int v = 0; v < 3; v++){if(u == v || !tmp.v[u] || tmp.v[v] == cap[v]) continue;int val = std::min(tmp.v[u], cap[v] - tmp.v[v]);int chg[3]{}; chg[v] = val; chg[u] = -val;q.push(Node(tmp.v[0] + chg[0], tmp.v[1] + chg[1], tmp.v[2] + chg[2], tmp.dist + val));}}}}
}int main(void)
{int T; scanf("%d", &T);while(T--){init(); scanf("%d%d%d%d", &cap[0], &cap[1], &cap[2], &d);if(cap[2] <= d) ans = cap[2];else bfs();printf("%d %d\n", V, ans);}return 0;
}

我这代码的可读性……还可以吧?

vis是记录目前状态下的最小的倒水量,下标分别代表a,b杯的水量,因为总水量不变,故不记录c杯的水量

其他应该没什么问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/42044.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

控制下属绝不是拍桌子、甩脸子、摆架子,一流领导都用这3招!

控制下属绝不是拍桌子、甩脸子、摆架子&#xff0c;一流领导都用这3招&#xff01; 第一招&#xff1a;规矩严 国有国法&#xff0c;家有家规&#xff0c;公司也不例外。 下属能不能和领导齐心&#xff0c;愿不愿意共同发力&#xff0c;全看管理者如何操控。 毫无疑问的是&a…

45 mysql truncate 的实现

前言 truncate 是一个我们也经常会使用到的命令 其作用类似于 delete from $table; 但是 他会比 delete 块很多&#xff0c;这里我们来看一下 它的实现 delete 的时候会逐行进行处理, 打上 删除标记, 然后 由后台任务 进行数据处理 truncate table 的实现 执行 sql 如下 …

华为HCIP Datacom H12-821 卷19

1.多选题 如图所示,RTA 的 GE0/0/0、GE0/0/1 接口分别连接部门 1 和 2,其网段分别为 10.1.2.0/24、 10.1.3.0/24 网段,为限制部门 1 和 2 之间的相互访问,在 RTA 上部署 traffic-filter,以下哪些部署方式是正 确? A、配置 ACL3000 拒绝源为 10.1.2.0/24 目的为 10.1.3.0…

2024年软件测试八股文(含答案)

Part1 1、你的测试职业发展是什么&#xff1f; 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前3年积累测试经验&#xff0c;按如何做好测试工程师的要点去要求自…

【Python】已解决:(Python写入Excel表格报错)‘NoneType’ object has no attribute ‘write’

文章目录 一、分析问题背景二、可能出错的原因四、正确代码示例五、注意事项 已解决&#xff1a;&#xff08;Python写入Excel表格报错&#xff09;‘NoneType’ object has no attribute ‘write’ 一、分析问题背景 在处理Excel文件时&#xff0c;Python提供了多种库来方便…

Redis 7.x 系列【15】持久化机制之 RDB

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Redis 版本 7.2.5 源码地址&#xff1a;https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2 执行原理3. 配置项3.1 save3.2 stop-writes-on-bgsave-error3.3 rdbcompress…

BDD 100K dataset 的标签数据结构(json文件)

最近在筛选自己需要的labels&#xff0c;所以要弄清楚这个数据集的数据结构才行&#xff1a; 1.整个json文件以列表形式储存 2.每张图片以一个字典形式储存 3.存储图片的字典内的以‘name’为key的键值对对应的‘value’是我需要的图片名称信息 4.存储图片的字典内的以‘label…

麒麟系统部署JeecgBoot

一、安装jdk 自带的即可&#xff0c;不必另外安装 二、安装MySQL 麒麟系统安装MySQL_麒麟系统安装万里数据库步骤-CSDN博客 三、安装Redis 麒麟系统安装Redis_麒麟上redis-CSDN博客 四、安装Nginx 1、下载 下载地址&#xff1a;https://redis.io/ 2、解压配置 tar .…

ubuntu常用命令

常用命令 netstatpsps -auxps -eLf netstat netstat -tunlp这个命令用来显示网络连接、路由表和网络接口统计信息。 Proto (协议): 显示连接使用的协议&#xff0c;通常是 “tcp” 或 “udp”。 Recv-Q (接收队列): 表示接收缓冲区中未被进程读取的数据包数量。一般情况下&am…

基于大模型的机器人控制

基于大模型的机器人控制是指利用深度学习中的大型神经网络模型来实现对机器人的精确控制。这种方法结合了深度学习的强大表征学习能力和机器人控制的实际需求&#xff0c;旨在提高机器人的自主性、灵活性和智能性。 基本原理 数据收集&#xff1a;首先&#xff0c;需要收集大量…

微积分-导数4(三角函数的导数)

证明 f ( x ) sin ⁡ x f(x) \sin x f(x)sinx的导数为 f ′ ( x ) cos ⁡ x f(x) \cos x f′(x)cosx 已知函数 f ( x ) sin ⁡ x f(x) \sin x f(x)sinx 画出 f ( x ) f(x) f(x)图像以及 f ′ ( x ) f(x) f′(x)的图像 因此&#xff0c;我们可以合理的猜测&#xff1a;…

【TORCH】torch.normal()中的size参数

在 torch.normal() 函数中&#xff0c;size 参数用于指定生成张量的形状。torch.normal() 函数用于从正态&#xff08;高斯&#xff09;分布中生成随机数。函数的基本形式是&#xff1a; torch.normal(mean, std, size)mean&#xff1a;均值&#xff0c;可以是标量或张量。如果…

试用笔记之-汇通窗口颜色显示软件(颜色值可供Delphi编程用)

首先下载汇通窗口颜色显示软件 http://www.htsoft.com.cn/download/wdspy.rar 通过获得句柄颜色&#xff0c;显示Delphi颜色值和HTML颜色值

2024年【陕西省安全员C证】最新解析及陕西省安全员C证考试试卷

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 陕西省安全员C证最新解析是安全生产模拟考试一点通生成的&#xff0c;陕西省安全员C证证模拟考试题库是根据陕西省安全员C证最新版教材汇编出陕西省安全员C证仿真模拟考试。2024年【陕西省安全员C证】最新解析及陕西省…

类和对象-C++运算符重载-左移运算符重载

左移运算符重载 #include<bits/stdc.h> using namespace std; class Person {friend ostream & operator<<(ostream &cout,Person &p); public:Person(int a,int b){m_A a;m_B b;} private://利用成员函数重载 左移运算符 //p.operaor<<(cout…

(软件06)串口屏的应用,让你的产品显得高级一点(下篇)

本文目录 学习前言 单片机代码实现 学习前言 目前市面上我记得好像有IIC的屏幕、SPI的屏幕、并口屏幕、还有就是今天我们介绍的这个串口屏了&#xff0c;串口屏&#xff0c;就是用串口进行通讯的&#xff0c;上篇我们已经介绍了屏幕供应商提供的上位机软件进行配置好了&#…

java类复制mapstruct(convertor转换器)

背景&#xff1a; 类拷贝或属性拷贝&#xff0c;采用BeanUtil会用反射&#xff0c;性能不佳 BeanUtil.copyProperties(eventsInputDto, satisfyRiskDTO) 常见转换场景&#xff1a; 1、通过字段的值&#xff0c;条件判断赋值 三目运算判断赋值&#xff1a; expression &qu…

JDK-反应流(响应式流)

归档 GitHub: JDK-反应流&#xff08;响应式流&#xff09; 使用示例 https://github.com/zengxf/small-frame-demo/blob/master/multi-thread/reactive-test/reactor-demo/src/main/java/cn/zxf/reactor_demo/jdk/PubSubTest.java JDK 版本 openjdk version "17&quo…

自动化鼠标和键盘操作的软件,KeymouseGo是一款功能强大、易于使用的自动化工具,它能够帮助我们从重复性工作中解放出来.

重复性工作常常让我们的双手疲惫不堪。幸运的是&#xff0c;技术的进步为我们提供了自动化解决方案。今天&#xff0c;我们将探讨一款名为KeymouseGo的开源免费软件&#xff0c;它能够记录并自动执行鼠标和键盘操作&#xff0c;从而帮助我们从单调重复的任务中解放出来。 软件…

贪心算法-以学籍管理系统为例

1.贪心算法介绍 1.算法思路 贪心算法的基本思路是从问题的某一个初始解出发一步一步地进行&#xff0c;根据某个优化测度&#xff0c;每一 步都要确保能获得局部最优解。每一步只考虑一 个数据&#xff0c;其选取应该满足局部优化的条件。若下 一个数据和部分最优解连在一起…