BZOJ1150[CTSC2007]数据备份Backup——模拟费用流+堆+链表
题目描述
输入
输出
输出应由一个正整数组成,给出将2K个相异的办公楼连成k对所需的网络电缆的最小总长度。
样例输入
1
3
4
6
12
样例输出
#include<set>
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<cstdio>
#include<vector>
#include<bitset>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define pr pair<ll,int>
using namespace std;
int n,k;
priority_queue< pr,vector<pr>,greater<pr> >q;
int cnt;
int pre[600010];
int suf[600010];
int a[600010];
int vis[300010];
ll s[300010];
int t[300010];
int v[600010];
ll ans;
int main()
{scanf("%d%d",&n,&k);for(int i=1;i<=n;i++){scanf("%d",&a[i]);if(i!=1){v[i]=a[i]-a[i-1];}}for(int i=2;i<=n;i++){cnt++;s[cnt]=1ll*v[i];t[cnt]=cnt;pre[cnt]=cnt-1;suf[cnt]=cnt+1;q.push(make_pair(s[cnt],t[cnt]));}pre[1]=0;suf[n-1]=0;s[0]=1<<30;while(k){int now=q.top().second;ll res=q.top().first;q.pop();if(!vis[now]){ans+=res;vis[now]=1;vis[pre[now]]=1;vis[suf[now]]=1;cnt++;t[cnt]=cnt;s[cnt]=s[pre[now]]+s[suf[now]]-res;pre[cnt]=pre[pre[now]];suf[cnt]=suf[suf[now]];suf[pre[pre[now]]]=cnt;pre[suf[suf[now]]]=cnt;q.push(make_pair(s[cnt],t[cnt]));k--;}}printf("%lld",ans);
}
转载于:https://www.cnblogs.com/Khada-Jhin/p/10421588.html
BZOJ1150[CTSC2007]数据备份Backup——模拟费用流+堆+链表相关推荐
- bzoj1150 [CTSC2007]数据备份Backup
大概就是写了道生日礼物那个不知道叫啥的贪心..... 大概就是说这道题和那个比较像... 所以留着看看吧,哪天想起了回来做这道题咯~ 转载于:https://www.cnblogs.com/LLppd ...
- [BZOJ1150][CTSC2007]数据备份Backup
首先肯定要选择相邻的公司配对才会距离最小 先把两两之间的距离加入小根堆中 每次取出堆顶,加入答案,删掉左右线段,再扔进去len[l]+len[r]-len[now] 这样如果这个新点被取到,说明取两边 ...
- bzoj1150: [CTSC2007]数据备份Backup--贪心+优先队列维护堆
题目大意:将k对点两两相连,求最小长度 易证得,最优方案中,相连的办公楼一定是取相邻的比取不相邻的要更优 然后就可以用贪心来做这道题了.. 之前向CZL大神学习了用堆来贪心的做法orz 大概思路就是将 ...
- BZOJ 1920 Luogu P4217 [CTSC2010]产品销售 (模拟费用流、线段树)
题目链接 (bzoj) https://www.lydsy.com/JudgeOnline/problem.php?id=1920 (luogu) https://www.luogu.org/prob ...
- BZOJ 5326 [JSOI2017]博弈 (模拟费用流、线段树)
题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=5326 题解 终于成为第8个A掉这题的人--orz tzw神仙早我6小时 本以为这东西常数 ...
- BZOJ 4849 [NEERC2016] Mole Tunnels (模拟费用流)
题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=4849 题解 其实也是模拟费用流,但是这道题和一般的题目不一样,这道题是在一个完全二叉树上 ...
- BZOJ 4849 [NEERC2016]Mole Tunnels (模拟费用流)
题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=4849 题解 其实也是模拟费用流,但是这道题和一般的题目不一样,这道题是在一个完全二叉树上 ...
- BZOJ 3836 Codeforces 280D k-Maximum Subsequence Sum (模拟费用流、线段树)
题目链接 (BZOJ) https://www.lydsy.com/JudgeOnline/problem.php?id=3836 (Codeforces) http://codeforces.com ...
- UOJ #455 [UER #8]雪灾与外卖 (贪心、模拟费用流)
题目链接 http://uoj.ac/contest/47/problem/455 题解 模拟费用流,一个非常神奇的东西. 本题即为WC2019 laofu的讲课中的Problem 8,经典的老鼠进洞 ...
最新文章
- Kaggle发布数据科学最新报告!82%男性, 62%硕博,薪酬6位数居多
- java jolt调用tuxedo_Jolt调用Tuxedo服务,该怎么处理
- html+js浏览器检测
- 站长必看系列:完全揭密百度和谷歌收录规律
- 还需要更多东西吗?这里有一些要做的事情
- linux中怎么创建管道文件,Linux 管道文件
- iPhone8用的全面屏是什么屏幕?
- 一道关于CSS选择器优先级的题
- VC 项目支撑文件解释
- 黑马程序员Java教程学习笔记(一)
- 几款用于防破解的软件
- Chaff Bugs: Deterring Attackers by Making Software Buggier
- AMESim软件包 百度云下载
- 《学习笔记》使用AngularJS模板来创建视图
- 网易云音乐突破版权限制
- Pulseaudio入坑
- drupal8 修改主题_Drupal 8主题修订版-更新和新功能
- 云服务器定时启动程序_VPS?云主机?自家服务器,启动
- 叶俊:领袖需要思考的问题
- html文本内容自动滚动,网页HTML代码滚动文字制作