BZOJ4681 [jsoi2010]旅行

1.jpg

时间限制:

3S

空间限制:

256M
具体思路:DP
f[i][j][k]表示1-i,前L条路上用了 j条,L后的路上换了k条的最小代价
枚举一下L就有了一个复杂度O(nlognk^3)的做法
AC代码
#include<bits/stdc++.h>
using namespace std;
#define INF 100000000
#define P pair<int,int>
const int M=200010;
int n,i,j,m,k,top=1,L,mogic;
int first[M],next[M],to[M],last[M],len[M],f[100][200][50],ord[M];
bool vis[M*3];
struct E{int x,y,w;}e[M]; queue<P>q; inline bool cmp(const E&a,const E&b){return a.w<b.w;} int ans=2100000000,base=0; void add(int x,int y,int z,int num) { top++,to[top]=y;len[top]=z;ord[top]=num; if(first[x]==0)first[x]=top;else next[last[x]]=top; last[x]=top; } void PUSH(int x,int y,int z,int w) { if(y>L||z>mogic)return; if(f[x][y][z]<=w)return; q.push(P(f[x][y][z]=w,(x<<13)|(y<<5)|(z))); } int main() { scanf("%d%d%d",&n,&m,&mogic); for(i=1;i<=m;i++)scanf("%d%d%d",&e[i].x,&e[i].y,&e[i].w); sort(e+1,e+1+m,cmp); for(i=1;i<=m;i++)add(e[i].x,e[i].y,e[i].w,i),add(e[i].y,e[i].x,e[i].w,i); for(L=0;L<=m;L++) { base+=e[L].w; if(base>ans)break; for(i=1;i<=n;i++)for(j=0;j<=L;j++)for(k=0;k<=mogic;k++)f[i][j][k]=INF; memset(vis,0,sizeof(vis)); PUSH(1,0,0,base); while(!q.empty()) { P TOP=q.front();q.pop(); int z=TOP.second&31;TOP.second>>=5; int y=TOP.second&255;TOP.second>>=8; int x=TOP.second; if(f[x][y][z]<TOP.first)continue; for(i=first[x];i;i=next[i]) if(ord[i]<=L) { PUSH(to[i],y+1,z,TOP.first); }else PUSH(to[i],y,z,TOP.first+e[ord[i]].w),PUSH(to[i],y,z+1,TOP.first); } for(j=0;j<=L;j++)for(k=0;k<=mogic;k++)if(j+k<=L&&f[n][j][k]<ans)ans=f[n][j][k]; } printf("%d",ans); return 0; }

 

转载于:https://www.cnblogs.com/Orange-User/p/8507160.html

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

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

相关文章

IIC踩过的坑

读取IT8563WE时&#xff0c;读取第一次正确&#xff0c;第二次错误&#xff0c;第三次正确&#xff0c;第四次错误。。。。。。看到读取成功之后&#xff0c;SDA信号没有被正确拉高&#xff0c;电平大概只有一半。再次读取&#xff0c;主机设置读模式时&#xff0c;从机会发送N…

1万字30张图说清TCP协议

本篇文章较长&#xff0c;大家先看下目录1、简介2、TCP协议头3、TCP 数据包的编号&#xff08;SEQ&#xff09;4、三次握手建立连接5、四次挥手断开连接6、TCP可靠性的保证7、滑动窗口技术9、窗口滑动的数据重发9、TCP 流控制10、网线“断”了怎么办01简介TCP(Transmission Con…

Spring源码解析(二)BeanDefinition的Resource定位

IOC容器的初始化过程主要包括BeanDefinition的Resource定位、载入和注册。在实际项目中我们基本上操作的都是ApplicationContex的实现&#xff0c;我们比较熟悉的ClassPathXmlApplicationContext、FileSystemXmlApplicationContext、XmlWebapplicationContext等。ApplicationCo…

单片机(MCU)如何才能不死机之对齐访问(Aligned Access)

从一个结构体说起。如下&#xff0c;在 STM32F0 的程序中&#xff0c;我们定义了一个结构体My_Struct &#xff0c;那么这个结构体占用多少内存呢&#xff1f;struct Struct_Def { uint8_t Var_B; uint16_t Var_W0; uint16_t Var_W1; uint32_t Var_DW; }; struct Struct_Def My…

小米的隔空充电,看起来好酷

昨天是1月29号&#xff0c;昨天小米发布了一个隔空充电技术&#xff0c;很火爆&#xff0c;大胆想&#xff0c;如果有一条无线充电的高速公路&#xff0c;那电动汽车还担心没有电吗&#xff1f;—— 雷总的微博原文隔空充电技术&#xff1a;如科幻电影一般&#xff0c;拿着手机…

同事用void把我给秀翻了!

1、聊一聊今天跟大家推荐的这首歌最近应该挺火的&#xff0c;不过没办法插入AGA的原版歌曲&#xff0c;大家觉得不错可以去找找原版歌曲收录一下。昨天建立了"最后一个bug"技术交流群,由于群成员超过200就无法直接通过群二维码加入&#xff0c;如果大家想加入扫描下面…

Spring Boot之自定义属性

选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能&#xff0c;还能实现快速开发的便捷。我想大多数人也是出于这个原因选择了Spring Boot,如果不是特殊应用场景&#xff0c;就只需要在application.properties中完成一些属性配置就能开启各模块的应用。而不像传统的XML配…

