bzoj3482,jzoj3238-超时空旅行hiperprostor【最短路,凸包,斜率优化】

正题

题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3482


题目大意

一张有向图有正整数边权也有xxx边权。其中xxx可以取任何值(但是要注意所有的xxx边必须长度相等),每次询问求SSSTTT的可能最短路长度个数和它们的和。


解题思路

分层图,第iii层第jjj个点表示SSSiii的最短路且经过了jjjxxx的边方案,然后跑最短路。

现在我们定义fif_ifi表示SSSEEE经过iii条边xxx边的最短路,然后设xxx边的长度为xxx

那么经过iii条边为最短路的情况当且仅当fi+i∗xf_i+i*xfi+ix最小。那么我们可以定义若干条一次函数y=fi+i∗xy=f_i+i*xy=fi+ix,那么就是一条以fif_ifi为截距,iii为斜率的线。那么我们考虑y=fi+i∗xy=f_i+i*xy=fi+ix为最短路的可能情况。

维护一个y=fi+i∗xy=f_i+i*xy=fi+ix的凸包,维护一个单调队列,让剩下的线的两两之间的交点的xxx坐标递增即可。

然后就可以算出第一问,对于第二问用等差数列计算即可。


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cctype>
#include<queue>
#define ll long long
#define p(a1,a2) ((a2)*n+a1)
using namespace std;
const ll N=510,M=10100,inf=1e18;
struct node{ll to,next,w;
}a[M*2];
struct line{double x,y;
}l[N];
ll n,m,ls[N*N],f[N*N],tot,Q,num,ans,next[N];
double ata[N];bool v[N*N];
queue<ll> q;
void addl(ll x,ll y,ll w)
{a[++tot].to=y;a[tot].next=ls[x];ls[x]=tot;a[tot].w=w;
}
ll read() {ll x=0,f=1; char c=getchar();if(c=='x') return -1;while(!isdigit(c)) {if(c=='x')f=-f;c=getchar();}while(isdigit(c)) x=(x<<1)+(x<<3)+c-48,c=getchar();return (!f)?-1:x;
}
void spfa(ll s)
{memset(v,0,sizeof(v));memset(f,127,sizeof(f));q.push(s);v[s]=1;f[s]=0;while(!q.empty()){ll x=q.front();q.pop();ll c=(x-1)/n;if(c==n) continue;for(ll i=ls[(x-1)%n+1];i;i=a[i].next){ll y=p(a[i].to,c+(a[i].w==-1));if(f[x]+max(a[i].w,0ll)<f[y]){f[y]=f[x]+max(a[i].w,0ll);if(!v[y]){v[y]=1;q.push(y);}}}v[x]=0;}return;
}
double gtan(double x1,double y1,double x2,double y2)
{return (y2-y1)/(x1-x2);}
int main()
{n=read();m=read();for(ll i=1;i<=m;i++){ll x,y,w;x=read();y=read();w=read();if(x==y) continue;addl(x,y,w);}Q=read();while(Q--){ll s=read(),t=read();bool flag=0;spfa(p(s,0));for(ll i=0;i<=n;i++)if(f[p(t,i)]<inf){flag=1;break;}if(!flag) {printf("0 0\n");continue;}if(f[p(t,0)]>inf) {printf("inf\n");continue;}ll num=0,sum=0,cnt=0;for(ll i=n;i>=0;i--){if(f[p(t,i)]>inf) continue;while(cnt>=1&&gtan(l[cnt].x,l[cnt].y,i,f[p(t,i)])<=ata[cnt]) cnt--;l[++cnt]=(line){i,f[p(t,i)]};if(cnt>1) ata[cnt]=gtan(l[cnt-1].x,l[cnt-1].y,l[cnt].x,l[cnt].y);}for(ll i=1;i<cnt;i++){ll L=(int)ata[i]+1,R=(int)ata[i+1];if(L<=R) sum+=(ll)(L*l[i].x+l[i].y+R*l[i].x+l[i].y)*(R-L+1)/2;}num=(ll)ata[cnt];if(ata[cnt]!=num||cnt==1) num++,sum+=f[p(t,0)];printf("%lld %lld\n",num,sum);}
}

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

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

