[BZOJ 1150] 数据备份
Link:https://www.lydsy.com/JudgeOnline/problem.php?id=1150
Solution:
思路和洛谷P1484完全相同
只不过将求最大不相邻的点权改为最大不相邻的边权
([P1484] 种树:http://www.cnblogs.com/newera/p/8977924.html)
但在边界条件上还是卡了好长时间,也许一开始我就理解错了
正解应该是将a[0]=INF,保证选过a[1]后绝不选a[2],因为a[1]在不影响剩余点的位置的前提下比a[2]更优
我一开始认为可以由a[1]转移到a[2],于是把left[0]=1
这明显是没有必要的,但为什么会WA?以后再看吧
Code:
#include <bits/stdc++.h> using namespace std;
#define F first
#define S second
typedef long long ll;
typedef pair<ll,int> P; const int MAXN=1e5+;
priority_queue<P,vector<P>,greater<P> > que;
int n,k,dat[MAXN],l[MAXN],r[MAXN],vis[MAXN];
ll d[MAXN],res=; int main()
{
scanf("%d%d",&n,&k);
for(int i=;i<=n;i++) scanf("%d",&dat[i]);
for(int i=;i<=n;i++)
l[i-]=i-,r[i-]=i,d[i-]=dat[i]-dat[i-],que.push(P(d[i-],i-)); d[]=d[n]=1e17; //边界处理
while(k--)
{
while(vis[que.top().S]) que.pop();
P t=que.top();que.pop();
res+=t.F;vis[l[t.S]]=vis[r[t.S]]=true; d[t.S]=t.F=d[l[t.S]]+d[r[t.S]]-d[t.S];que.push(t); l[t.S]=l[l[t.S]];r[t.S]=r[r[t.S]];
r[l[t.S]]=t.S;l[r[t.S]]=t.S;
} printf("%lld",res);
return ;
}
[BZOJ 1150] 数据备份的更多相关文章
- BZOJ 1150 - 数据备份Backup - [小顶堆][CTSC2007]
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1150 Time Limit: 10 Sec Memory Limit: 162 M De ...
- 【BZOJ 1150】 1150: [CTSC2007]数据备份Backup (贪心+优先队列+双向链表)
1150: [CTSC2007]数据备份Backup Description 你在一家 IT 公司为大型写字楼或办公楼(offices)的计算机数据做备份.然而数据备份的工作是枯燥乏味 的,因此你想设 ...
- 【链表】bzoj 1150: [CTSC2007]数据备份Backup
1150: [CTSC2007]数据备份Backup Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1136 Solved: 458[Submit] ...
- [BZOJ 1150] [CTSC2007] 数据备份Backup 【贪心 + 链表】
题目链接:BZOJ - 1150 题目分析 可以看出,我们选的 k 条边一定是相邻两点之间的线段.我们可以将每条边看成一个点,那么我们就是要在 n-1 个点中选出互不相邻的 k 个,使它们的和最小. ...
- bzoj 1150: [CTSC2007]数据备份Backup
Description 你在一家 IT 公司为大型写字楼或办公楼(offices)的计算机数据做备份.然而数据备份的工作是枯燥乏味 的,因此你想设计一个系统让不同的办公楼彼此之间互相备份,而你则坐在家 ...
- 1150: [CTSC2007]数据备份Backup
1150: [CTSC2007]数据备份Backup https://lydsy.com/JudgeOnline/problem.php?id=1150 分析: 堆+贪心. 每次选最小的并一定是最优的 ...
- 【BZOJ1150】数据备份(动态规划,凸优化)
[BZOJ1150]数据备份(动态规划,凸优化) 题面 BZOJ 洛谷 题解 在不考虑\(K\)的情况下很容易\(dp\) 如果把\(K\)考虑进状态显然是\(O(n^2)\)级别. 所以凸优化一下即 ...
- BZOJ1150:[APIO/CTSC2007]数据备份——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=1150 你在一家 IT 公司为大型写字楼或办公楼(offices)的计算机数据做备份.然而数据备份的 ...
- BZOJ 1150--数据备份(链表&堆&贪心)
1150: [CTSC2007]数据备份Backup Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2572 Solved: 1038[Submit ...
随机推荐
- 收藏一个漂亮的Flash焦点图切换
网上闲逛的时候发现一个Flash焦点图效果,跟喜欢,然后就下载回来,收集在这里,以便以后方便取用.这个Flash使用方法也是相当简单的,如果你喜欢,也可以从这里查看源代码下载. Flash 焦点图效果 ...
- 几个JavaScript的浏览器差异处理问题
JQuery确实是个很好用的库,你可以不用考虑很多细节方面的事情.但很作为一个web前端,处理和了解浏览器差异一个重要问题.下面将介绍一些总结,先介绍没有使用js库的情况. 1. setAttribu ...
- 打造适合日常使用的ubuntu,以ubuntu 16.04.1 LTS为例(不涉及版本)
因为调试些程序需要用到ubuntu,又不喜欢虚拟机,因此装了双系统,在这过程中因为各种原因ubuntu来回安装过好多次,每次安装到用得爽都要捣鼓很久,也算稍微有点经验心得,将ubuntu调教的过程写在 ...
- Oracle查询字段内容为非数字的记录
今天在一张3W多记录的表里查非数字的异常数据~数据库太水,记录一发,因为2.5使用人员误输入为2..5.... select t.routecardlist_id,trim(translate(RTR ...
- Java之戳中痛点 - (3)三目运算符的两个操作数类型尽量一致
先看一个例子: package com.test; public class TernaryOperator { public static void main(String[] args) { in ...
- PHP 扒一扒这些题目都考了哪些知识点
1.模除 题目: <?php echo -10%3; *结果* -1 分析:其实这道题的知识点是在考模除和正负号的关系,那么我们看一段进阶的代码 <?php echo "10%3 ...
- Topcoder SRM 607 div1题解
好久没来写了,继续继续... Easy(250pts): //前方请注意,样例中带有zyz,高能预警... 题目大意:给你一个字符串,中间有一些是未知字符,请你求出这个字符串的回文子串个数的期望值.数 ...
- BZOJ 4527: K-D-Sequence
4527: K-D-Sequence Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 163 Solved: 66[Submit][Status][D ...
- {CodeForces】788E New task && 汕头市队赛SRM06 D 五色战队
D 五色战队 SRM 06 背景&&描述 游行寺家里人们的发色多种多样,有基佬紫.原谅绿.少女粉.高级黑.相簿白等. 日向彼方:吾令人观其气,气成五彩, ...
- [POJ1286&POJ2154&POJ2409]Polya定理
Polya定理 L=1/|G|*(m^c(p1)+m^c(p2)+...+m^c(pk)) G为置换群大小 m为颜色数量 c(pi)表示第i个置换的循环节数 如置换(123)(45)(6)其循环节数为 ...