一个老工程师的工作经历和思考

在这里不敢以”资深”工程师自居&#xff0c;因为学历和技术水平确实一般。为什么说“老”呢&#xff1f;因为工作时间确实够长&#xff0c;已经接近20年。下面把自身工作和学习经历和大家分享一下&#xff0c;使初学者能够得到一些有用的东西。2000年毕业&#xff0c;机械电子…

电子工程师都在看什么?送你一份“修炼宝典”

现如今&#xff0c;形形色色的公众号如繁星一般让人眼花缭乱。近几年科技的飞速发展&#xff0c;让更多人开始关注科技&#xff0c;甚至成为极客。然而学习是永无止境的&#xff0c;如何才能追赶如此高速的发展&#xff1f;曾经&#xff0c;我也是不知道去看哪些&#xff0c;便…

DataCleaner(4.5)第一章

Part1. Introduction to DataCleaner  介绍DataCleaner |--What is data quality(DQ)  数据质量&#xff1f;|--What is data profiling?   数据分析&#xff1f;|--What is datastore?     数据存储&#xff1f;   Composite datastore   综合性数据存储 |…

约瑟夫斯问题-java版数组解法和链表解法

10个人围成一圈&#xff0c;从1到10编号&#xff0c;从1开始数&#xff0c;数到3或3的倍数的位置&#xff0c;则该位置的人出局&#xff0c;求最后剩下哪一个号&#xff1f; 数组解法&#xff1a; 数组存放数组&#xff1a;a[10]存在1到10编号人 数组遍历到尾部又从头遍历&…

少写点if-else吧,它的效率有多低你知道吗?

# 干了这碗鸡汤我要再和生活死磕几年。要么我就毁灭&#xff0c;要么我就注定铸就辉煌。如果有一天&#xff0c;你发现我在平庸面前低了头&#xff0c;请向我开炮。--杰克凯鲁亚克if-else涉及到分支预测的概念&#xff0c;关于分支预测上篇文章《虚函数真的就那么慢吗&#xff…

为什么不能在中断上半部休眠?

这是一个老生常谈的问题。我们先简单说下什么是中断「因为最近在群里看到有人竟然不懂什么是中断」。中断是计算机里面非常核心的东西&#xff0c;我们可以跑OS&#xff0c;可以多任务运行都因为中断的存在。假设你是一个CPU&#xff0c;你正在睡觉。你突然觉得肚子疼&#xff…

j.u.c系列(08)---之并发工具类:CountDownLatch

写在前面 CountDownLatch所描述的是”在完成一组正在其他线程中执行的操作之前&#xff0c;它允许一个或多个线程一直等待“&#xff1a;用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法&#xff0c;所以在当前计数到达零之前&#xff0c;await 方法会一直受…

巧用1个GPIO控制2个LED显示4种状态

很多电子产品有状态指示灯&#xff0c;比如电视机&#xff1a;待机状态亮红灯开机状态亮绿灯实现起来很简单&#xff0c;微控制器MCU的两个GPIO分别控制就行&#xff1a;不过资源总是紧张的&#xff0c;有时候会碰到GPIO不够用的情况。如果只用1个GPIO&#xff0c;可不可以实现…

大大大大数怎么求余?C语言

问题&#xff1a;一个特别大的数除以23求余数用C语言应该怎么算啊&#xff1f;比如23232323232323232323232323232323232323232323232323232323233除以23&#xff0c;怎么算余数&#xff1f;数据类型在计算机的存储是有大小限制的&#xff0c;所以才出现了大数求余这种问题&…

程序员因拒绝带电脑回家工作被开除!获赔19.4万元

近日&#xff0c;男子拒绝春节带电脑回家工作被开除的消息&#xff0c;成为了不少网友关注的焦点&#xff0c;引发网友共鸣。因为春节拒绝带工作电脑回家被开除&#xff0c;上海一位软件工程师起诉公司获赔19.4万元。2月2日&#xff0c;据上海浦东法院公众号消息&#xff0c;该…

随便写写(5)

也许是今年发生的事情太多了&#xff0c;所以比以前要更关注时事&#xff0c;虽然面对一些既成的事实&#xff0c;难免要进行痛心的思考。 昨天晚上关注了一下东方卫视播出的9.8特大尾矿库溃坝事故的后续报道&#xff0c;这起特大人为事故已经得到了认定&#xff0c;相关的责任…

利用C语言中的setjmp和longjmp,来实现异常捕获和协程

一、前言二、函数语法介绍与 goto 语句比较与 fork 函数比较与 Python 语言中的 yield/resume 比较三、利用 setjmp/longjmp 实现异常捕获四、利用 setjmp/longjmp 实现协程五、总结一、前言 在 C 标准库中&#xff0c;有两个威力很猛的函数&#xff1a;setjmp 和 longjmp&…

centos6.9系列LNMP环境的安装

一、Nginx 1.先解决Nginx的依赖关系&#xff1a; yum install -y pcre-devel openssl-devel 2.安装wget&#xff1a;sudo yum -y install wget 3.下载nginx的安装包&#xff1a;wget http://nginx.org/download/nginx-1.10.3.tar.gz 4.解压nginx文件包&#xff1a;tar xf nginx…