CF704D Captain America】的更多相关文章

传送门 题意: 二维平面给出\(n\)个点,现在可以给每个点进行染色,染红色的代价为\(r\),染蓝色的代价为\(b\). 之后会有\(m\)个限制,形式如:\(t_i\ l_i\ d_i\),当\(t_i=1\)时,表示\(l_i\)行两种颜色的点数相差不超过\(d_i\):类似地,当\(t_i=2\)时表示的是列时的状态. 问最终怎么染色代价最小且符合限制条件. 思路: 带上下界的网络流. 我们不妨设\(r<b\),那么肯定是红点越多越好.我们找准最大这个数量关系,然后考虑最大流. 建图方式…
传送门 现在相当于说每一个条件都有一个染成红色的盾牌的数量限制\([l,r]\),需要满足所有限制且染成红色的盾牌数量最小/最大. 注意到一个盾牌染成红色对于一行和一列都会产生影响.如果选中一个物品对两个物品有影响,那么不妨按照二分图的方式建图,就可以描述这种限制. 将横纵坐标离散化,对每一个横坐标和每一个纵坐标建一个点.对于所有的\(t=1\)的限制从\(S\)向对应横坐标连限制最紧的边,\(t=2\)的限制连向\(T\),中间对于每一种盾牌从其对应横坐标向纵坐标连边. 然后就是上下界那一套了…
http://codeforces.com/problemset/problem/704/D 题解 对于两种颜色的染色,我们可以把它看做选择问题. 比如说红色的代价小,所以我们尽可能多的染红色. 然后我们发现有限制的同一行或者同一列内染红色的数量是一段区间. 然后网格上的问题转化为横纵坐标匹配问题. 然后就是一个有上下界的网络流,貌似要判定有无解的话只能最大流? 离散化不要离散限制,还有要特判\(l>r\)的情况. 调了一年.. 代码 #include<bits/stdc++.h> #d…
[CF704D]Captain America(上下界网络流) 题面 CF 洛谷 题解 如果没有限制,似乎就不用做了...因为我们只需要贪心的选择代价较小的颜色就行了. 那么我们不妨假设染红色的代价较小,即\(r\le b\). 接下来把限制加进来,每个限制一定是限制了在某一行中染蓝色以及染红色的的个数在一个范围内. 我们贪心的考虑,那么一定就是假设让所有点都被染蓝,然后现在让最多的点被染红就行了. 然后把所有点放在中间,每一个行连向点,每一个点连向列,源点连向行,汇点连向列. 然后上下界网络流…
CF 704 D. Captain America 题目链接 题目大意:给出\(n\)个点的坐标,你要将每个点染成红色或者蓝色.染一个红色要付出\(r\)的代价,染一个蓝色要付出\(b\)的代价.有\(m\)个限制,每个限制为"第\(i\)行(或者第\(i\)列)两种颜色的球数量差不能超过\(d\)". 对于第\(i\)行,有\(x\)个点,数量差不能超过\(d\),假设最终红球的数量为\(R\),则: \[ R-(x-R)\leq d\\ (x-R)-R\leq d\\ \] 得到:…
题意:平面上有n个点,每个点必须涂成红色和蓝色中的一种,花费各为r和b(对所有的点花费都一样).m条限制,每条限制形如"y=b这条直线上两种颜色的点的数目之差的绝对值不能超过c"或" x=b这条直线上两种颜色的点的数目之差的绝对值不能超过c",点数和限制数10^5,坐标范围10^9. 首先看到坐标范围很大先离散化,然后变成100000*100000的网格图每行每列的限制.那么转化成二分图,原先的每个点转换成边.因为每一行每一列的总点数是已知的,"两种颜色的…
CF上的题,就不放链接了,打开太慢,直接上题面吧: 平面上有n个点, 第 i 个点的坐标为 ($X_i ,Y_i$), 你需要把每个点染成红色或者蓝色, 染成红色的花费为 r , 染成蓝色的花费为 b .有m个限制条件, 有两种类型, 第一种类型为$x = l_i$ 上的红点与蓝点个数差的绝对值不超过 $d_i$, 第二种类型为$y= l_i$ 上的红点与蓝点个数差的绝对值不超过 $d_i$. 题解: 表示这题真的写到失去理想,因为是第一次写带上下限的网络最大流,一开始就把建图和统计代价理解错了…
分别给行和列hash建两排点,对(x,y)坐标连x行y列的点 设红色价格低,那么就要尽量多选红色 设一个点出度为s,要求最小的最大差值为d,又,假设有流量表示选红没流量表示选蓝,那么要求就变成了这个点的01边差至少为d,列一下式子就是这个点的流入(或者流出)流量可行区间为[(s-d)/2,(s+d)/2] 这样建出图然后跑上下界最大流即可 输出方案就看点对应的边是不是满流 注意有一个不可行情况是最大差为0,并且s为奇数,这个是不可行的但是建图的时候可能会恰好可行所以要提前特判掉 #include…
上一篇文章[IOS]模仿windowsphone列表索引控件YFMetroListBox里面 我们一步步的实现了WindowsPhone风格的索引. 但是有没有发现,如果你要实现按照字母排序,你还得自己填入这些数据,而不能够让其自动归类. 因此我们这篇文章来说说如何将一个数组进行排序. 标题中的#代表数字.✿代表除了数字.中英文外的其他符号. 1.需求 :将字符串分类成数字.中英文首字母.其他符号三类. 数字.符号按照首字母排序,每一个字母分类中,英文始终在中文前面 这里面主要涉及到了对中文英文…
1. 引言 最近接触Abot爬虫也有几天时间了,闲来无事打算从IMDB网站上爬取一些电影数据玩玩.正好美国队长3正在热映,打算爬取漫威近几年的电影并用vis这个JS库呈现下漫威宇宙的相关电影. Abot是一个开源的C#爬虫,代码非常轻巧.可以参看这篇文章(利用Abot 抓取博客园新闻数据)入门Abot. Vis 是一个JS的可视化库类似于D3.vis 提供了像Network 网络图的可视化,TimeLine 可视化等等.这里用到了network,只需要给vis传入简单的节点信息,边的信息就可以自…