费用流解决。

abs内传不了int..CE一次

  1. #include<iostream>
  2. #include<cstring>
  3. #include<cstdio>
  4. #include<cmath>
  5. #include<queue>
  6.  
  7. using namespace std;
  8.  
  9. inline int rd(){
  10. int ret=0,f=1;char c;
  11. while(c=getchar(),!isdigit(c))f=c=='-'?-1:1;
  12. while(isdigit(c))ret=ret*10+c-'0',c=getchar();
  13. return ret*f;
  14. }
  15.  
  16. const int MAXN=256<<1;
  17. const int M=MAXN*MAXN;
  18.  
  19. struct Edge{
  20. int next,to,f,w;
  21. }e[M<<1];
  22. int ecnt=1,head[MAXN];
  23. inline void add(int x,int y,int f,int w){
  24. e[++ecnt].next = head[x];
  25. e[ecnt].to = y;
  26. e[ecnt].f = f;
  27. e[ecnt].w = w;
  28. head[x] = ecnt;
  29. }
  30.  
  31. int n,S,T;
  32.  
  33. int dis[MAXN],pre[MAXN],flow[MAXN],inq[MAXN];
  34. queue<int> Q;
  35. bool spfa(int s,int t){
  36. memset(dis,0x3f,sizeof(dis));
  37. Q.push(s);dis[s]=0;flow[s]=1<<30;
  38. while(!Q.empty()){
  39. int x=Q.front();Q.pop();inq[x]=0;
  40. for(int i=head[x];i;i=e[i].next){
  41. int v=e[i].to;
  42. if(!e[i].f||dis[v]<=dis[x]+e[i].w) continue;
  43. flow[v]=min(flow[x],e[i].f);
  44. pre[v]=i;dis[v]=dis[x]+e[i].w;
  45. if(!inq[v]) Q.push(v),inq[v]=1;
  46. }
  47. }
  48. return dis[t]!=0x3f3f3f3f;
  49. }
  50.  
  51. int mxflow,mncost;
  52. void update(int s,int t){
  53. int cur=t,mx=flow[t];
  54. while(cur!=s){
  55. int i=pre[cur];
  56. e[i].f-=mx;e[i^1].f+=mx;
  57. cur=e[i^1].to;
  58. }
  59. mxflow+=mx;mncost+=dis[t]*mx;
  60. }
  61.  
  62. void EK(int s,int t){while(spfa(s,t))update(s,t);}
  63.  
  64. int main(){
  65. n=rd();S=n+n+1;T=n+n+2;
  66. int x,y,z,w;
  67. for(int i=1;i<=n;i++){
  68. x=rd();y=rd();z=rd();w=rd();
  69. for(int j=y;j<=z;j++){
  70. int v=w*abs(1.0*j-1.0*x);
  71. add(i,j+n,1,v);add(j+n,i,0,-v);
  72. }
  73. }
  74. for(int i=1;i<=n;i++){
  75. add(S,i,1,0);add(i,S,0,0);
  76. add(i+n,T,1,0);add(T,i+n,0,0);
  77. }
  78. EK(S,T);
  79. if(mxflow<n) return puts("NIE"),0;
  80. printf("%d\n",mncost);
  81. return 0;
  82. }

