【CodeChef-SPCLN】Cleaning the Space
https://odzkskevi.qnssl.com/7dfb262544887eff6fb35bfb444759d6?v=1502084197
做法是类似于最大割之类的东西,把每个碎片按照按钮拆点,从s到每个碎片第一个点连inf,每个碎片第i个按钮向第i+1个按钮连100-i能量。
然后最大流最小割,最大流=割掉的边和=100*n-能量和的最大值。
#include<cstring>
#include<algorithm>
#include<cmath>
#include<cstdio>
#define rep(i,l,r) for(int i=l;i<=r;i++)
#define dow(i,l,r) for(int i=r;i>=l;i--)
#define rep0(i,r) for(int i=0;i<r;i++)
#define repedge(i,x) for(int i=cur[x];i>=0;i=e[i].next)
#define maxn 20020
#define maxm 200100
#define LL long long
using namespace std; typedef struct {
int next,f,t;
}E;
E e[maxm]; int gap[maxn],d[maxn],fi[maxn],cur[maxn],s,t,total=;
const int inf=;
int n,m,q; void add(int j,int k,int l)
{
e[total].f=l;
e[total].t=k;
e[total].next=fi[j];
fi[j]=total;
total++;
} void addedge(int j,int k,int l)
{
add(j,k,l);
add(k,j,);
} int sap(int x,int flow)
{
if (x==t) return flow;
int now=;
repedge(i,x) {
int too=e[i].t;
if (d[too]+==d[x] && e[i].f) {
int more=sap(too,min(e[i].f,flow-now));
e[i].f-=more;
e[i^].f+=more;
cur[x]=i;
if (flow==(now+=more)) return flow;
}
}
if (!(--gap[d[x]])) d[s]=t;
gap[++d[x]]++;
cur[x]=fi[x];
return now;
} int maxflow()
{
memset(d,,sizeof(d));
memset(gap,,sizeof(gap));
rep(i,,t) cur[i]=fi[i];
gap[]=t;
int ans=;
while (d[s]<t) ans+=sap(s,inf);
//printf("%d\n",ans);
return ans;
} int main()
{
// freopen("1.in","r",stdin);
scanf("%d %d",&n,&m);
memset(fi,-,sizeof(fi));
s=n*(m+)+;
t=s+;
rep(i,,n) {
int now=(i-)*(m+);
addedge(s,now+,inf);
addedge(now+m+,t,inf);
rep(j,,m) {
int k;
scanf("%d",&k);
if (k!=-) addedge(now+j,now+j+,-k);
else addedge(now+j,now+j+,inf);
}
}
scanf("%d",&q);
while (q--) {
int j,k;
scanf("%d %d",&j,&k);
rep(i,,m) {
int now1=(j-)*(m+)+i;
int now2=(k-)*(m+)+i+;
addedge(now1,now2,inf);
}
}
//printf("%d\n",maxflow());
printf("%.2lf\n",(100.0*n-maxflow())/(n+0.0));
return ;
}
- 我1
【CodeChef-SPCLN】Cleaning the Space的更多相关文章
- 【BZOJ4619/3709】[Wf2016]Swap Space/[PA2014]Bohater 贪心
[BZOJ4619][Wf2016]Swap Space Description 你有许多电脑,它们的硬盘用不同的文件系统储存数据.你想要通过格式化来统一文件系统.格式化硬盘可能使它的容量发生变化.为 ...
- 【POJ - 2376】Cleaning Shifts(贪心)
Cleaning Shifts Descriptions: 原文是English,我这就直接上Chinese了,想看原文的点一下链接哦 大表哥分配 N (1 <= N <= 25,000) ...
- 【Codechef FRBSUM】【FJOI2016】【BZOJ4299】【BZOJ 4408】 可持久化线段树
4408: [Fjoi 2016]神秘数 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 475 Solved: 287[Submit][Status ...
- 【CodeChef PREFIXOR】Prefix XOR
https://odzkskevi.qnssl.com/f0fbdb108ec813b1294f8f714805963b?v=1502083692 网上搜到的题解: http://blog.csdn. ...
- 【Luogu P4644】Cleaning Shifts
题目 给定 \(n\) 个区间 \([a_i, b_i]\), 花费为 \(c_i\), 求覆盖 \([L, R]\) 区间的所有整数的最小花费. \(0\le n \le 10^4, 0\le L, ...
- 【CodeChef EDGEST】Edges in Spanning Trees(树链剖分+树上启发式合并)
点此看题面 大致题意: 给你两棵\(n\)个点的树,对于第一棵树中的每条边\(e_1\),求存在多少条第二棵树中的边\(e_2\),使得第一棵树删掉\(e_1\)加上\(e_2\).第二棵树删掉\(e ...
- 【AGC010 C】Cleaning
题意 有一棵 \(n\) 个点的树,第 \(i\) 个节点有 \(a_i\) 个石子. 每次都可以选择一对不同的叶子节点,这对叶子节点路径上的所有点都必须要有石子.然后去掉这两个叶子节点路径上的每个节 ...
- 【RS】Local Latent Space Models for Top- N Recommendation-利用局部隐含空间模型进行Top-N推荐
[论文标题]Local Latent Space Models for Top- N Recommendation (KDD-2018 ) [论文作者]—Evangelia Christakopou ...
- 【SIGGRAPH】【最终幻想XV】的战斗场景实时演示的要点解说
[SIGGRAPH][最终幻想XV]的战斗场景实时演示的要点解说 原文:西川善司 http://www.4gamer.net/games/999/G999902/20160730004/ ...
随机推荐
- OpenStack入门篇(一)之云计算的概念
1.云计算 云计算是一种按使用量付费的模式,这种模式提供可用的.便捷的.按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少 ...
- spark重点知识
1 scala 2 spark rdd 3 sprak core 4 性能优化 5 spark sql 6 spark streaming 掌握程度-精通的理解:
- hadoop之Shuffle和Sort
MapRduce保证reducer的输入是按照key进行排过序的,原因和归并排序有关,在reducer接收到不同的mapper输出的有序数据后,需要再次进行排序,然后是分组排序,如果mapper输出的 ...
- JDBC及DBUtils
1.JDBC2.DBUtils ###01JDBC概念和数据库驱动程序 * A: JDBC概念和数据库驱动程序 * a: JDBC概述 * JDBC(Java Data Base Connectivi ...
- Python常用模块之PIL
官方网址:http://www.pythonware.com/products/pil/index.htm Python Imaging Library (PIL) Python图像库(PIL)将图像 ...
- sql server block如何查询并kill
本帖提供两种做法,可避免在 SQL Server 事务锁定时产生的不正常或长时间阻塞,让用户和程序也无限期等待,甚至引起 connection pooling 连接数超过容量. 所谓的「阻塞」,是指当 ...
- 关于jsonp跨域的 实现
1.实现原理 1.把接口写在 script标签的src 中 这个接口就可以访问(不会存在跨域问题 因为接口在浏览器地址栏是可以访问的 会返回json字符串); 2.直接写不可以 因为正常情 ...
- maven项目org.springframework.web.context.ContextLoaderListener的异常和tomcat zipexception的异常
使用到spring的maven web项目,在运行servers时,报错找不到org.springframework.web.context.ContextLoaderListener,web.xml ...
- Java try catch
/* 异常处理的捕捉形式: 这是可以对异常进行针对性处理的方式. 具体格式是: try { //需要被检测异常的代码. } catch(异常类 变量)//该变量用于接收发生的异常对象 { // ...
- 软工网络15团队作业4——Alpha阶段敏捷冲刺-5
一.当天站立式会议照片: 二.项目进展 昨天已完成的工作: 日期等细致信息的处理,对添加账单日期化. 明天计划完成的工作: 完成对账单的编辑,删除等操作,以及开始服务器的编写工作 工作中遇到的困难: ...