当前位置: 首页 > news >正文

打卡信奥刷题(3382)用C++实现信奥题 P9813 [CCC 2015 S4] Convex Hull

P9813 [CCC 2015 S4] Convex Hull

题目描述

给定一个nnn个点,mmm条边的无向图,每条边有两个边权tit_{i}tihih_{i}hi

你需要找到一条从sssttt的路径,满足路径上边的hih_{i}hi之和<k<k<ktit_{i}ti之和最小,只需要输出这个最小值即可,如果无法找到满足条件的路径,输出−1-11

输入格式

第一行三个整数k,n,mk,n,mk,n,m

接下来mmm行,每行四个整数ui,vi,ti,hiu_{i},v_{i},t_{i},h_{i}ui,vi,ti,hi表示一条从uiu_{i}uiviv_{i}vi的路径,边权为{ti,hi}\{t_{i},h_{i}\}{ti,hi}

最后一行两个整数s,ts,ts,t

输出格式

当存在满足条件的路径时,输出一行一个整数表示满足条件的最小tit_{i}ti之和。

否则输出一行−1-11

输入输出样例 #1

输入 #1

10 4 7 1 2 4 4 1 3 7 2 3 1 8 1 3 2 2 2 4 2 1 6 3 4 1 1 1 4 6 12 1 4

输出 #1

7

输入输出样例 #2

输入 #2

3 3 3 1 2 5 1 3 2 8 2 1 3 1 3 1 3

输出 #2

-1

说明/提示

【数据范围】:

对于20%20\%20%的数据,k=1k = 1k=12≤n≤2002 \leq n \leq 2002n200

对于另外20%20\%20%的数据,k=1k = 1k=12≤n≤2×1032 \leq n \leq 2 \times 10^{3}2n2×103

对于100%100\%100%的数据,0≤hi≤2000 \leq h_{i} \leq 2000hi2001≤ti≤1051 \leq t_{i} \leq 10^{5}1ti1051≤k≤2001 \leq k \leq 2001k2002≤n≤2×1032 \leq n \leq 2 \times 10^{3}2n2×1031≤m≤1041 \leq m \leq 10^{4}1m104s≠ts \neq ts=t

C++实现

#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;constintN=2e3+10,M=2e4+10;intn,m,k,s,t,d[N][210];inte[M],ne[M],h[N],w1[M],w2[M],idx;boolst[N][210];inlinevoidadd(inta,intb,intc,intd){e[++idx]=b,ne[idx]=h[a],w1[idx]=c,w2[idx]=d,h[a]=idx;}structnode{intw,f,id;booloperator<(constnode&t)const{returnw>t.w;}};inlinevoiddijkstra(){memset(d,0x3f,sizeofd);memset(st,0,sizeofst);priority_queue<node>q;q.push({0,0,s});d[s][0]=0;while(q.size()){node u=q.top();q.pop();// cout<<u.id<<"\n";if(st[u.id][u.f])continue;st[u.id][u.f]=1;for(inti=h[u.id];i;i=ne[i]){intv=e[i];if(w2[i]+u.f>=k)continue;if(d[v][u.f+w2[i]]>u.w+w1[i])d[v][u.f+w2[i]]=u.w+w1[i],q.push({u.w+w1[i],u.f+w2[i],v});}}}intmain(){scanf("%d%d%d",&k,&n,&m);for(inti=1;i<=m;i++){inta,b,c,d;scanf("%d%d%d%d",&a,&b,&c,&d);add(a,b,c,d),add(b,a,c,d);}scanf("%d%d",&s,&t);dijkstra();intans=1e9;for(inti=0;i<k;i++)ans=min(ans,d[t][i]);if(ans==1e9)puts("-1");elsecout<<ans<<"\n";return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

http://www.jsqmd.com/news/1004018/

相关文章:

  • 性价比高的直流电机厂家推荐,品牌口碑大揭秘 - mypinpai
  • 前后端分离Web宠物商城网站系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
  • MHmarkets迈汇平台:外汇投教内容建设与外汇行业合规表达如何影响体验
  • 手把手教你搞定RK3568上的广和通FG650 5G模组:从内核驱动到一键上网脚本
  • 别再只会git pull了!手把手教你用VSCode的GitLens插件可视化解决代码冲突
  • 终极MMD创作神器:如何用Blender插件完美导入导出MMD模型与动画
  • 终极百度网盘下载加速指南:3分钟解锁高速直链的秘密
  • 手把手教你用BAPI_REQUISITION_CREATE批量建PR,并搞定EXTENSIONIN传自定义字段(附避坑点)
  • 【篮球英语】04 装备与穿着:从球鞋到护臂
  • 解锁Slidev隐藏玩法:除了写PPT,还能做交互式演示、代码直播和教学课件
  • 2026年镀锌钢管与镀锌板材行业实力供应商深度分析:专业定做与持续服务能力全景评估 - 企业推荐官【官方】
  • 保姆级教程:在华为AR路由器上配置DHCPv6 PD(前缀代理)与SLAAC,实现IPv6子网自动分发
  • 告别谱峰搜索!用MATLAB手把手实现root-MUSIC算法(附完整代码与避坑指南)
  • 进口兰博基尼壁挂炉技术解析:核心卖点与场景适配 - 优质品牌商家
  • 想找做航空级铝合金旗杆的厂家?靠谱推荐在这里 - mypinpai
  • 模板驱动型文档自动化:四层解耦实现工程化内容生产
  • C++项目里用ONNXRuntime,如何写一段代码让CPU和GPU自动切换(附完整代码)
  • CRMEB Pro 商品复制/导入二开:为什么从外部平台搬商品最容易把 SKU 和图片搞乱?
  • 大棚实践案例分享:厂家排行揭晓,亲测效果告诉你真相
  • Python文件操作与异常处理:从入门到生产级鲁棒性
  • 别再用老方法了!用Flink CDC 1.16.2搞定PostgreSQL多表实时同步,这份配置清单请收好
  • 机器学习生产化实战:特征服务、模型灰度与概念漂移监控
  • 2026年杭州代理记账推荐指南:从初创期到一般纳税人全程护航无忧经营 - 本地品牌推荐
  • 【JAVA毕设源码分享】基于SpringBoot的潮流装备鉴定和交易系统设计与实现(程序+文档+代码讲解+一条龙定制)
  • 从数据探索到模型构建的全流程实践
  • TortoiseGit子模块更新踩坑实录:为什么你Pull了主仓库,子模块代码还是旧的?
  • 猫抓插件终极指南:3步掌握网页资源嗅探的完整解决方案
  • 异步验证语义缓存技术:提升LLM服务效率与质量
  • AI写教材新选择!低查重工具加持,快速生成符合标准的专业教材!
  • 告别蜂鸣器!用SYN6288为你的物联网项目增加智能语音播报(附公交报站器案例)