相关文章

Ray框架QA

Orleans与Akka对比&#xff0c;为什么选用Orleans&#xff1f;答: Akka对参与开发的人员要求更高一些&#xff0c;普遍是专家级别&#xff0c;Orleans框架进一步抽象了一层&#xff0c;结合C#语言特性&#xff0c;能普遍降低开发难度。下面是知乎网友的答案&#xff0c;可以参考…

Nacos(三)之架构

转载自 Nacos 架构 基本架构及概念 服务 (Service) 服务是指一个或一组软件功能&#xff08;例如特定信息的检索或一组操作的执行&#xff09;&#xff0c;其目的是不同的客户端可以为不同的目的重用&#xff08;例如通过跨进程的网络调用&#xff09;。Nacos 支持主流的服务…

欢乐纪中某A组赛【2019.7.11】

前言 话说今天好像放做题导致BBB组贼难AAA组还好。 成绩 JJJ表示初中&#xff0c;HHH表示高中后面加的是几年级 RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC101010(J−2)WYC(J-2)WYC(J−2)WYC250250250100100100100100100505050282828(J−2)ZYC(J-2)ZYC(J−2)ZYC…

ASP.NET Core Razor页面禁用防伪令牌验证

这篇短文中&#xff0c;我将向您介绍如何ASP.NET Core Razor页面中禁用防伪令牌验证。Razor页面是ASP.NET Core 2.0中增加的一个页面控制器框架&#xff0c;用于构建动态的、数据驱动的网站&#xff1b;支持跨平台开发&#xff0c;可以部署到Windows&#xff0c;Unix和Mac操作系…

Nacos(四)之安装

转载自 Nacos 快速开始 这个快速开始手册是帮忙您快速在您的电脑上&#xff0c;下载、安装并使用 Nacos。 0.版本选择 您可以在Nacos的release notes及博客中找到每个版本支持的功能的介绍&#xff0c;当前推荐的稳定版本为1.4.1。 1.预备环境准备 Nacos 依赖 Java 环境来…

jzoj1166-树中点对距离【点分治】

正题 题目大意 求一棵树上有多少条路径长度≤len\leq len≤len 解题思路 首先普通点分治。扫描的时候将每个点保存为一个二元组(dis,gra)(dis,gra)(dis,gra)分别表示离(分治到的)根的距离&#xff0c;属于根的那颗子树。 然后按照disdisdis排序&#xff0c;两个指针L,RL,RL,…

ASP.NETCore的Kestrel服务器

什么是Kestrel服务器Kestrel是开源的&#xff08;GitHub提供的源代码&#xff09;&#xff0c;事件驱动的异步I / O服务器&#xff0c;用于在任何平台上托管ASP.NET应用程序。这是一个监听服务器和一个命令行界面。您将侦听服务器安装在Windows或Linux服务器上&#xff0c;并在…

Nacos(五)之Spring集成

转载自 Nacos Spring 快速开始 本文主要面向 Spring 的使用者&#xff0c;通过两个示例来介绍如何使用 Nacos 来实现分布式环境下的配置管理和服务发现。 关于 Nacos Spring 的详细文档请参看&#xff1a;nacos-spring-project。 通过 Nacos server 和 Nacos Spring 配置管…

jzoj3360-[NOI2013模拟]苹果树【树上莫队,LCA】

正题 题目大意 一棵树上每个节点有不同的颜色&#xff0c;然后每次询问(x,y,a,b)(x,y,a,b)(x,y,a,b)表示将颜色aaa看为颜色bbb的情况下询问xxx到yyy有多少不种的颜色。 解题思路 数颜色&#xff0c;显然树上莫队。我们维护一个欧拉序dfndfndfn(进去时记录一次出来时记录一次)…

Polly组件对微服务场景的价值

Polly是一个开源框架,在github上可以找到,被善友大哥收录,也是.App vNext的一员!App vNext:https://github.com/App-vNextGitHub:https://github.com/App-vNext/PollyNanoFabric是一个开源的微服务架构,也是善友大哥推荐的:https://github.com/geffzhang/NanoFabric对于NanoFab…

Nacos(六)之Spring Boot集成

