S向每头奶牛连边,容量1

每个防晒霜向T连边,容量cover

每头奶牛向SPF在自己范围内的防晒霜连边,容量inf

用线段树优化建图跑最大流即可。

  1. #include<cstdio>
  2. const int N=7010,inf=~0U>>2;
  3. struct edge{int t,f;edge*nxt,*pair;}*g[N],*d[N],pool[60000],*cur=pool,*p;
  4. int n,m,tot,root,id[N],l[N],r[N],spf[N][2],i,x,y,S,T,h[N],gap[N],maxflow;
  5. inline int min(int x,int y){return x<y?x:y;}
  6. inline void add(int s,int t,int f){
  7. p=cur++;p->t=t;p->f=f;p->nxt=g[s];g[s]=p;
  8. p=cur++;p->t=s;p->f=0;p->nxt=g[t];g[t]=p;
  9. g[s]->pair=g[t];g[t]->pair=g[s];
  10. }
  11. int sap(int v,int flow){
  12. if(v==T)return flow;
  13. int rec=0;
  14. for(edge *p=d[v];p;p=p->nxt)if(h[v]==h[p->t]+1&&p->f){
  15. int ret=sap(p->t,min(flow-rec,p->f));
  16. p->f-=ret;p->pair->f+=ret;d[v]=p;
  17. if((rec+=ret)==flow)return flow;
  18. }
  19. if(!(--gap[h[v]]))h[S]=T;
  20. gap[++h[v]]++;d[v]=g[v];
  21. return rec;
  22. }
  23. int build(int a,int b){
  24. int x=++tot;
  25. if(a==b)return id[a]=x;
  26. int mid=(a+b)>>1;
  27. add(x,l[x]=build(a,mid),inf),add(x,r[x]=build(mid+1,b),inf);
  28. return x;
  29. }
  30. void ask(int x,int a,int b,int c,int d,int p){
  31. if(c<=a&&b<=d){add(p,x,inf);return;}
  32. int mid=(a+b)>>1;
  33. if(c<=mid)ask(l[x],a,mid,c,d,p);
  34. if(d>mid)ask(r[x],mid+1,b,c,d,p);
  35. }
  36. int main(){
  37. scanf("%d%d",&n,&m);tot=n+m;
  38. root=build(1,1000);
  39. S=tot+1,T=S+1;
  40. for(i=1;i<=n;i++)scanf("%d%d",&spf[i][0],&spf[i][1]),add(S,i,1);
  41. for(i=1;i<=m;i++)scanf("%d%d",&x,&y),add(id[x],i+n,inf),add(i+n,T,y);
  42. for(i=1;i<=n;i++)ask(root,1,1000,spf[i][0],spf[i][1],i);
  43. for(gap[0]=T,i=1;i<=T;i++)d[i]=g[i];
  44. while(h[S]<T)maxflow+=sap(S,inf);
  45. return printf("%d",maxflow),0;
  46. }

  