[BZOJ] 1520: [POI2006]Szk-Schools的更多相关文章

  1. bzoj 1520 [POI2006]Szk-Schools 费用流

    [POI2006]Szk-Schools Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 743  Solved: 381[Submit][Status][ ...

  2. 模拟 - BZOJ 1510 [POI2006] Kra-The Disks

    BZOJ 1510 [POI2006] Kra-The Disks 描述 Johnny 在生日时收到了一件特殊的礼物,这件礼物由一个奇形怪状的管子和一些盘子组成. 这个管子是由许多不同直径的圆筒(直径 ...

  3. bzoj 1513 [POI2006]Tet-Tetris 3D(二维线段树)

    1513: [POI2006]Tet-Tetris 3D Time Limit: 30 Sec  Memory Limit: 162 MBSubmit: 540  Solved: 175[Submit ...

  4. bzoj 1513 POI2006 Tet-Tetris 3D 二维线段树+标记永久化

    1511: [POI2006]OKR-Periods of Words Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 351  Solved: 220[S ...

  5. bzoj 1510 [POI2006]Kra-The Disks 二分

    1510: [POI2006]Kra-The Disks Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 466  Solved: 272[Submit][ ...

  6. bzoj 1517 [POI2006]Met 贪心

    [POI2006]Met Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 203  Solved: 108[Submit][Status][Discus ...

  7. BZOJ 1511: [POI2006]OKR-Periods of Words

    Description 求一个最长周期. Sol KMP. 一个点的最短周期就是 \(i-next[i]\) 此外 \(i-next[next[i]],i-next[next[next[i]]]\) ...

  8. BZOJ 1513 [POI2006]Tet-Tetris 3D

    题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1513 题意:三维空间,有一些立方体在垂直下落.立方体的左下角坐标(x,y)以及长宽 ...

  9. bzoj 1510 [POI2006]Kra-The Disks——思路

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1510 #include<iostream> #include<cstdio ...

随机推荐

  1. 【Sass初级】嵌套选择器规则

    在CSS中,我们都知道所有代码都在一个“根级别”的选择器中,每个CSS的样式声明都写嵌套的话,那意客味需要写很多的代码. 今天我要带领大家进入到Sass的最基本原则中.这就是所谓的“基础规则(Ince ...

  2. sonar扫描android项目配置 mac版

    一. 下载安装 JDK8以上  SonarQube   SonarQube Scanner 1. 解压缩SonarQube和SonarQube Scanner,直接运行SonarQube中bin目录下 ...

  3. Linux操作学习笔记1

    Linux只有一个根目录/,所有的文件和设备都当成是文件进行管理: pwd 打印当前工作目录 (print working directory) whoami ls  列出当前目录面的文件 ls -l ...

  4. python进阶02 特殊方法与特殊属性

    python进阶02 特殊方法与特殊属性 一.初始化.析构 1.初始化 # python中有很多双下划线开头且以下划线结尾的固定方法,它们会在特定的时机被触发执行,这便是特殊方法 # 在实例化的时候就 ...

  5. 【aspnetcore】添加自定义json配置文件

    打开program.cs文件,修改CreateWebHostBuilder方法: public static IWebHostBuilder CreateWebHostBuilder(string[] ...

  6. Qt5.7中使用MySQL Driver(需要把libmysql.dll文件拷贝到Qt的bin目录中。或者自己编译的时候,链接静态库)

    Qt5.7中使用MySQL Driver 1.使用环境 Qt5.7的安装安装就已经带了MySQL Driver,只需要在安装的时候选择一下即可.如果没有安装,可以采取自己编译的方式.在Qt的源码包的q ...

  7. HDU 1160 FatMouse's Speed LIS DP

    http://acm.hdu.edu.cn/showproblem.php?pid=1160 同样是先按它的体重由小到大排,相同就按speed排就行. 这样做的好处是,能用O(n^2)枚举,因为前面的 ...

  8. 关于Memcache的连接

    addServer 在说Memcache的长连接(pconnect)和短连接(connect)之前要先说说Memcache的addServer,Memcache的addServer是增加一个服务器到连 ...

  9. Oracle中文乱码,字符集问题处理

    1. 右键计算机,选择属性,增加环境变量 NLS_LANG:SIMPLIFIED CHINESE_CHINA.ZHS16GBK 2.进入注册表,依次单击HKEY_LOCAL_MACHINE --> ...

  10. c# Redis操作类

    需要添加StackExchange.Redis.dll引用 using System; using System.Collections.Generic; using System.IO; using ...