2020qbxt D1T3 停车
嗯...
题目:
【问题描述】
市中心有一个环形的停车场,编号1到n,现在有m个车要停,停在每个位置会有不同的费用。为了方便,不允许两辆车停在相邻的位置,请问停好所有车的最小花费是多少?
【输入格式】
第一行包含两个正整数n, m,保证n>=2m-1
第二行包含n个正整数,表示停在i位置的费用
【输出格式】
输出一个整数,表示停好所有车的最小花费是多少
【样例输入】
7 3
1 2 3 4 5 6 7
【样例输出】
9
【样例说明】
停在1 3 5
【数据规模与约定】
20% n<=10
40% n<=100
60% n<=1000
100% n<=100000 ai<=10000
分析:
这道题我们首先会考虑贪心。如果没有限制,只需要从小到大贪心即可。由于有了限制,考虑设计能够撤销之前操作。
考虑一个性质的证明:
如果有1 2 3 三个数中选择,如果不选2,那么一定会选1和3。这样的话如果选了2,删除1、3两个节点,把2的权值更改成a[1]+a[3]-a[2],相当于把2修改成了1和3。
优先队列优化贪心可以做到O(nlogn),每次处理后用链表来删除。
AC代码:
#include<cstdio>
#include<iostream>
#include<queue>
#define pa pair<int,int>
using namespace std; int n,m,ans;
int vis[],a[],L[],R[];
priority_queue<pa,vector<pa>,greater<pa> >q; inline void del(int x){
vis[x]=;
R[L[x]]=R[x];
L[R[x]]=L[x];
} int main(){
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
L[i]=(i==)?n:i-;
R[i]=(i==n)?:i+;
q.push(pa(a[i],i));
}
while(m--){
while(vis[q.top().second]) q.pop();
int x=q.top().second; q.pop();
ans+=a[x];
a[x]=a[L[x]]+a[R[x]]-a[x];
del(L[x]); del(R[x]);
q.push(pa(a[x],x));
}
printf("%d\n",ans);
return ;
}
AC代码
2020qbxt D1T3 停车的更多相关文章
- 城管停车执法打印APP 移动云POS 现场打印告知单-执法平台+智能POS客户端系统
市城管局城管支队工作人员使用最新配备的城管执法手持终端对便道违法停放车辆进行拍照取证. 城管执法手持终端具备拍照.现场打印.无线传输等功能,执法人员只要在该终端登录,即可随时实现对违停车辆的拍照取证. ...
- <停车卫> 产品需求说明书 version 2.0
<停车卫> 产品需求说明书 文档版本号: Version 2.0 文档编号: xxxx 文档密级: 归属部门/项目: 产品名: 停车卫 子系统名: 编写人: kina 编写日期: 2015 ...
- java多线程模拟停车系统
import java.util.Random; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent ...
- [luogu P3953] [noip2017 d1t3] 逛公园
[luogu P3953] [noip2017 d1t3] 逛公园 题目描述 策策同学特别喜欢逛公园.公园可以看成一张$N$个点$M$条边构成的有向图,且没有 自环和重边.其中1号点是公园的入口,$N ...
- ETC(电子不停车收费系统)的发展演变
ETC引进中国是在上世纪的90年代中期,当时中国部分经济发达地区的高速公路车流量激增,从而导致了收费口的交通堵塞.高速公路堵车现象时有发生,拥堵严重的路段可能会天天堵,有时候一堵好几天.高速公路管理手 ...
- 【NOIP2017 D1T3】逛公园
NOIP2017 D1T3 逛公园 题意:给一个有向图,每条边有权值,问从\(1\)到\(N\)的长度不超过最短路长度\(+K\)的路径条数.如果有无数条则输出\(-1\). 思路:我们首先扔掉\(- ...
- [2018HN省队集训D1T3] Or
[2018HN省队集训D1T3] Or 题意 给定 \(n\) 和 \(k\), 求长度为 \(n\) 的满足下列条件的数列的数量模 \(998244353\) 的值: 所有值在 \([1,2^k)\ ...
- noip 2018 D1T3 赛道修建
noip 2018 D1T3 赛道修建 首先考虑二分答案,这时需要的就是对于一个长度求出能在树中选出来的最多的路径条数.考虑到一条路径是由一条向上的路径与一条向下的路径构成,或者仅仅是向上或向下的路径 ...
- 逆向某停车app(原创)
最近一直在做python开发的事情,信息安全方面做得很少,也是"蛋蛋"的忧伤呀.今天有朋友请我帮忙,将一个app里的文字和图标替换一下,花了一下午和一晚上的时间搞了一下,主要是图标 ...
随机推荐
- 在 linux 上运行 oracle sql脚本
方法一 su - oracle //切换到oracle用户模式下 sqlplus /nolog //登录sqlplus connect /as sysdba; //连接orcale @sql脚本路 ...
- ISCC2018_leftleftrightright-Writeup
leftleftrightright(150) 这个题学到了不少东西,值得认真写一下 下载好文件后发现是upx的壳,upx -d直接脱掉后运行,发现是经典的check输入的题目(作为一个linuxer ...
- TCP/IP详解,卷1:协议--链 路 层
引言 在 T C P / I P 协议族中,链路层主要有三个目的:(1)为 I P 模块发送和 接收 I P 数据报:(2)为 A R P 模块发送 A R P 请求和接收 A R P 应答:(3)为 ...
- AcWing 104. 货仓选址
#include <iostream> #include <algorithm> using namespace std; ; int n; int q[N]; int mai ...
- leetcode 64. 最小路径和 动态规划系列
目录 1. leetcode 64. 最小路径和 1.1. 暴力 1.2. 二维动态规划 2. 完整代码及执行结果 2.1. 执行结果 1. leetcode 64. 最小路径和 给定一个包含非负整数 ...
- 题解【洛谷P1315】[NOIP2011]观光公交
题目描述 风景迷人的小城 Y 市,拥有 \(n\) 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务. 观光公交车在第 \(0\) 分钟出现在 \( ...
- 题解【UVA12003】Array Transformer
题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例#1 10 1 11 1 2 3 4 5 6 7 8 9 10 2 8 6 10 输出样例#1 1 2 3 4 5 6 7 8 9 6 ...
- 浅谈Power Signoff
Power Analysis是芯片设计实现中极重要的一环,因为它直接关系到芯片的性能和可靠性.Power Analysis 需要Timing Analysis 产生包含频率.transition 等时 ...
- sqlmap使用教程(超详细)
-u 指定目标URL (可以是http协议也可以是https协议) -d 连接数据库 --dbs 列出所有的数据库 --current-db 列出当前数据库 --tables 列出当前的表 --col ...
- Codeforces Round #604 (Div. 2)D(构造)
构造,枚举起点,如果一个序列成立,那么将它reverse依然成立,所以两个方向(从小到大或从大到小)没有区别,选定一个方向进行探测,直到探测不到以后回头,只要所给数据能成立,那么能探测进去就能探测出来 ...