题解-CF802C Heidi and Library (hard)】的更多相关文章

题面 CF802C Heidi and Library (hard) 有一个大小为 \(k\) 的空书架.有 \(n\) 天和 \(n\) 种书,每天要求书架中有书 \(a_i\).每天可以多次买书,买书 \(i\) 的价格为 \(c_i\).每天可以扔书(因为书架满了).求满足要求的最小代价. 数据范围:\(1\le n,k\le 80\). 路标 很明显这是一道套路烂大街的水题,但是今天蒟蒻想讲 \(3\) 种巧妙的做法. 此题的输出方案版:CF132E Bits of merry old…
LINK:Heidi and Library 先说一下简单版本的 就是权值都为1. 一直无脑加书 然后发现会引起冲突,可以发现此时需要扔掉一本书. 扔掉的话 可以考虑扔掉哪一本是最优的 可以发现扔掉nex越靠后的结果不会更差. 所以用set/堆维护一下nex的最大值 每次扔掉即可. code //#include<bits/stdc++.h> #include<iostream> #include<cstdio> #include<ctime> #inclu…
题目描述 你有一个容量为k的空书架,现在共有n个请求,每个请求给定一本书ai,如果你的书架里没有这本书,你就必须以ci的价格购买这本书放入书架.当然,你可以在任何时候丢掉书架里的某本书.请求出完成这n个请求所需要的最少价钱. 题解 对于每个请求,我们可以强制让他必须买,然后再去考虑如何扣掉之前的贡献. 对于每一次购买,我们可以作如下两种策划. 1.刚买完就扔掉.2.在下一次购买之前把这本书卖掉(这里的卖掉相当于是把上一次买的代价减去了). 按照这样的策略,我们的每一本买来的书最终都会被弄掉 .…
你有一个容量为k的空书架,现在共有n个请求,每个请求给定一本书ai,如果你的书架里没有这本书,你就必须以ci的价格购买这本书放入书架. 当然,你可以在任何时候丢掉书架里的某本书.请求出完成这n个请求所需要的最少价钱. 做法1: 把每个请求拆成两个点 A,B A表示买入 B表示卖出 addedge(S,A,1,c[a[i]]) addedge(A,B,1,0) addedge(B,T,1,0) 这样最大流必是n 每天的A向下一天的A连流量为k-1,费用为0的边,表示可以不扔,留到明天,但明天的书还…
[CF802C]Heidi and Library(网络流) 题面 CF 洛谷 题解 前面两个Easy和Medium都是什么鬼玩意啊.... 不难发现如果这天的要求就是第\(a_i\)种书的话,那么\(a_i\)是必定要存在的. 把每种书拆\(n\)次,然后用每一个流维护一个书架上的位置,那么这样子很容易就可以连出费用流的建图. 但是这样子点数是平方级别,边数是三方级别. 实际上书架上的位置是无序的,因此并不需要全部建出来,只需要考虑在哪些天会被替换. 考虑每本书下一次在什么情况下会被使用,被使…
[CF802C]Heidi and Library (hard) 题意:有n个人依次来借书,第i人来的时候要求书店里必须有种类为ai的书,种类为i的书要花费ci块钱购入.而书店的容量只有k,多余的书只能丢弃.现在让你安排哪天买哪本书放到书店的哪个位置,使得在满足所有人的情况下总花费最少. $n,k\le 80,c_i\le 10^6$ 题解:最小费用最大流,直接上建图方法: 建两排点i和i'. S -> i 流量1,费用$c_{a_i}$i -> i' 流量1,费用$-inf$i' ->…
C. Heidi and Library 题意 有 n 种分别具有价格 b 的书 a ,图书馆里最多同时存放 k 本书,已知接下来 n 天每天都有一个人来看某一本书,如果图书馆里没有则需要购买,问最少花费多少钱. 分析 这道题的一个简单版本 ,默认所有书价格为1,那么只需要用 set 维护一下,当图书馆内库存满的时候 erase 掉距离最大的书(贪心做法). 但是有了价格之后,就不能贪心了,然后这道题就可以用神奇的网络流解决.准确的说是最小费用最大流. 所有边的容量为 1,将 n 个点拆成 2n…
A. Heidi and Library (easy) time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Your search for Heidi is over – you finally found her at a library, dressed up as a human. In fact, she has spen…
题目链接 感觉跟餐巾计划问题有点像.费用流. 决定每天买不买不太好搞,不如先把所有东西都买进来,再卖掉不必要的. 拆点,每个点拆成\(x,y\). 源点向每个点的\(x\)连费用为当天的价格,流量为1的边. 每个点的\(y\)向汇点连费用为0,流量为1的边. 每个点\(x\)向\(y\)连流量为1,费用为0的边. 此时流出的已经等于流入的了,也就是说最大流一定为\(n\). 现在考虑加入费用限制. 每天的\(x\)向下一天的\(x\)连流量为\(k-1\),费用为0的边,表示可以不扔,留到明天,…
http://codeforces.com/contest/802/problem/B [题意] 有一个图书馆,刚开始没有书,最多可容纳k本书:有n天,每天会有人借一本书,当天归还:如果图书馆有这个本就直接借到,否则图书馆的人会购买这本书,每本书的价格都是1:如果现在图书馆的书已达上限还需购买,必须舍弃已有的一本书,以后再有人借这本书要重新购买. 问图书馆的人最少要花多少钱购书? 数据范围变成了4000 00. [思路] 关键是替换原则,每次都替换下一次出现最晚的,因为它占用图书馆的时间最长.…
题目大意 你需要保证第\(i\)天时有第\(a_i\)种书.你可以在任何一天买书,买第\(i\)种书的代价为\(c_i\). 你最多同时拥有\(k\)本书,如果此时再买书,则必须先扔掉已拥有的一本书.并且如果以后用到那本书则需要重新购买. 问最小的代价使满足\(n\)天中的所有条件都满足. \(medium : n,k \leq 400000\)且保证所有的\(c_i = 1\) \(hard : n,k \leq 80\) \(all : a_i \leq n,c_i \leq 10^6\)…
题目链接 复习了下餐巾计划问题.全忘了=-= 首先这是一道网络流.然后本题有\(n\)种建图方法,以及\(smy\) dalao还有单纯形做法. 先假设所有物品都是买入的.那么对于每一天,拆成两个点\(i,i'\),\(S\to i\)连边\((1,cost_{a_i})\)(容量\(1\)费用\(cost_{a_i}\)),\(i'\to T\)连边\((1,0)\),\(i\to i'\)连边\((1,0)\).这样就能满足一些基本要求了. 然后考虑可以把某个\(a_i\)留到之后一天.考虑…
http://codeforces.com/contest/802/problem/C…
http://codeforces.com/contest/802/problem/C…
http://codeforces.com/contest/802/problem/A [题意] 有一个图书馆,刚开始没有书,最多可容纳k本书:有n天,每天会有人借一本书,当天归还:如果图书馆有这个本就直接借到,否则图书馆的人会购买这本书,每本书的价格都是1:如果现在图书馆的书已达上限还需购买,必须舍弃已有的一本书,以后再有人借这本书要重新购买. 问图书馆的人最少要花多少钱购书? [思路] 关键是替换原则,每次都替换下一次出现最晚的,因为它占用图书馆的时间最长.不是替换后面需要数量最少的!比如…
\(\mathcal{Descriptoin}\)   Link.   你有一个容量为 \(k\) 的空书架,现在共有 \(n\) 个请求,每个请求给定一本书 \(a_i\).如果你的书架里没有这本书,你就必须以 \(c_{a_i}\) 的价格购买这本书放入书架.当然,你可以在任何时候丢掉书架里的某本书.请求出完成这 \(n\) 个请求所需要的最少价钱.   \(n,k\le80\). \(\mathcal{Solution}\)   网络瘤嘛--   费用流,考虑先全部买入,再抵消花费.具体地…
G. Fake News (easy) time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output As it's the first of April, Heidi is suspecting that the news she reads today are fake, and she does not want to look sil…
codeforces802 A-O Helvetic Coding Contest 2017 online mirror A  Heidi and Library (easy) 水题 同B #include<cstdio> #include<cstdlib> #include<cstring> using namespace std; const int maxn=1000000; int n,k,a[maxn],num; bool ex[maxn],need[maxn…
博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6789235.html特别不喜欢那些随便转载别人的原创文章又不给出链接的所以不准偷偷复制博主的博客噢~~ 题意:给出n本书的id.名称.作者.多个关键词.出版社.出版年然后给出m个查询,每个查询包含查询的种类.对应的内容针对每个查询,让你输出所有符合的书的id,从小到大排序,没有的话则输出No Found 首先把每个book的信息都读取处理好,然后按照id排个序…
B. Berland National LibraryTime Limit: 2 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/567/problem/B Description Berland National Library has recently been built in the capital of Berland. In addition, in the library you can take any of…
B. Berland National LibraryTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/567/problem/B Description Berland National Library has recently been built in the capital of Berland. In addition, in the library you can take any o…
准备每天刷两题PAT真题.(一句话题解) 1001 A+B Format  模拟输出,注意格式 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; string ans = ""; int main() { ; cin >> a >> b; c = a + b; ) {…
写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 这一节内容可能会用到的库文件有 Measurement 和 TestCase,同样在 Github 上可以找到. 善用 Ctrl + F 查找题目. 习题&题解 1.4.1 解答 即为证明组合计算公式: C(N, 3) = N! / [(N - 3)! × 3!]= [(N - 2) * (N - 1) * N] / 3!= N…
博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6102219.html特别不喜欢那些随便转载别人的原创文章又不给出链接的所以不准偷偷复制博主的博客噢~~ 时隔两年,又开始刷题啦,这篇用于PAT甲级题解,会随着不断刷题持续更新中,至于更新速度呢,嘿嘿,无法估计,不知道什么时候刷完这100多道题. 带*的是我认为比较不错的题目,其它的难点也顶多是细节处理的问题~ 做着做着,发现有些题目真的是太水了,都不想写题解了…
刷题备忘录,for bug-free 招行面试题--求无序数组最长连续序列的长度,这里连续指的是值连续--间隔为1,并不是数值的位置连续 问题: 给出一个未排序的整数数组,找出最长的连续元素序列的长度. 如: 给出[100, 4, 200, 1, 3, 2], 最长的连续元素序列是[1, 2, 3, 4].返回它的长度:4. 你的算法必须有O(n)的时间复杂度 . 解法: 初始思路 要找连续的元素,第一反应一般是先把数组排序.但悲剧的是题目中明确要求了O(n)的时间复杂度,要做一次排序,是不能达…
前言   [LeetCode 题解]系列传送门:  http://www.cnblogs.com/double-win/category/573499.html   1.题目描述 Given an array with n objects colored red, white or blue, sort them so that objects of the same color are adjacent, with the colors in the order red, white and…
1022 Digital Library (30 分)   A Digital Library contains millions of books, stored according to their titles, authors, key words of their abstracts, publishers, and published years. Each book is assigned an unique 7-digit number as its ID. Given any…
题面 1. 图书馆馆长的考验(library) 红魔馆的拥有者蕾米莉亚的好友帕秋莉是红魔馆的大图书馆的馆长.擅长操纵五行,名言是“万物都有属性.所谓的属性,和弱点是一样的”. 一天,因为魔理沙看了神之右大臣的视频却不投硬币不点收藏不加关注导致受到了幽幽子的追杀.在博丽灵梦的引荐下,魔理沙来到红魔馆去向帕秋莉学习暗黑魔法来打败幽幽子. 但帕秋莉不想这么轻易的教她,所以身为图书馆馆长的她发动了禁术,改变了图书馆的结构,让其变为了一个巨大的迷宫.这个迷宫一共有n个房间,m条通道.开始时魔理沙在1号房间…
我的maven 项目有一个红色感叹号, 而且Problems 存在 errors : Description Resource Path Location Type Archive for required library: 'D:/mvn/repos/junit/junit/3.8.1/junit-3.8.1.jar' in project 'xxx' cannot be read or is not a valid ZIP file ktb-mgr Maven Webapp Build pa…
坏味道--不完美的库类(Incomplete Library Class) 特征 当一个类库已经不能满足实际需要时,你就不得不改变这个库(如果这个库是只读的,那就没辙了). 问题原因 许多编程技术都建立在库类的基础上.库类的作者没用未卜先知的能力,不能因此责怪他们.麻烦的是库往往构造的不够好,而且往往不可能让我们修改其中的类以满足我们的需要. 解决方法 如果你只想修改类库的一两个函数,可以运用 引入外加函数(Introduce Foreign Method): 如果想要添加一大堆额外行为,就得运…