1018 Public Bike Management 结题记录(dfs剪枝)
个人觉得直接放入代码是最管用的。
其他方法类似,题意请参考其他博主。
#include <bits/stdc++.h>
using namespace std;
const int N = 1e4 + 50;int maxn = 2000000000;
int c, n, ed, s[N], m, minlen, needn, backn, pre[N];
bool flag, book[N];
vector<pair<int, int > > e[N];inline void dfs(int u, int points, int maxneed, int stores, int len)
{if (len > minlen) return ;int nd = points * c / 2 - stores;maxneed = max(maxneed, max(0, nd));if (u == ed) {int tneedn, tbackn;if (nd <= 0) {// dont needtneedn = maxneed; tbackn = -nd + maxneed;} else {// need;tneedn = max(maxneed, nd); tbackn = 0;}if (len == minlen) {if (needn > tneedn || (needn == tneedn && backn > tbackn)) {needn = tneedn; backn = tbackn;} } else if (minlen > len) {minlen = len; needn = tneedn; backn = tbackn;}return ;}for (int i = 0; i < e[u].size(); i++) {int v = e[u][i].first, w = e[u][i].second;if (book[v]) continue;book[v] = true;dfs(v, points + 1, maxneed, stores + s[v], len + w);book[v] = false;}
}inline void dfs2(int u, int points, int maxneed, int stores, int len)
{if (flag) return ;if (len > minlen) return ;int nd = points * c / 2 - stores;maxneed = max(maxneed, max(0, nd));if (u == ed) {int tneedn, tbackn;if (nd <= 0) {// dont needtneedn = maxneed; tbackn = -nd + maxneed;} else {// need;tneedn = max(maxneed, nd); tbackn = 0;}if (len == minlen) {if (tneedn == needn && tbackn == backn) {// puts("test 1");flag = true;}} return ;}for (int i = 0; i < e[u].size(); i++) {int v = e[u][i].first, w = e[u][i].second;if (book[v]) continue;book[v] = true;pre[v] = u;dfs2(v, points + 1, maxneed, stores + s[v], len + w);if (flag) return ;book[v] = false;}
}signed main()
{scanf("%d%d%d%d", &c, &n, &ed, &m);for (int i = 1; i <= n; i++) scanf("%d", &s[i]);while (m--) {int u, v, w; scanf("%d%d%d", &u, &v, &w);e[u].push_back({v, w});e[v].push_back({u, w});}minlen = maxn, needn = maxn, backn = maxn;book[0] = true;dfs(0, 0, 0, 0, 0);// printf("%d %d %d\n", minlen, needn, backn);memset(book, 0, sizeof book);book[0] = true;dfs2(0, 0, 0, 0, 0);vector<int > res;while (ed != 0) {res.push_back(ed); ed = pre[ed];}printf("%d %d", needn, 0);for (int i = res.size() - 1; i >= 0; i--) {printf("->%d", res[i]);}printf(" %d\n", backn);return 0;
}
相关文章:
1018 Public Bike Management 结题记录(dfs剪枝)
个人觉得直接放入代码是最管用的。 其他方法类似,题意请参考其他博主。 #include <bits/stdc.h> using namespace std; const int N 1e4 50;int maxn 2000000000; int c, n, ed, s[N], m, minlen, needn, backn, pre[N]; bool flag, book[N]; vector<p…...
C++ deque底层原理
deque底层原理 一、目的二、底层实现三、原理图四、类结构五、push_back六、pop_back 一、目的 实现双端数组 二、底层实现 双向开口的连续线性空间 三、原理图 四、类结构 class deque : protected Deque base _Deque_base._Deque_impl M_map 指针数组 _M_map_size …...
打破对ChatGPT的依赖以及如何应对ChatGPT的错误和幻觉
OpenAI的ChatGPT是第一个真正流行的生成式AI工具,但它可能不是最好的。现在是时候扩大你的AI视野了。 ChatGPT成为了基于大语言模型(LLM)的聊天机器人的同义词。但是现在是时候停止对ChatGPT的痴迷,开始发现这个新世界中强大的替代品了。 首先&a…...
【git】【IDEA】在idea中使用git
目录 一、 在IDEA中配置git 二、 获取git仓库 2.1 本次初始化仓库 2.2 从远程仓库克隆 三、 本地仓库操作 3.1 将文件加入暂存区 3.2 将暂存区的文件提交到版本库 3.3 快捷键 使用快捷键 实现加入到暂存区与提交到版本库 3.4 查看日志 Show History 四、 远程仓库操…...
【设计模式】装饰者模式
目录 一、定义二、结构三、优点四、使用场景五、代码示例六、截图示例 一、定义 1.在不改变现有对象结构的情况下,动态给该对象添加额外功能的模式 2.类B继承于类A,并将类A作为B类的属性(B类聚合A类) 3.BufferedInputStream、Buff…...
open cv快速入门系列---数字图像基础
目录 一、数字图像基础 1.1 数字图像和图像单位 1.2 区分图片分辨率与屏幕分辨率 1.3 图像的灰度与灰度级 1.4 图像的深度 1.5 二值图像、灰度图像与彩色图像 1.6 通道数 二、数字图像处理 2.1 图像噪声及其消除 2.2 数字图像处理技术 2.2.1 图像变换 2.2.2 图像增强…...
基础知识回顾:借助 SSL/TLS 和 NGINX 进行 Web 流量加密
原文作者: Robert Haynes 原文链接: 基础知识回顾:借助 SSL/TLS 和 NGINX 进行 Web 流量加密 NGINX 唯一中文官方社区 ,尽在 nginx.org.cn 网络攻击者肆无忌惮、作恶多端,几乎每天都有网络入侵、数据窃取或勒索软件攻击…...
iPhone 14 Plus与iPhone 14 Pro:你应该买哪一款
又到了iPhone季,这意味着你可能会在几种不同的机型之间左右为难,无法决定买哪一款。更令人困惑的是,苹果推出的iPhone变体——iPhone 14 Plus,只比老款iPhone 14 Pro低100美元。 有这么多选择,你可能想知道哪款iPhone最适合你。你应该买一部大屏幕的iPhone 14 Plus并节省…...
操作系统清华同步笔记:定义概述+计算机内存和硬盘布局+启动流程顺序+中断、异常和系统调用
定义概述 从用户角度来看,操作系统是一个控制软件,用以管理应用程序,为应用程序提供服务,杀死应用程序等。从内部文件角度来看,操作系统是一个资源管理器,用以管理外设,分配资源。层次结构&…...
uniapp 配置并使用 VueX
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 uni-app 内置了 VueX 1、创建需要的文件 右键点击 根目录【我的是 uni-shop】,然后新建 目录&a…...
vue v-on 艾特@
vue v-on 内联代码: <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</titl…...
【Ajax】发送跨域的POST请求时,浏览器会先发送一次OPTIONS请求,然后才发送原本的POST请求
当发送跨域的POST请求时,浏览器会先发送一次OPTIONS请求,这是因为浏览器的同源策略。OPTIONS请求被称为预检请求(pre-flight request),它是CORS(跨源资源共享)机制中的一部分。 预检请求的目的是为了确保实际请求(例如POST、PUT等…...
np.numpy, np.reshape, np.cumsum方法速查
1 np.numpy() 创建一个数组 state[[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]] state2np.array(state) print(state) print(state2)[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]] [[ 1 2 3 4 5] [ 6 7 8 9 10] [11 12 13 14 15]] 2 np.reshape() 常用于矩阵规…...
七、Kafka-Kraft 模式
目录 7.1 Kafka-Kraft 架构7.2 Kafka-Kraft 集群部署 7.1 Kafka-Kraft 架构 左图为 Kafka 现有架构,元数据在 zookeeper 中,运行时动态选举 controller,由controller 进行 Kafka 集群管理 右图为 kraft 模式架构(实验性ÿ…...
jvm开启远程调试功能;idea远程debug
概述 有时候一些问题本地调试无法复现,这个时候可以开启jvm的远程调试功能 jar包启动 jdk8 java -agentlib:jdwptransportdt_socket,address8787,servery,suspendn -jar xxx.jarjdk11/17 java -agentlib:jdwptransportdt_socket,address*:8787,servery,suspe…...
视频汇聚/视频云存储/视频监控管理平台EasyCVR视频平台添加萤火云设备的具体操作步骤
安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…...
vue 加载图片不显示
解决vue加载图片不显示问题 加载图片前边加上require require通常用于引入静态资源,如图片、样式文件等。 navList: [{ title: "大盘行情", imgSrc: require ("../../public../../public/imgs/nav1.png") , linkto: "" },{ title: &q…...
Java for循环每次都通过list.size()和 string.length()获取大小性能
有人说在for循环之前用一个局部变量先获取到list.size()、str.length(),然后在for循环的判断条件里通过这个局部变量替换list.size()、str.length()会节省数据计算的时间。事实真的是这样吗?下面就为大家解答这个问题。 说明:此文章针对Andro…...
面试题 08.01. 三步问题
题目来源: leetcode题目,网址:面试题 08.01. 三步问题 - 力扣(LeetCode) 解题思路: 动态规划。1 阶楼梯 1 种走法,2 阶楼梯 2 种走法,3 阶楼梯 6 种类走法。假设有 n(n>3) 阶…...
springboot添加SSL证书,支持https与http
文章目录 一、添加ssl证书二、配置文件三、配置同时支持HTTPS与HTTP四、启动 一、添加ssl证书 将证书文件放在/resource目录下 二、配置文件 修改配置文件 server:ssl:# 指定保存SSL证书的秘钥存储的路径key-store: classpath:dev.cobona.cn.pfx# 访问秘钥存储的密码key-store-…...
脉冲神经网络SNN工程落地全链路指南:从LIF建模到边缘部署
1. 这不是又一本“神经网络入门”——它是一份面向真实研究与工程落地的脉冲神经网络实操手记“Spiking Neural Networks”(SNN)这个词,过去十年里在学术会议海报上出现的频率,几乎和咖啡渍在论文草稿边缘的扩散速度一样快。但如果…...
Unity TMP InputField光标稳定方案:字体、渲染与输入法深度适配
1. 为什么InputField光标会“消失”、错位、卡死——不是Bug,是渲染管线的底层博弈 你有没有在Unity项目里遇到过这样的场景:UI界面一切正常,唯独InputField的光标不显示;或者光标明明在文字末尾,点击却跳到中间&#…...
2026 软考中级《多媒体应用设计师》备考全攻略(附全套资料)
大家好,最近很多朋友问我软考多媒体应用设计师的备考方法和资料整理问题,今天就把我自己整理的备考资料和实用经验一次性分享给大家,帮你少走弯路,高效备考~ 📚 我的备考资料整理(4 大模块全覆…...
RISC-V指令类型及核心功能解析
RV32I指令集通过六种基本指令格式(R、I、S、B、U、J)实现其核心功能,其中U型指令主要用于长立即数加载,而R、I、S、B、J型指令则承担了计算、访存、控制流等关键操作。根据博客内容提供的指令映射表(表2.3)…...
ZFX山海证券:“消费转向考验零售韧性”
ZFX山海证券:“消费转向考验零售韧性”Target观察到顾客行为出现意外变化,说明通胀和家庭预算压力仍在影响零售消费结构,ZFX山海证券认为,消费者更重视价格和必需品,正在压缩可选品类的增长空间。零售商需要在促销、库…...
微信小程序互助交流
微信小程序互助群 你开发了一个微信小程序, 准备接广告, 卡在了 500 个 UV 这里, 想找大佬帮忙,结果大佬说要收一张费—— 于是我建了一个微信群, 大家互助,免费入群,入群条件: 每人…...
印度市场语音产品上线倒计时!ElevenLabs印地文TTS合规指南(含RBI语音存储规范、UIDAI语音采集红线)
更多请点击: https://codechina.net 第一章:印度市场语音产品上线倒计时!ElevenLabs印地文TTS合规指南(含RBI语音存储规范、UIDAI语音采集红线) 面向印度市场的语音合成产品上线前,必须严格遵循印度央行&a…...
如何查阅与分析Taotoken平台提供的详细用量账单
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 如何查阅与分析Taotoken平台提供的详细用量账单 对于使用大模型API的开发者与团队而言,清晰、准确地掌握资源消耗与成本…...
X86与ARM架构深度解析:从指令集到生态的全面对比
1. 项目概述:为什么我们需要重新审视X86与ARM最近几年,无论是选购新电脑、关注手机芯片,还是围观科技新闻,你肯定没少听到“X86”和“ARM”这两个词。苹果的Mac电脑全面转向自研的M系列芯片,让“ARM架构”从手机、平板…...
大模型是否即将到达算法极限
大模型是否即将到达算法极限:深入总结 一、核心结论 目前的大模型确实已经非常强大,但更准确的判断不是:大模型算法潜力即将到达极限。而是:纯 Transformer 纯互联网语料 纯预训练 scaling 这条旧路线,正在接近阶段性…...