转载自 Nacos Spring Boot 快速开始 本文主要面向 Spring Boot 的使用者&#xff0c;通过两个示例来介绍如何使用 Nacos 来实现分布式环境下的配置管理和服务发现。 关于 Nacos Spring Boot 的详细文档请参看&#xff1a;nacos-spring-boot-project。 通过 Nacos Server 和…

P4556,jzoj3397-[GDOI2014模拟]雨天的尾巴【树链剖分,线段树】

正题 题目链接:https://www.luogu.org/problemnew/show/P4556 题目大意 nnn个点的一棵树&#xff0c;给出mmm个操作(x,y,z)(x,y,z)(x,y,z)表示将xxx到yyy的路径上的所有点给与一个zzz类型的食量。 最后对于每个点输出最多的粮食类型。 解题思路 先对这棵树进行树剖&#xff…

Nacos(七)之Spring Cloud集成

转载自 Nacos Spring Cloud 快速开始 本文主要面向 Spring Cloud 的使用者&#xff0c;通过两个示例来介绍如何使用 Nacos 来实现分布式环境下的配置管理和服务注册发现。 关于 Nacos Spring Cloud 的详细文档请参看&#xff1a;Nacos Config 和 Nacos Discovery。 通过 Nac…

.NET Core 2.1中改进的堆栈信息

. NET Core 2.1 现在具有可读的异步堆栈信息&#xff01;使得异步、迭代器和字典 ( key not found ) 中的堆栈更容易追踪&#xff01;这个大胆的主张意味着什么&#xff1f;要知道&#xff0c;为了确定调用 异步 和 迭代器方法的实际重载&#xff0c;&#xff08;这在以前&…

jzoj3362,bzoj3758-[NOI2013模拟]数数【分段打表,背包,状压】

正题 bzojbzojbzoj题面链接:https://www.lydsy.com/JudgeOnline/problem.php?id3758 题目大意 求A∼BA\sim BA∼B中有多少个数满足数字上的位数可以分成两个和相等的集合。 解题思路 首先我们考虑如何快速判断一个数是否是满足要求的数&#xff0c;我们可以用背包&#xff0…

Nacos(八)之Docker

转载自 Nacos Docker 快速开始 操作步骤 Clone 项目 git clone https://github.com/nacos-group/nacos-docker.git cd nacos-docker单机模式 Derby docker-compose -f example/standalone-derby.yaml up单机模式 MySQL 如果希望使用MySQL5.7 docker-compose -f example/sta…

微软高管解读财报:努力创新云基础架构

2月1日&#xff0c;微软发布了该公司截至2017年12月31日的2018年第二财季财报&#xff08;即2017年第四季度&#xff09;。财报显示&#xff0c;微软第二财季营收为289.18亿美元&#xff0c;比上年同期的258.26亿美元增长了12%。受税改与就业法案相关的一次性费用138亿美元的影…

欢乐纪中某A组赛【2019.7.12】

前言 暴力写挂垫底了呀\huge \color{red}\texttt{暴力写挂}\small\color{white}\\\texttt{垫底了呀}暴力写挂垫底了呀 %%%ZZYrank1\texttt{\%\%\% ZZY rank1}%%% ZZY rank1 成绩 JJJ表示初中&#xff0c;HHH表示高中后面加的是几年级 RankRankRankPersonPersonPersonScoreScore…

Nacos(九)之Dubbo 融合 Nacos 成为注册中心

转载自 Dubbo 融合 Nacos 成为注册中心 Nacos 作为 Dubbo 生态系统中重要的注册中心实现&#xff0c;本文将会介绍如何进行 Dubbo 对接 Nacos 注册中心的工作。 预备工作 请确保后台已经启动 Nacos 服务&#xff0c;可先行参考 Nacos 快速入门。 快速上手 Dubbo 融合 Nac…

在.NET Core中处理一个接口多个不同实现的依赖注入问题

前言近段时间在准备公司的技术分享&#xff0c;所以这段时间将大部分时间放在准备分享内容上去了。博客也就停了一下下。在.NET Core中处理依赖注入问题时&#xff0c;往往是定义好了一个操作规范的接口&#xff0c;会有N多个基于不同技术的实现&#xff0c;根据实际情况在项目…