传送门

应该是很显然的费用流模型吧...

$S$ 向所有学校连边,流量为 $1$,费用为 $0$(表示每个学校要选一个编号)

学校向范围内的数字连边,流量为 $1$,费用为 $c|m-m'|$(表示学校选择编号的花费)

注意学校向原来的数字连边,流量 $1$,费用 $0$(表示学校可以不改变编号)

所有数字向 $T$ 连边,流量为 $1$(每个数字只能给一个学校)

那么一个流就代表一个学校的选择

然后最小费用最大流就是答案

记得判一下无解就好了

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
using namespace std;
typedef long long ll;
inline int read()
{
int x=,f=; char ch=getchar();
while(ch<''||ch>'') { if(ch=='-') f=-; ch=getchar(); }
while(ch>=''&&ch<='') { x=(x<<)+(x<<)+(ch^); ch=getchar(); }
return x*f;
}
const int N=2e5+,M=2e6+,INF=1e9+;
int fir[N],from[M<<],to[M<<],val[M<<],cst[M<<],cntt=;
inline void add(int a,int b,int c,int d)
{
from[++cntt]=fir[a]; fir[a]=cntt;
to[cntt]=b; val[cntt]=c; cst[cntt]=d;
from[++cntt]=fir[b]; fir[b]=cntt;
to[cntt]=a; val[cntt]=; cst[cntt]=-d;
}
int dis[N],mif[N],pre[N],S,T;
queue <int> q;
bool inq[N];
bool BFS()
{
for(int i=S;i<=T;i++) dis[i]=INF;
q.push(S); inq[S]=; dis[S]=; mif[S]=INF;
while(!q.empty())
{
int x=q.front(); q.pop(); inq[x]=;
for(int i=fir[x];i;i=from[i])
{
int &v=to[i]; if( !val[i] || dis[v]<=dis[x]+cst[i] ) continue;
dis[v]=dis[x]+cst[i]; pre[v]=i;
mif[v]=min(mif[x],val[i]);
if(!inq[v]) q.push(v),inq[v]=;
}
}
return dis[T]<INF;
}
int ans;
inline void upd()
{
for(int now=T,i=pre[T]; now!=S; now=to[i^],i=pre[now])
val[i]-=mif[T],val[i^]+=mif[T];
ans+=mif[T]*dis[T];
} int n;
int main()
{
int m,a,b,k;
n=read(); S=,T=n+n+;
for(int i=;i<=n;i++)
{
add(S,i,,);
m=read(),a=read(),b=read(),k=read();
add(i,n+m,,);
for(int j=a;j<=b;j++)
add(i,n+j,,abs(m-j)*k);
}
for(int i=;i<=n;i++) add(n+i,T,,);
while(BFS()) upd();
for(int i=fir[S];i;i=from[i])
if(val[i]) { printf("NIE"); return ; }
printf("%d",ans);
return ;
}

P3440 [POI2006]SZK-Schools的更多相关文章

  1. P3440 [POI2006]SZK-Schools(费用流)

    P3440 [POI2006]SZK-Schools 每所学校$i$开一个点,$link(S,i,1,0)$ 每个编号$j$开一个点,$link(i,T,1,0)$ 蓝后学校向编号连边,$link(i ...

  2. POJ1236Network of Schools[强连通分量|缩点]

    Network of Schools Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 16571   Accepted: 65 ...

  3. POJ 1236 Network of Schools(Tarjan缩点)

    Network of Schools Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 16806   Accepted: 66 ...

  4. Network of Schools --POJ1236 Tarjan

    Network of Schools Time Limit: 1000MS Memory Limit: 10000K Description A number of schools are conne ...

  5. BZOJ 1121: [POI2008]激光发射器SZK

    1121: [POI2008]激光发射器SZK Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 792  Solved: 653[Submit][Sta ...

  6. 【BZOJ-1121】激光发射器SZK 物理 + 数学 + 乱搞

    1121: [POI2008]激光发射器SZK Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 682  Solved: 565[Submit][Sta ...

  7. POJ 1236 Network of Schools(强连通分量/Tarjan缩点)

    传送门 Description A number of schools are connected to a computer network. Agreements have been develo ...

  8. POJ1236Network of Schools(强连通分量 + 缩点)

    题目链接Network of Schools 参考斌神博客 强连通分量缩点求入度为0的个数和出度为0的分量个数 题目大意:N(2<N<100)各学校之间有单向的网络,每个学校得到一套软件后 ...

  9. [强连通分量] POJ 1236 Network of Schools

    Network of Schools Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 16803   Accepted: 66 ...

随机推荐

  1. 拒绝枯燥,有意思的 Loading 页面动效设计

    互联网时代,网络“提速”日益频繁,人们打开Web或软件的速度越来越快,一般页面缓冲和加载地过程也是几不可查.然而,在某些情况下,例如软件急需加载大量页面,首页急需加载大量内容,用户下载文件过大,甚至是 ...

  2. ADO.net开放式并发

    https://docs.microsoft.com/zh-cn/dotnet/framework/data/adonet/optimistic-concurrency 在多用户环境中,有两种用于更新 ...

  3. PHP(九)数组(2)

  4. (轉)Equal height boxes with CSS

    原文:http://www.456bereastreet.com/archive/200405/equal_height_boxes_with_css/ 下面是我翻译的内容,是根据我对文章的理解意译的 ...

  5. [ThinkPHP] 比较标签 neq&nheq 与 PHP 中的 != 与 !== 出现的问题

    1. 模板 > 内置标签 > 比较标签 控制器: $_data['list'] = [ 'dingo' , 'engo' , 'fengo' , 'gingo' , 'autoFill'= ...

  6. IDEA 配置SSH2

    系统换成了mac os,因为喜欢它的界面体验,同时受不了win下面系统对硬盘的疯狂访问.发现在mac下面,IDEA真的不错,速度上快,并且它的智能提示真的很厉害.但是导入一个myeclipse的ssh ...

  7. 电表读数归零回滚SQL处理算法

    在采集电表数据的时候,可以发现有些电表设备读数会发生回滚.这时候,如果单纯的累加计算用电量,就会出现负值.当然,这也许和电表的质量有关系. “RTQty”(当前读到的读数).“LastQty”(上次读 ...

  8. TSQL--逻辑查询处理

    1. 查询处理可分成逻辑处理和物理处理,逻辑处理上各阶段有特定的顺序,但为优化查询,在保证结果集正确的条件下,物理处理顺序并不按照逻辑处理顺序执行,如果在INNER JOIN时,WHERE语句中的过滤 ...

  9. C#——Socket

    最近公司让我搞个socket小程序(服务端). 主要的功能:客户端发字符串到服务端,服务端接收后在界面上显示. 参照了网上许多代码,自己从中修改整理代码. public Form4() { Initi ...

  10. django drf 权限permission

    https://www.django-rest-framework.org/api-guide/permissions/#custom-permissions from django.shortcut ...