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
BZOJ1150
BZOJ1150
:[APIO/CTSC2007]数据备份——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=1150你在一家IT公司为大型写字楼或办公楼(offices)的计算机数据做备份。然而数据备份的工作是枯燥乏味的,因此你想设计一个系统让不同的办公楼彼此之间互相备份,而你则坐在家中尽享计算机游戏的乐趣。已知办公楼都位于同一条街上。你决定给这些办公楼配对(两个一组)。每一对办公楼可以通过在这两个建筑物之
weixin_34356138
·
2020-08-14 08:29
BZOJ1150
[CTSC2007]数据备份Backup——模拟费用流+堆+链表
题目描述你在一家IT公司为大型写字楼或办公楼(offices)的计算机数据做备份。然而数据备份的工作是枯燥乏味的,因此你想设计一个系统让不同的办公楼彼此之间互相备份,而你则坐在家中尽享计算机游戏的乐趣。已知办公楼都位于同一条街上。你决定给这些办公楼配对(两个一组)。每一对办公楼可以通过在这两个建筑物之间铺设网络电缆使得它们可以互相备份。然而,网络电缆的费用很高。当地电信公司仅能为你提供K条网络电缆
weixin_34007291
·
2020-08-14 08:43
bzoj 1150 [CTSC2007]数据备份Backup
bzoj1150
[CTSC2007]数据备份BackupDescription你在一家IT公司为大型写字楼或办公楼(offices)的计算机数据做备份。
diezhe3537
·
2020-08-14 06:10
bzoj1150
[APIO2007]数据备份
题目描述你在一家IT公司为大型写字楼或办公楼(offices)的计算机数据做备份。然而数据备份的工作是枯燥乏味的,因此你想设计一个系统让不同的办公楼彼此之间互相备份,而你则坐在家中尽享计算机游戏的乐趣。已知办公楼都位于同一条街上。你决定给这些办公楼配对(两个一组)。每一对办公楼可以通过在这两个建筑物之间铺设网络电缆使得它们可以互相备份。然而,网络电缆的费用很高。当地电信公司仅能为你提供K条网络电缆
David1950
·
2020-08-14 06:29
BZOJ1150
(WQS二分优化dp)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1150分析:我们用dp[i][j][0/1]表示第i座楼与第i-1座楼是否相连(0/1),前i座楼构成了前j组的最小距离花费。然后可以写出转移方程但显然是n^2,由于j与dp具有单调性,j增加,dp也会增加,而且dp是一个下凸函数,因为选的组的距离会越来越大。考虑二分把枚举j的一维省略,使
1naive1
·
2020-08-11 04:19
动态规划
bzoj1150
数据备份 题解报告
题目传送门【题目大意】有$n$座房子在一条街上,给出每座房子距起点的距离,现在有$k$根电缆可以把两个房子连接起来。保证每座房子至多只会与一座房子相连,求最短的电缆总长度。【思路分析】相当于看成$n-1$个物品,每个物品有一个权值(即两座房子之间的距离),要求不能取相邻的物品,求取出$k$个物品的最小权值之和。我们用一个堆将这$n-1$个物品从小到大排序,堆顶为权值最小的。假设现在取了堆顶的物品$
小叽居biubiu
·
2019-09-18 21:00
bzoj1150
[CTSC2007]数据备份Backup(贪心+堆)
这题好神啊orz我们首先肯定是取相邻的两个点连边。于是我们可以先处理出每相邻两点的距离,然后由于不能选同一个点,我们就当于是在n-1个数中选k个,彼此不能相邻,使得和最小。我们贪心地取最小,每次取了a[x],删掉左边的右边的和a[x],然后加进去一个a[l]+a[r]-a[x],表示反悔了,不取a[x],取a[l]和a[r]。用一个堆来维护即可。注意边界的情况:如果你取了最左端的数,那么次左端的数
Icefox_zhx
·
2018-04-18 16:46
STL
bzoj
贪心
bzoj1150
: [CTSC2007]数据备份Backup(堆+贪心)
题目传送门。解法:跟上一题差不多一个思想。bzoj2151只不过这题多了一个比较恶心的边界而已。那么相对于边界值。就拿他前面没有点来举例。假设现在前面没有点了。那么肯定选他之后不用反悔啊。因为你后面那个肯定比你小啊要不然干嘛选你呢。所以说选完之后把自己和后面的点删除就行了。维护一下即可。跟2151唯一的不同也就这个点了。如果后面没有点也是一样的道理。。代码实现:#include#include#i
Hanks_o
·
2018-03-25 12:18
BZOJ
杂
堆
bzoj 1150 [CTSC2007]数据备份Backup
bzoj1150
[CTSC2007]数据备份BackupDescription你在一家IT公司为大型写字楼或办公楼(offices)的计算机数据做备份。
LGD_HXL
·
2017-04-23 17:08
贪心算法
链表
bzoj1150
: [CTSC2007]数据备份Backup
题目链接
bzoj1150
题目描述DescriptionInput输入的第一行包含整数n和k,其中n(2≤n≤100000)表示办公楼的数目,k(1≤k≤n/2)表示可利用的网络电缆的数目。
zmh964685331
·
2016-03-06 15:00
[
bzoj1150
] [CTSC2007]数据备份Backup
还是用堆维护双向链表来贪心==显然连起来的都是相邻的节点。。先把n-1条线段长度插进小根堆里。。每次将ans加上堆顶的线段长,就是要取这条线段,然后再插入(左边的线段长+右边的线段长-堆顶线段长)。。其实就是取这条线段旁边的线段一开始脑残没考虑到,对于左右两端的线段而言,一旦取了,那么就不用插入不取的情况(因为线段条数一样)。。吃了两发WA优先队列大法好。。。1#include 2#includ
czllgzmzl
·
2016-02-10 00:00
bzoj1150
haha,贪心,边界条件折腾了我一会儿1#include 2#include 3#include 4#include 5usingnamespacestd; 6 7constintMAXN=1000000+200; 8intN,K; 9intdis[MAXN]; 10intl[MAXN]; 11intr[MAXN]; 12intv[MAXN]; 13intvis[MAXN]
Chris_Cao
·
2016-01-08 21:00
bzoj1150
haha,贪心,边界条件折腾了我一会儿1#include 2#include 3#include 4#include 5usingnamespacestd; 6 7constintMAXN=1000000+200; 8intN,K; 9intdis[MAXN]; 10intl[MAXN]; 11intr[MAXN]; 12intv[MAXN]; 13intvis[MAXN]
Chris_Cao
·
2016-01-08 21:00
bzoj1150
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1150 很明显我们只会连相邻的两幢楼 所以样例就是:2 1 2 6 根据题目意思我们不能取相邻的两个数 用贪心的思想,先取最小的1 然后 删去 2 1 2 再 加上 3 表示不取1而去1的左右两边 但是要注意边界 如 1 2 3 4 很明显如果取1,就一定不会取2,取2
·
2015-10-31 08:25
ZOJ
[
BZOJ1150
][CTSC2007]数据备份Backup
首先肯定要选择相邻的公司配对才会距离最小先把两两之间的距离加入小根堆中每次取出堆顶,加入答案,删掉左右线段,再扔进去len[l]+len[r]-len[now]这样如果这个新点被取到,说明取两边而不取中间做K次,贪心就是正确的了/************************************************************** Problem:1150 User:momo
u013233739
·
2015-02-10 16:00
上一页
1
下一页
按字母分类:
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
其他