cdq分治
eazo
这个作者很懒,什么都没留下…
展开
-
路径和(cdq分治)
题目描述 对于一张有向图,定义d(u,v,w)为从u号点出发,不经过v号点,最终到达w号点的最短路径长度。如果不存在这样的路径,d(u,v,w)的值为−1。 你也可以认为d(u,v,w)是删去v点和其相关的边后,图中u到w的最短路。 现在给定这张有向图每两个点之间的有向边的长度(如果不存在连边则为−1),对于所有满足1≤x,y,z≤n,x≠y,y≠z的有序数对(x,y,z),求它们d(x,y,z)的和。 你可以借助样例一解释来理解上面这句话的意思。 输入 第一行输入一个正整数n,表示该地区的点数。 接下来输原创 2020-05-31 21:34:20 · 540 阅读 · 0 评论 -
2020 年 “游族杯” 全国高校程序设计网络挑战赛 Coronavirus Battle(cdq分治+离散化)
题意 对每个三维点(x,y,z),只有在这个单位时间存在一个点位于(x’,y’,z’) { x’<x && y’<y && z’<z}时,这个点才能在这个单位时间存活,求每个点的存活时间 思路 对z轴进行离散化,然后对整体进行cdq分治,求每个点之后有几个点 代码实现 #pragma GCC optimize(3,"Ofast","inline") #include<bits/stdc++.h> using namespace std; type原创 2020-05-24 18:11:22 · 250 阅读 · 0 评论