注意:建图的时候,一定要把旧标号相同的分开。

 #include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std;
#define MAXN 5001
#define MAXM 100001
#define INF 2147483647
int S,T,n,x,A,B,C;
int en,u[MAXM],v[MAXM],first[MAXN],next[MAXM],cap[MAXM],cost[MAXM];//Next Array
bool inq[MAXN];
int d[MAXN]/*spfa*/,p[MAXN]/*spfa*/,a[MAXN]/*可改进量*/;
queue<int>q;
void Init_MCMF(){memset(first,-,sizeof(first));en=;S=;T=(n<<|);}
void AddEdge(const int &U,const int &V,const int &W,const int &C)
{
u[en]=U; v[en]=V; cap[en]=W; cost[en]=C;
next[en]=first[U]; first[U]=en++;
u[en]=V; v[en]=U; cost[en]=-C;
next[en]=first[V]; first[V]=en++;
}
bool Spfa(int &Flow,int &Cost)
{
memset(d,0x7f,sizeof(d));
memset(inq,,sizeof(inq));
d[S]=; inq[S]=; p[S]=; a[S]=INF; q.push(S);
while(!q.empty())
{
int U=q.front(); q.pop(); inq[U]=;
for(int i=first[U];i!=-;i=next[i])
if(cap[i] && d[v[i]]>d[U]+cost[i])
{
d[v[i]]=d[U]+cost[i];
p[v[i]]=i;
a[v[i]]=min(a[U],cap[i]);
if(!inq[v[i]]) {q.push(v[i]); inq[v[i]]=;}
}
}
if(d[T]>) return ;
Flow+=a[T]; Cost+=d[T]*a[T]; int U=T;
while(U!=S)
{
cap[p[U]]-=a[T]; cap[p[U]^]+=a[T];
U=u[p[U]];
}
return ;
}
void Mincost()
{
int Flow=,Cost=;
while(Spfa(Flow,Cost));
if(Flow==n) printf("%d\n",Cost);
else puts("NIE");
}
int Abs(const int &v){return v< ? -v : v;}
int main()
{
scanf("%d",&n); Init_MCMF();
for(int j=;j<=n;++j)
{
scanf("%d%d%d%d",&x,&A,&B,&C);
AddEdge(S,j,,);
for(int i=A;i<=B;++i) AddEdge(j,i+n,,Abs(i-x)*C);
}
for(int i=;i<=n;++i) AddEdge(i+n,T,,);
Mincost();
return ;
}

最新文章

  1. 实现bootstrap布局的input输入框中的图标点击功能
  2. spring boot入门例子
  3. 6/19 sprint3 看板和燃尽图的更新
  4. apiCloud中图片裁剪模块FNImageClip的使用
  5. PlayerPrefs存储数据在本地的存储位置
  6. poj2286The Rotation Game(迭代加深dfs)
  7. CPU 球迷助威清理灰尘图形的全过程
  8. Android从raw、assets、SD卡中获取资源文件内容
  9. C语言面试问答5
  10. meta常用标签总结
  11. Linux系统用户管理
  12. Mybatis分页插件PageHelper简单使用
  13. 线性回归预测PM2.5----台大李宏毅机器学习作业1(HW1)
  14. 【翻译】WhatsApp 加密概述(技术白皮书)
  15. SPOJ-LCS Longest Common Substring 【后缀自动机】
  16. IrisSkin 单独控件样式设置 不使用皮肤样式
  17. 修改AD FS
  18. web api 安全
  19. 【bzoj 3524】[Poi2014]Couriers
  20. BZOJ3545 [ONTAK2010]Peaks kruskal 并查集 主席树 dfs序

热门文章

  1. POJ1459:Power Network(多源点多汇点的最大流)
  2. HDU1828 Picture 线段树+扫描线模板题
  3. 手动安装GCC
  4. HTML5 视频直播
  5. 迅雷Bolt的ClipSubBindBitmap函数特别说明
  6. xiaoluo同志Linux学习之CentOS6.4
  7. 关于flume的几道题
  8. [转载]解决clickonce不支持administer权限问题
  9. Launcher3自定义壁纸旋转后拉伸无法恢复
  10. Oracle基础 06 控制文件 controlfile