E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Zjoi2013
【学习笔记】线性规划与对偶问题和LP对偶费用流([
ZJOI2013
]防守战线题解)
线性规划与对偶问题原问题:min{7x1+x2+5x3}s.t.{x1−x2+3x3≥105x1+2x2−x3≥6xi≥0\min\{7x_1+x_2+5x_3\}\\s.t.\begin{cases}x_1-x_2+3x_3\ge10\\5x_1+2x_2-x_3\ge6\\x_i\ge0\end{cases}min{7x1+x2+5x3}s.t.⎩⎪⎨⎪⎧x1−x2+3x3≥105x1+2x
ikrvxt
·
2024-01-16 16:37
学习
线性代数
线性规划
对偶问题
LP对偶费用流
[
ZJOI2013
]K大数查询
题目传送门toluogu思路首先,区间第kkk大只能靠二分。(毕竟划分树想在线还是挺难的。)考虑到修改操作很离谱,无法直接维护。但是二分答案之后,区间加入数字相当于区间+1+1+1,就变成可维护的信息了。故而整体二分即可。不用管它是否平衡,只要总共logn\lognlogn层、每一层的操作都只分到一个儿子去,总复杂度就是层数×\times×操作数即O(qlogn)\mathcalO(q\log
OneInDark
·
2021-02-16 15:57
C++
数据结构
脑洞:整体分块 + BSGS
Ran让EI刷整体二分的题,并且丢给EI一道「
ZJOI2013
」K大数查询。但是EI并不想写整体二分。也不想写数据结构。于是一拍脑门,就有了这个奇怪的想法。
Entropy Increaser
·
2020-08-20 22:24
研究
整体二分\cdq分治——洛谷P3332 [
ZJOI2013
]K大数查询
https://daniu.luogu.org/problem/show?pid=3332第一次接触整体二分;上课的时候小红说这用树套树做,但感觉好难啊,二维线段树都不会,怎么做树套树啊;然后就去做整体二分了;整体二分通过递归实现,和线段树一样,把一段东西变成两段,处理好这两段之间的关系后,这两段就相对独立了,我们直接分治这两段;首先这题我们要离线做;总共有两种操作插入,查询;查询的是第k大;我们
largecub233
·
2020-08-19 10:56
____目前无用____
bzoj 3214 //3214:[
ZJOI2013
]丽洁体
bzoj3214//3214:[
ZJOI2013
]丽洁体//在线测评地址https://www.lydsy.com/JudgeOnline/problem.php?
mrcrack
·
2020-08-18 00:38
跟着大佬学算法
[luogu] P3333 [
ZJOI2013
]丽洁体(贪心)
P3333[
ZJOI2013
]丽洁体题目描述平时的练习和考试中,我们经常会碰上这样的题:命题人给出一个例句,要我们类比着写句子。
a6823202
·
2020-08-15 13:24
数据结构与算法
3110: [
Zjoi2013
]K大数查询
Description有N个位置,M个操作。操作有两种,每次操作如果是1abc的形式表示在第a个位置到第b个位置,每个位置加入一个数c如果是2abc形式,表示询问从第a个位置到第b个位置,第C大的数是多少。Input第一行N,M接下来M行,每行形如1abc或2abcOutput输出每个询问的结果SampleInput2511211122211221112123SampleOutput121思路:线
SCUT_Pein
·
2020-08-14 04:07
数据结构_树套树
树套树专题——bzoj 3110: [
Zjoi2013
] K大数查询 & 3236 [Ahoi2013] 作业 题解
【原题1】3110:[
Zjoi2013
]K大数查询TimeLimit:20SecMemoryLimit:512MBSubmit:978Solved:476Description有N个位置,M个操作。
阿蒋
·
2020-08-10 22:10
省选题解
算法讲解
bzoj题解
洛谷 P3332 [
ZJOI2013
]K大数查询
题目:K大数查询思路:整体二分。维护两个区间[L,R]和[l,r],分别代表二分的答案区间,和可以满足答案的询问区间。在[L,R]上二分M。对于1操作,如果v小于M,在[q.l,q.r]上用线段树实现区间加一,值赋1,否则赋0。对于2操作,询问[q.l,q.r]上的数的个数s,若v小于等于s,值赋1,否则赋0。注意longlong的使用,以及线段树打标记清空。代码:#includeusingnam
ZarOuaoan
·
2020-08-09 11:39
整体二分
[P3332][
ZJOI2013
]K大数查询(树套树)
感觉跟DynamicRankings差不多,但是需要区间修改。可以考虑分别维护两个树状数组,Σroot[1~i]记录第i个位置目前都有哪些数,Σroot1[1~i]记录第i个位置分别和前面i-1个位置的差的和。这样修改时就差分变成了单点修改,查询时用root中的值*位置的序号-root1中的值求出从第1个到所求位置的数的个数和,再加上和上面那道题一样的树状数组和主席树的操作就可以了。#includ
seeeagull
·
2020-08-09 02:29
主席树
树状数组
【BZOJ 3110】 [
Zjoi2013
]K大数查询 整体二分+树状数组区间修改
额,只能说整体二分是一个很神奇的东西,首先既然是二分虽然加了一个整体听起来变得立马高大上起来,但是还是需要从最基本的二分思路出发才能理解。首先如果对于只有一次地查询操作的话我们很容易就可以想到二分的写法,二分权值然后加上cheak操作判断比当前大的值有多少个,然后不断缩小二分的区间直到最后l==r。类似的,在整体二分我们同样用到类似的思想,这里简单模拟一下操作过程,希望能帮组大家理解;首先用一个p
pbihao
·
2020-08-08 18:42
ac之路
bzoj
数据结构
K大数查询——整体二分套线段树
3110:[
Zjoi2013
]K大数查询TimeLimit:20SecMemoryLimit:512MBSubmit:5881Solved:1958[Submit][Status][Discuss]Description
Timsei
·
2020-07-15 19:46
[NOI2008]志愿者招募 [
Zjoi2013
]防守战线 一种网络流套路
文章目录Description志愿者招募防守战线AnalyzeCodeDescription志愿者招募申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管。布布刚上任就遇到了一个难题:为即将启动的奥运新项目招募一批短期志愿者。经过估算,这个项目需要N天才能完成,其中第i天至少需要Ai个人。布布通过了解得知,一共有M类志愿者可以招募。其中第i类可以从第Si天工作到第Ti天,招募费用
Jacky35
·
2020-07-05 16:01
总结
网络流
模板库
BZOJ-3110: [
Zjoi2013
]K大数查询 题解(树状数组套线段树)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3110思路:用树状数组套线段树求解。首先,将所有操作离线,然后对要插入的所有数进行离散化,然后每个树状数组节点上建议一棵维护权值的线段树,线段树节点[l,r]维护的即是排名从l到r的数的数目。然后用主席树的方法进行查询第K最值,用处理树状数组区间加的方法(https://www.jianshu.
AmadeusChan
·
2020-03-21 03:05
BZOJ 3112: [
Zjoi2013
]防守战线
真不是我水博客但是它就是那么简单,和它们一模一样直接套单纯形法的板子#include#include#include#defineRIregisterint#defineCIconstint&usingnamespacestd;constintN=1005,M=10005;constdoubleEPS=1e-8;intn,m,tp,l,r;doublea[N][M];namespaceSM//Si
hl666
·
2020-02-06 19:00
脑洞:整体分块 + BSGS
Ran让EI刷整体二分的题,并且丢给EI一道「
ZJOI2013
」K大数查询。但是EI并不想写整体二分。也不想写数据结构。于是一拍脑门,就有了这个奇怪的想法。
Entropy Increaser
·
2019-06-13 16:27
研究
[
ZJOI2013
]K大数查询
原文链接:http://www.cnblogs.com/liankewei/p/10410432.html[
ZJOI2013
]K大数查询题目描述有N个位置,M个操作。
weixin_30458043
·
2019-02-21 09:00
CDQ分治&整体二分学习个人小结
bzoj1790矩形藏宝地hdu5126四维偏序P3157[CQOI2011]动态逆序对CF762ECSUSTOJ1024:CDQCSUSTOJ1026:强制在线树套树整体二分动态区间第k小P3332[
ZJOI2013
Cwolf9
·
2019-01-17 14:00
BZOJ 3110: [
Zjoi2013
]K大数查询(整体二分)
3110:[
Zjoi2013
]K大数查询TimeLimit:20SecMemoryLimit:512MBSubmit:11673Solved:3512[Submit][Status][Discuss]Description
还是太年轻
·
2018-08-15 11:17
分治
BZOJ 3110 [
ZJOI2013
]K大数查询
题目在这里呀~这题被卡常了qaq(ZJOI临近了我也不想在这种题上花太多时间…)可以想到要用二分答案(只是以前做过一道类似的题啦然后常规的,求出左子树的贡献,如果大于c,就往左子树找,否则往右子树找。然后就是树套树了?外层权值内层记区间和。我没看懂他们说的标记永久化什么的,可听说是没负数的而且不会爆int??然后就调了一个晚上,后来看评论发现…天呐要开longlongqwq!于是改成longlon
HermioneL
·
2018-03-19 23:30
BZOJ
OI
线段树
洛谷 P3332 [
ZJOI2013
]K大数查询 线段树套线段树
题目描述有N个位置,M个操作。操作有两种,每次操作如果是1abc的形式表示在第a个位置到第b个位置,每个位置加入一个数c如果是2abc形式,表示询问从第a个位置到第b个位置,第C大的数是多少。输入输出格式输入格式:第一行N,M接下来M行,每行形如1abc或2abc输出格式:输出每个询问的结果输入输出样例输入样例#1:2511211122211221112123输出样例#1:121说明【样例说明】第
Amber_lylovely
·
2018-03-15 16:49
线段树
树套树
P3332 [
ZJOI2013
]K大数查询
前言谁知道是CDQ分治还是整体二分呢?首先,如果只有一个查询,我们可以在区间里二分答案。但是对于修改和操作动态搞,二分可办不了。树套树?不想写这么麻烦的数据结构。那就上我们的CDQ/整体二分吧。把操作和结果等一起二分实现整体过程:当遇到的操作是询问操作时,查询线段树里的当前区间,并将当前区间所包含的数的个数as与查询的第k大相比较,如果小于k,那么把当前询问分到左边去,并统计影响k-=as,反之,
HT008_123
·
2018-01-15 20:50
题目分析
省选
CDQ分治/整体二分
[BZOJ3110][
ZJOI2013
]K大数查询 树套树/CDQ分治
树套树做法:注意到权值很小,于是外层开权值线段树,内层是一个动态开点的区间线段树,维护权值在[L,R],位置在[l,r]的数一共有多少个。修改就是内层的一个线段树上区间加一。查询时,外层线段树中先判断左子树中够不够k个数,若够则往左子树递归,不够就减一下后往右子树。代码(MLE):#include#includeusingnamespacestd;intn,m;structtree1{intsum
DOFYPXY
·
2017-12-03 17:56
数据结构
CDQ分治
树状数组
树套树
线性规划单纯型法(bzoj 3112: [
Zjoi2013
]防守战线)
线性规划:给出若干个不等式,再给出个函数G(),求出G()的极值例如①x2+x3>=1;②x1+x2+x3+x4+x5>=4;③x3+x4+x5>=2G()=x1+5*x2+6*x3+3*x4+4*x5,求G()的最小值部分的线性规划问题可以用网络流来解决如果原不等式系数矩阵每一列上不为0的相同且连续,那么就可以先看上面那个例子的系数矩阵:15634(求min)111(>=)1111141112虽
Jaihk662
·
2017-09-21 12:46
数论
HDU 5412 CRB and Queries && BZOJ 3110: [
Zjoi2013
]K大数查询 (整体二分+树状数组/线段树)
题目传送门们HDU5412BZOJ3110题目分析什么叫整体二分①假如给你一个区间,让你求区间第K小,你怎么做?=。=排序。。或者二分答案然后检验。②假如给你很多区间呢?主席树。③假如带修呢?树套树!线段树套树状数组/treap。其实没必要,直接上整体二分。整体二分是普通二分的进阶版,二分答案的同时,依据与答案的关系将所有的修改和询问分成左右两边再递归求解。整体二分可以解决求动态区间第K小的一类问
AbEver
·
2017-08-10 08:59
离线
BZOJ
整体二分
树状数组
非可持久化数据结构
bzoj 3112: [
Zjoi2013
]防守战线 (单纯形)
题目描述Description战线可以看作一个长度为n的序列,现在需要在这个序列上建塔来防守敌兵,在序列第i号位置上建一座塔有Ci的花费,且一个位置可以建任意多的塔费用累加计算。有m个区间[L1,R1],[L2,R2],…,[Lm,Rm],在第i个区间的范围内要建至少Di座塔。求最少花费。输入描述InputDescription第一行为两个数n,m。接下来一行,有n个数,描述C数组。接下来m行,每
clover_hxy
·
2017-03-06 19:03
线性规划
bzoj3110
zjoi2013
K大数查询
Description有N个位置,M个操作。操作有两种,每次操作如果是1abc的形式表示在第a个位置到第b个位置,每个位置加入一个数c如果是2abc形式,表示询问从第a个位置到第b个位置,第C大的数是多少。Input第一行N,M接下来M行,每行形如1abc或2abcOutput输出每个询问的结果SampleInput2511211122211221112123SampleOutput121HINT
wfj_2048
·
2017-01-20 10:51
整体二分
BZOJ 3110 [
Zjoi2013
]K大数查询 (整体二分 + 树状数组或线段树处理区间合值)
3110:[
Zjoi2013
]K大数查询Description有N个位置,M个操作。
Forever_wjs
·
2016-07-06 16:00
bzoj 3112: [
Zjoi2013
]防守战线 单纯形
单纯形转对偶图。。 由于是全幺模,直接用int存就好了。 常数没有优化慢的飞起。。。AC代码如下:#include #include #include usingnamespacestd; intn,m,a[1005][10005]; voidpvt(intx,inty){ inti,j; for(i=0;i0)break; if(i>m)return-a[0][0]; f
lych_cys
·
2016-05-27 19:00
线性规划
单纯形
bzoj 3214: [
Zjoi2013
]丽洁体 贪心&动态规划
显然两端的字符串要贪心找对吧,中间的那一段考虑类似于dp的方法。显然中间的需要找到最小的r-l,满足[l,r]中包含了给定的第二个串,然后我们中间的一位一位枚举,得到f[i]表示给定第二个串的前i位都满足的当前在中间段的最右处,然后令g[i]表示前i位满足且第i位最右的答案,然后用g[lenS2]更新答案。AC代码如下:#include #include #include #defineN
lych_cys
·
2016-05-17 07:00
字符串
动态规划
hash
贪心
bzoj 3111: [
Zjoi2013
]蚂蚁寻路 动态规划
首先枚举下边界,然后令f[k][x][y]表示已经左转k次,当前在x,y的最优值,转移可以优化到O(1)。因此为O(N^3K)。AC代码如下:#include #include #include #defineinf1000000000 #defineN105 usingnamespacestd; intm,n,cnt,a[N][N],b[N][N],f[N][N],g[N][N]; i
lych_cys
·
2016-05-16 18:00
动态规划
bzoj 3110: [
Zjoi2013
]K大数查询(树套树,整体二分)
3110:[
Zjoi2013
]K大数查询TimeLimit:20SecMemoryLimit:512MBSubmit:4020Solved:1547[Submit][Status][Discuss]Description
clover_hxy
·
2016-04-28 10:04
树套树
cdq分治&整体二分
bzoj 3110: [
Zjoi2013
]K大数查询(树套树)
3110:[
Zjoi2013
]K大数查询TimeLimit: 20Sec MemoryLimit: 512MBSubmit: 4020 Solved: 1547[Submit][Status][Discuss
clover_hxy
·
2016-04-28 10:00
[BZOJ3110][
Zjoi2013
]K大数查询(主席数套线段树 )
题目描述传送门题解外层权值线段树,权值线段树的每一个位置都是一棵线段树,线段树用动态开点。注意pushdown或者查询的时候还有可能要继续开点。注意最顶端的点的权有可能是炸了int了,因为有可能加入了50000^2个点。代码#include #include #include #include usingnamespacestd; #defineLLlonglong constintmax_n=
Clove_unique
·
2016-04-28 09:00
线段树
bzoj
主席树
【bzoj3110】[
Zjoi2013
]K大数查询 权值线段树套区间线段树
权值线段树套区间线段树外层线段树按照完全二叉树的建法全部建出内层线段树动态开点外层的每个节点上都建一棵区间线段树,维护权值在[l,r]中每个区间出现的个数每次修改对应外层线段树上的O(logn)个节点,内层修改一个区间,对应内层线段树上的O(logn)个节点所以,一次修改会修改O(log^2n)个节点#include #include #include #include #include #inc
u012288458
·
2016-04-13 10:00
[BZOJ3112][
ZJOI2013
]防守战线(单纯形)
题目描述传送门题解单纯形裸题。代码#include#include#include#includeusingnamespacestd;constintmax_n=1e3+5;constintmax_m=1e4+5;constdoubleeps=1e-7;constdoubleinf=1e10;doubleA[max_n][max_m],B[max_n],C[max_m],ans;intn,m,L,
Clove_unique
·
2016-03-15 18:59
题解
省选
线性规划
[BZOJ3112][
ZJOI2013
]防守战线(单纯形)
题目描述传送门题解单纯形裸题。代码#include#include#include#includeusingnamespacestd;constintmax_n=1e3+5;constintmax_m=1e4+5;constdoubleeps=1e-7;constdoubleinf=1e10;doubleA[max_n][max_m],B[max_n],C[max_m],ans;intn,m,L,
Clove_unique
·
2016-03-15 18:59
题解
省选
线性规划
[BZOJ3112][
ZJOI2013
]防守战线(单纯形)
题目描述传送门题解单纯形裸题。代码#include #include #include #include usingnamespacestd; constintmax_n=1e3+5; constintmax_m=1e4+5; constdoubleeps=1e-7; constdoubleinf=1e10; doubleA[max_n][max_m],B[max_n],C[max_m],an
Clove_unique
·
2016-03-15 18:00
单纯形
bzoj
ZJOI
bzoj 3110 [
Zjoi2013
]K大数查询(树套树)
Description有N个位置,M个操作。操作有两种,每次操作如果是1abc的形式表示在第a个位置到第b个位置,每个位置加入一个数c如果是2abc形式,表示询问从第a个位置到第b个位置,第C大的数是多少。Input第一行N,M接下来M行,每行形如1abc或2abcOutput输出每个询问的结果SampleInput2511211122211221112123SampleOutput121HIN
hahalidaxin
·
2016-03-06 18:00
bzoj3110【
ZJOI2013
】K大数查询
3110:[
Zjoi2013
]K大数查询TimeLimit: 20Sec MemoryLimit: 512MBSubmit: 3208 Solved: 1361[Submit][Status][Discuss
AaronGZK
·
2016-02-28 22:00
线段树
二分
bzoj
树套树
bzoj3110【
ZJOI2013
】K大数查询
3110:[
Zjoi2013
]K大数查询TimeLimit: 20Sec MemoryLimit: 512MBSubmit: 3208 Solved: 1361[Submit][Status][Discuss
AaronGZK
·
2016-02-28 22:00
线段树
二分
bzoj
树套树
3110: [
Zjoi2013
]K大数查询 线段树套线段树 标记永久化
外层权值线段树,内层区间线段树。每次给一个区间[l,r]增加一个数x,我们就把权值线段树中区间包含x的节点的区间线段树上与[l,r]有关的节点加上这个节点代表的区间的长度。(卧槽好长的一句话慢慢理解。。。)然后每次查询时类似二分答案,注意是第K大不少第K小!注意标记永久化。#include #include #include #include #include #include #definell
Phenix_2015
·
2016-02-24 15:00
BZOJ 3110: [
Zjoi2013
]K大数查询|线段树套线段树
这个题貌似有很多姿势都可以做。我用的是线段树套线段树。因为存在区间插入操作,所以我们可以让外层的线段树为权值线段树,内层的线段树为这个权值区间的数在原序列中的位置数量。这样插入操作就相当于外层的线段树单点修改,内层的区间修改。然后由于考虑到内存的限制,如果线段树节点全开内存肯定会爆而且会TLE。这时候我们可以考虑lazy标记,然后有些节点由于父节点有了标记可能直接没开这个节点,这时候我们有两种做法
ws_yzy
·
2016-02-23 18:00
线段树套线段树
BZOJ_P3110 [
ZJOI2013
]K大数查询(线段树+整体二分)
BZOJ传送门TimeLimit:20SecMemoryLimit:512MBSubmit:3134Solved:1326[Submit][Status][Discuss]Description有N个位置,M个操作。操作有两种,每次操作如果是1abc的形式表示在第a个位置到第b个位置,每个位置加入一个数c如果是2abc形式,表示询问从第a个位置到第b个位置,第C大的数是多少。Input第一行N,M
BeiYu-oi
·
2016-02-21 10:34
线段树
BZOJ
整体二分
BSOJ3723:
ZJOI2013
k大数查询 线段树套线段树
3723--【
ZJOI2013
】K大数查询Description有n个位置和m个操作。操作有两种,每次操作如果是1abc的形式,表示往第a个位置到第b个位置每个位置加入一个数c。
卡评测大师
·
2016-02-18 08:26
题解
树套树
【BZOJ3110】【
ZJOI2013
】K大数查询
3110:[
Zjoi2013
]K大数查询TimeLimit:20SecMemoryLimit:512MBDescription有N个位置,M个操作。
_傲寒
·
2016-02-10 21:41
bzoj:3110: [
Zjoi2013
]K大数查询
Description有N个位置,M个操作。操作有两种,每次操作如果是1abc的形式表示在第a个位置到第b个位置,每个位置加入一个数c如果是2abc形式,表示询问从第a个位置到第b个位置,第C大的数是多少。Input第一行N,M接下来M行,每行形如1abc或2abcOutput输出每个询问的结果SampleInput2511211122211221112123SampleOutput121 树
swm_sxt
·
2016-02-04 12:00
bzoj:3110: [
Zjoi2013
]K大数查询
Description有N个位置,M个操作。操作有两种,每次操作如果是1abc的形式表示在第a个位置到第b个位置,每个位置加入一个数c如果是2abc形式,表示询问从第a个位置到第b个位置,第C大的数是多少。Input第一行N,M接下来M行,每行形如1abc或2abcOutput输出每个询问的结果SampleInput2511211122211221112123SampleOutput121 树
swm_sxt
·
2016-02-04 12:00
[BZOJ3110][
Zjoi2013
]K大数查询
[
Zjoi2013
]K大数查询Description有N个位置,M个操作。
hbhcy98
·
2016-02-03 12:00
树套树
BZOJ 3110: [
Zjoi2013
]K大数查询( 树状数组套主席树 )
BIT+(可持久化)权值线段树,用到了BIT的差分技巧.时间复杂度O(Nlog^2(N))-----------------------------------------------------------------------------------------#include#include#include#include usingnamespacestd; #defineH(x)(lo
JSZX11556
·
2016-01-26 21:00
上一页
1
2
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他