@bzoj - 2388@ 旅行规划】的更多相关文章

传送门 题意: 区间加和询问一段区间内整体前缀和的最大值 刚才还在想做完这道题做一道区间加等差数列结果发现这道就是.... 唯一的不同在于前缀和一段区间加上等差数列后,区间后面也要加上一个常数!!! 线段树没法搞吧....分块! 每个块维护整体加标记,首项,公差 修改的时候: 左面不完整的块下放标记暴力重构: 中间的整块打标记: 右面不完整的块也是下放标记暴力重构,注意这个地方$r$之外的部分也要更新! 右面完整的块也要打标记! 怎么查询呢? 左右不完整的块暴力查询 中间的整块,可以发现我们每次…
目录 @description@ @solution@ @accepted code@ @details@ @description@ 请你维护一个序列,支持两种操作: (1)某个区间 [x, y] 内的数同时加上一个增量 k. (2)询问某一个区间 [x, y] 中从 1 开始的最大前缀和. input 第一行给出一个整数 n.n <= 100000.接下来一行 n 个整数表示序列的初始值. 第三行给出一个整数 m,m <= 100000.接下来 m 行每行一个操作. (1) 0 x y k…
2388: 旅行规划 Time Limit: 50 Sec  Memory Limit: 128 MBSubmit: 405  Solved: 118[Submit][Status][Discuss] Description OIVillage是一个风景秀美的乡村,为了更好的利用当地的旅游资源,吸引游客,推动经济发展,xkszltl决定修建了一条铁路将当地n个最著名的经典连接起来,让游客可以通过火车从铁路起点(1号景点)出发,依次游览每个景区.为了更好的评价这条铁路,xkszltl为每一个景区都…
题目大意: http://www.lydsy.com/JudgeOnline/problem.php?id=4501 题解: 首先我们不考虑可以删除边的情况下,如何计算期望边数. 然后我们发现这是个有向无环图 所以直接\(f[u] = \sum\frac{f[v] + 1}{deg_u}\)直接计算即可 然后我们考虑如果允许删除边 注意这句话 保证对于每个限制(x,y),第x条边和第y条边的起点是相同的 所以可以分别考虑每次转移 这时候我们考虑如何决策才能最优化\(f[u]\) 即最优化\(\s…
动态开点线段树+树链剖分  对于每一种宗教信仰都开一颗线段树 空间: QlogN 即每一次修改都只会改变logN 个点 时间 O(QlogN)  naive题  边没有开两倍  QAQ bzoj 3531 #include <bits/stdc++.h> using namespace std; inline int read() { ,f=; char ch=getchar(); ') { ; ch=getchar(); } ') { x=x*+ch-'; ch=getchar(); } r…
01分数规划+最大权闭合子图 倒拓扑序处理每个节点 $$f[x]=\frac{\sum{f[v]}}{n}+1$$ 二分答案$val$ 只需要判断是否存在$\sum{f[v]}+1-val>0$即可 点权下放给边,限制${x,y}$即为若边$x$存在,则边$y$存在 建图,跑网络流即可 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include&l…
题目描述 OIVillage 是一个风景秀美的乡村,为了更好的利用当地的旅游资源,吸引游客,推动经济发展,xkszltl 决定修建了一条铁路将当地 nnn 个最著名的经典连接起来,让游客可以通过火车从铁路起点( 111 号景点)出发,依次游览每个景区.为了更好的评价这条铁路,xkszltl 为每一个景区都赋予了一个美观度,而一条旅行路径的价值就是它所经过的景区的美观度之和.不过,随着天气与季节的变化,某些景点的美观度也会发生变化. xkszltl 希望为每位旅客提供最佳的旅行指导,但是由于游客的…
题目 OIVillage 是一个风景秀美的乡村,为了更好的利用当地的旅游资源,吸引游客,推动经济发展,xkszltl 决定修建了一条铁路将当地 $n$ 个最著名的经典连接起来,让游客可以通过火车从铁路起点( $1$ 号景点)出发,依次游览每个景区.为了更好的评价这条铁路,xkszltl 为每一个景区都赋予了一个美观度,而一条旅行路径的价值就是它所经过的景区的美观度之和.不过,随着天气与季节的变化,某些景点的美观度也会发生变化. xkszltl 希望为每位旅客提供最佳的旅行指导,但是由于游客的时间…
题面: Waldives 有 N 个小岛.目前的交通系统中包含 N-1 条快艇专线,每条快艇 专线连接两个岛.这 N-1条快艇专线恰好形成了一棵树. 由于特殊的原因,所有N-1条快艇专线都是单向的.这导致了很多岛屿之间 不能相互到达.因此,Waldives 政府希望新建一些公交线路,使得建设完毕后, 任意两个小岛都可以互相到达.为了节约开支,政府希望建设最少的公交线路.  同时,出于规划考虑,每一条公交线路都有如下的要求: 1.每一条交通线路包含若干条连续的快艇专线,你可以认为一条公交线路 对应…
传送门 分块+凸包 求出前缀和数组s 对于l~r加上k,相当于s[l]~s[r]加上一个首项为k,公差为k的等差数列.r~n加上k*(r-l+1). 分块之后对每一块维护两个标记,一个记录它加的等差数列(两个等差数列相加仍是等差数列),一个记录它整体加的值. 设首项的标记为A,公差为B 查询一块的最大值,就是询问最大的 s[i] + i*B 可以看成询问平面上的若干横坐标为i,纵坐标为si,斜率为B的直线的最大纵截距,那么维护一个上凸壳即可. 对于散点修改后暴力重构凸包. 对于询问在凸包上三分.…
考虑分块,每块维护两个标记$ts,td$. 那么对于块中一个位置$i$,它的实际值为$i\times td+ts+v_i$. 修改的时候,对于整块,直接打标记,对于零散的暴力修改,然后重构凸壳,时间复杂度$O(\sqrt{n})$. 查询的时候在凸壳上二分即可,时间复杂度$O(\sqrt{n}\log n)$. #include<cstdio> #define N 100010 typedef long long ll; int n,m,cnt,lim,i,op,x,y,pos[N],st[N…
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1050 题意:给出一个带权图.求一条s到t的路径使得这条路径上最大最小边的比值最小? 思路:将边排序.枚举最小边,然后将边一个一个插到并查集里,s和t联通时计算更新答案. struct node { int u,v,w; void get() { RD(u,v,w); } }; int cmp(node a,node b) { return a.w<b.w; } int n,m,s,t;…
裸链剖. 这大概是我第一份两百行左右的代码吧. 然而我把题看错了233333333调了将近两天. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define maxv 100050 #define maxe 300050 using namespace std; struct edge { int v,w,nxt; }e[maxe]; struct edg…
Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T,求一条路径,使得路径上最大边和最小边的比值最小.如果S和T之间没有路径,输出”IMPOSSIBLE”,否则输出这个比值,如果需要,表示成一个既约分数. 备注: 两个顶点之间可能有多条路径. Input 第一行包含两个正整数,N和M. 下来的M行每行包含三个正整数:x,y和v.表示景点x到景点y之间有一条双向公路,车辆必须以速度v在该公…
题目如下: 题目描述 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T,求一条路径,使得路径上最大边和最小边的比值最小.如果S和T之间没有路径,输出”IMPOSSIBLE”,否则输出这个比值,如果需要,表示成一个既约分数. 备注: 两个顶点之间可能有多条路径. 输入 第一行包含两个正整数,N和M. 下来的M行每行包含三个正整数:x,y和v.表示景点x到景点y之间有一条双向公路,车辆必须以速度v在该公路上行驶…
图论一直是小C的弱项,相比其它题型,图论的花样通常会更多一点,套路也更难捉摸. Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T,求一条路径,使得路径上最大边和最小边的比值最小.如果S和T之间没有路径,输出”IMPOSSIBLE”,否则输出这个比值,如果需要,表示成一个既约分数. 备注: 两个顶点之间可能有多条路径. Input 第一行包含两个正整数,N和M.下来的M行每行包含三个正…
题目链接 无优化版本(170行): /* 首先树剖可以维护树上的链Sum.Max 可以对每个宗教建一棵线段树,那这题就很好做了 不过10^5需要动态开点 (不明白为什么nlogn不需要回收就可以 不是每个Insert加log个节点?) 操作修改完更改原数列!盲人.. */ #include<cstdio> #include<cctype> #include<algorithm> #define gc() getchar() #define now node[rt] #d…
Solution 实际上就是查询 $u$ 到 $v$ 路径上 边双的个数 $ -1$. 并且题目仅有删边, 那么就离线倒序添边. 维护 边双 略有不同: 首先需要一个并查集, 记录 边双内的点. 在 添加边$(u,v)$时 , 若$u, v$ 已经相连, 那么把 $u, v$ 路径上的点 缩成一个点, 用最上面的点 来代替. void del(int x, int y) { if (!x) return; fa[x] = y; del(lc(x), y); del(rc(x), y); } 压缩…
传送门 分块好题. 题意:维护区间加,维护区间前缀和的最大值(前缀和指从1开始的). 思路: 考虑分块维护答案. 我们把每个点看成(i,sumi)(i,sum_i)(i,sumi​)答案一定会在凸包上,于是我们每个块维护一个凸包. 然后发现 每次前缀和可以分区域修改,在区域内的相当于给所有点的连线加一个斜率,对于区域外的相当于打一个addaddadd标记,于是给每个块维护整体加标记,斜率增加的首项,斜率的增量标记即可. 查询的时候每个块在凸包上二分一波. 代码: #include<bits/st…
题意 题目链接 Sol 直接挂队爷的题解了 分块题好难调啊qwq #include<bits/stdc++.h> #define LL long long using namespace std; const int MAXN = 1e6 + 10; const LL INF = 6e18; template <typename A, typename B> inline bool chmin(A &a, B b){if(a > b) {a = b; return 1…
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1050 题目大意: 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T,求一条路径,使得路径上最大边和最小边的比值最小.如果S和T之间没有路径,输出”IMPOSSIBLE”,否则输出这个比值,如果需要,表示成一个既约分数. 备注: 两个顶点之间可能有多条路径. 思路: 枚举最小的边,逐步按照权值从小…
写了5KB,1发AC... 题意:给出一颗树,支持5种操作. 1.修改某条边的权值.2.将u到v的经过的边的权值取负.3.求u到v的经过的边的权值总和.4.求u到v的经过的边的权值最大值.5.求u到v经过的边的权值最小值. 基于边权的树链剖分,放在线段树上变成了区间维护问题了,线段树维护4个量min,max,sum,tag就可以了. # include <cstdio> # include <cstring> # include <cstdlib> # include…
很好的一道题.. 首先把边权排序.然后枚举最小的边,再依次添加不小于该边的边,直到s和t联通.用并查集维护即可. # include <cstdio> # include <cstring> # include <cstdlib> # include <iostream> # include <vector> # include <queue> # include <stack> # include <map>…
题意: 给出一个树,树上每一条边的边权为 1,求树上所有最长链的点集并. 细节: 可能存在多条最长链!最长链!最长链!重要的事情说三遍 分析: 方法round 1:暴力乱搞Q A Q,边权为正-> d f s 解决,如何标记点集呢,只需要求出最大长度,然后在进行一次遍历,当当前长度等于最长链长的时候就返回 true,并且对沿路的节点进行标记. 好吧这样你就成功的死亡了,还是细节最长链有多条!有多条!有多条!好吧我们再来看一张神奇的图片 点我的最帅最美 想象一下多条最长链一定是根所示的有一条链和一…
题解:枚举最大边,然后对<=最大边的边做最大生成树,使最小边最大 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxn=100009; const int oo=1000000000; int Gcd(int a,int b){ if(b==0)return a; return Gcd(b…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…
题目1: NOI2014 魔法森林 LCT维护MST.解题报告见LOFTER #include <cstdio> #include <iostream> #include <cstring> #include <algorithm> #include <cstdlib> using namespace std; + ; const int inf = 1e9; int n, m, ans = inf; struct Edge { int from…
----ROSCon2012-2017----来源链接:https://roscon.ros.org           近三年ROSCon(2015-2017)都会将会议视频录像和文档公开~以下为机器翻译~ ----2017---- ROSCon将于2017年9月21日至22日在加拿大温哥华举行! 那就是在加拿大温哥华温哥华会议中心的同一地点发生的IROS之前的星期四和星期五.所以如果你打算到IROS旅行,只需要加上几天的旅程,这样你可以加入我们在加拿大温哥华的ROSCon. 注册 ROSCo…
http://www.lydsy.com/JudgeOnline/problem.php?id=1690 第一题不是水题的题.. 分数规划.. T-T 百度吧..http://blog.csdn.net/hhaile/article/details/8883652 也就是解最大的分数.. [定义] 01分数规划问题:所谓的01分数规划问题就是指这样的一类问题,给定两个数组,a[i]表示选取i的收益,b[i]表示选取i的代价.如果选取 i,定义x[i]=1否则x[i]=0.每一个物品只有选或者不选…
Description 作为对奶牛们辛勤工作的回报,Farmer John决定带她们去附近的大城市玩一天.旅行的前夜,奶牛们在兴奋地讨论如何最好地享受这难得的闲暇. 很幸运地,奶牛们找到了一张详细的城市地图,上面标注了城市中所有L(2 <= L <= 1000)座标志性建筑物(建筑物按1..L顺次编号),以及连接这些建筑物的P(2 <= P <= 5000)条道路. 按照计划,那天早上Farmer John会开车将奶牛们送到某个她们指定的建筑物旁边,等奶牛们完成她们的整个旅行并回到…