BZOJ1707 : [Usaco2007 Nov]tanning分配防晒霜的更多相关文章

  1. [BZOJ1707] [Usaco2007 Nov] tanning分配防晒霜 (贪心)

    Description 奶牛们计划着去海滩上享受日光浴.为了避免皮肤被阳光灼伤,所有C(1 <= C <= 2500)头奶牛必须在出门之前在身上抹防晒霜.第i头奶牛适合的最小和最 大的SP ...

  2. 【BZOJ】1707: [Usaco2007 Nov]tanning分配防晒霜

    [算法]贪心扫描线(+堆) [题意]给定n头牛有区间[a,b],m个防晒霜值为ai,每个可以使用bi次,每次可以使包含它的区间涂到防晒霜,问最多被涂牛数. [题解] 参考:[bzoj1707]: [U ...

  3. 1707: [Usaco2007 Nov]tanning分配防晒霜

    1707: [Usaco2007 Nov]tanning分配防晒霜 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 548  Solved: 262[Sub ...

  4. 【bzoj1707】[Usaco2007 Nov]tanning分配防晒霜 贪心+Treap

    题目描述 奶牛们计划着去海滩上享受日光浴.为了避免皮肤被阳光灼伤,所有C(1 <= C <= 2500)头奶牛必须在出门之前在身上抹防晒霜.第i头奶牛适合的最小和最 大的SPF值分别为mi ...

  5. BZOJ1707:[Usaco2007 Nov]tanning分配防晒霜

    我对贪心的理解:https://www.cnblogs.com/AKMer/p/9776293.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem ...

  6. BZOJ 1707: [Usaco2007 Nov]tanning分配防晒霜

    Description 奶牛们计划着去海滩上享受日光浴.为了避免皮肤被阳光灼伤,所有C(1 <= C <= 2500)头奶牛必须在出门之前在身上抹防晒霜.第i头奶牛适合的最小和最 大的SP ...

  7. BZOJ 1707 [Usaco2007 Nov]tanning分配防晒霜(扫描线+贪心+优先队列)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1707 [题目大意] 每个奶牛各自能够忍受的阳光强度有一个最小值和一个最大值 防晒霜的作 ...

  8. BZOJ——T 1707: [Usaco2007 Nov]tanning分配防晒霜

    http://www.lydsy.com/JudgeOnline/problem.php?id=1707 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 8 ...

  9. bzoj 1707: [Usaco2007 Nov]tanning分配防晒霜【贪心||最大流(?)】

    洛谷上能过的最大流bzoj上T了--但是贪心做法明明在洛谷上比最大流要慢啊--如果是最大流的话就是裸题了吧 说一下贪心,就按照防晒霜排序,然后对每一个防晒霜选一头可以使用的且r最小的牛 就,没了. 贪 ...

随机推荐

  1. NGUI的部分控件无法更改layer?

    http://momowing.diandian.com/post/2012-09-17/40038835795 今天狗日的遇到这样的问题,这是一个imagebutton:,它的层定义为:,NGUI里 ...

  2. HDU 3371 kruscal/prim求最小生成树 Connect the Cities 大坑大坑

    这个时间短 700多s #include<stdio.h> #include<string.h> #include<iostream> #include<al ...

  3. HTML前端——CSS样式

    使用CSS样式的方式: HTML<!DOCTYPE> 声明标签 内链样式表<body style="background: green; margin: 0; paddin ...

  4. 什么是mixin

    转自:http://guangboo.org/2013/01/28/python-mixin-programming http://en.wikipedia.org/wiki/Mixin http:/ ...

  5. MVC 详细说明

    .NET MVC执行过程: 1.网址路由比对 2.执行Controller与Action 3.执行View并返回结果 在使用MVC中是由IgnoreRoute()辅助方法对比成功的,会导致程序直接跳离 ...

  6. Junit4测试

    1.junit初级入门 2.常用注解 3.运行流程 4.测试套件使用 5.参数化设置

  7. java Long的iniValue出错

    Long l1 = 2500000000L; l1.intValue() 的值是负数 这里 System.out.println(Integer.MAX_VALUE); // 2147483647最大 ...

  8. js判空

    2014年9月3日 11:36:10 转载的: http://blog.sina.com.cn/s/blog_755168af0100vsik.html typeof用法 typeof的运算数未定义, ...

  9. 利用 FFmpeg 和 ImageMagick, AVI 转 GIF(不失真)

    利用[TMPGEnc 4.0 XPress] 或 [TMPGEnc Video Mastering Works 5] 生成 AVI 这个视频编辑软件,可对每个帧进行操作 1.生成每个帧的 PNG ff ...

  10. 如何在Ubuntu下安装”.deb“、”.bin“、”.tar.gz“、”.tar.bz2“格式的软件包!

    今天在Ubuntu11.10中安装Google chrome浏览器是遇到了问题,下载好的“.deb”格式的安装文件google-chrome-stable.deb双击后或者右键快捷菜单选择 Synap ...