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

时间:2022-09-19 23:31:22

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

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

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

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

#include<cstdio>
const int N=7010,inf=~0U>>2;
struct edge{int t,f;edge*nxt,*pair;}*g[N],*d[N],pool[60000],*cur=pool,*p;
int n,m,tot,root,id[N],l[N],r[N],spf[N][2],i,x,y,S,T,h[N],gap[N],maxflow;
inline int min(int x,int y){return x<y?x:y;}
inline void add(int s,int t,int f){
p=cur++;p->t=t;p->f=f;p->nxt=g[s];g[s]=p;
p=cur++;p->t=s;p->f=0;p->nxt=g[t];g[t]=p;
g[s]->pair=g[t];g[t]->pair=g[s];
}
int sap(int v,int flow){
if(v==T)return flow;
int rec=0;
for(edge *p=d[v];p;p=p->nxt)if(h[v]==h[p->t]+1&&p->f){
int ret=sap(p->t,min(flow-rec,p->f));
p->f-=ret;p->pair->f+=ret;d[v]=p;
if((rec+=ret)==flow)return flow;
}
if(!(--gap[h[v]]))h[S]=T;
gap[++h[v]]++;d[v]=g[v];
return rec;
}
int build(int a,int b){
int x=++tot;
if(a==b)return id[a]=x;
int mid=(a+b)>>1;
add(x,l[x]=build(a,mid),inf),add(x,r[x]=build(mid+1,b),inf);
return x;
}
void ask(int x,int a,int b,int c,int d,int p){
if(c<=a&&b<=d){add(p,x,inf);return;}
int mid=(a+b)>>1;
if(c<=mid)ask(l[x],a,mid,c,d,p);
if(d>mid)ask(r[x],mid+1,b,c,d,p);
}
int main(){
scanf("%d%d",&n,&m);tot=n+m;
root=build(1,1000);
S=tot+1,T=S+1;
for(i=1;i<=n;i++)scanf("%d%d",&spf[i][0],&spf[i][1]),add(S,i,1);
for(i=1;i<=m;i++)scanf("%d%d",&x,&y),add(id[x],i+n,inf),add(i+n,T,y);
for(i=1;i<=n;i++)ask(root,1,1000,spf[i][0],spf[i][1],i);
for(gap[0]=T,i=1;i<=T;i++)d[i]=g[i];
while(h[S]<T)maxflow+=sap(S,inf);
return printf("%d",maxflow),0;
}

  

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

  1. &lbrack;BZOJ1707&rsqb; &lbrack;Usaco2007 Nov&rsqb; tanning分配防晒霜 &lpar;贪心&rpar;

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

  2. 【BZOJ】1707&colon; &lbrack;Usaco2007 Nov&rsqb;tanning分配防晒霜

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

  3. 1707&colon; &lbrack;Usaco2007 Nov&rsqb;tanning分配防晒霜

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

  4. 【bzoj1707】&lbrack;Usaco2007 Nov&rsqb;tanning分配防晒霜 贪心&plus;Treap

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

  5. BZOJ1707:&lbrack;Usaco2007 Nov&rsqb;tanning分配防晒霜

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

  6. BZOJ 1707&colon; &lbrack;Usaco2007 Nov&rsqb;tanning分配防晒霜

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

  7. BZOJ 1707 &lbrack;Usaco2007 Nov&rsqb;tanning分配防晒霜(扫描线&plus;贪心&plus;优先队列)

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

  8. BZOJ——T 1707&colon; &lbrack;Usaco2007 Nov&rsqb;tanning分配防晒霜

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

  9. bzoj 1707&colon; &lbrack;Usaco2007 Nov&rsqb;tanning分配防晒霜【贪心&vert;&vert;最大流&lpar;&quest;&rpar;】

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

随机推荐

  1. CorelDRAW x6 X8安装失败解决方法

    CorelDRAW x6 X8自定义安装时,到最后经常会出现以下问题: 解决方法如下: 在自定义安装时,出现以下这个界面时,点击红色箭头的地方 将下图红色箭头指向的选项,点击取消,不要选上,即可解决安 ...

  2. JavaScript 作用域知识点梳理

    JavaScript的作用域一直以来是前端开发中难以理解的知识点,对于JavaScript的作用域主要记住几句话. 一.“JavaScript” 中无块级作用域 在   Java 或 C# 中存在块级 ...

  3. JavaScript函数的概念

    函数是这样的一段代码,它只定义一次,但可能被执行或调用任意多次. JavaScript函数是参数化的:函数的定义会包含形参,这些参数在函数的整体中像局部变量一样工作.函数调用时会为形参提供实参的值.除 ...

  4. 权限管理AppOpsManager

    AppOps工具类 import android.annotation.TargetApi; import android.app.AppOpsManager; import android.cont ...

  5. MemcacheQ 的安装与使用

    1.安装libevent 官网:http://www.libevent.org/ 全选复制放进笔记 $ wget https://github.com/downloads/libevent/libev ...

  6. Win7无法使用VPN的原因与解决方法&lpar;一&rpar;

    如果Windows 7不是通过正常安装途径的话,像Ghost错误.系统环境改变等,都有可能导致无法使用VPN,而且由于原因不同,给出的提示也不尽相同.实际上,万变不离其宗, VPN是要依靠Window ...

  7. Python filter&lpar;&rpar;删除1-100内素数

    用filter()删除1-100内的素数: #!/usr/bin/env python #coding:utf-8 import math def fil(n): #定义fil函数 flag = 0 ...

  8. SSIS Package to Call Web Service

    原文 SSIS Package to Call Web Service SSIS Package to Call Web Service. You can Call WebService from S ...

  9. 记录一则enq&colon; TX - row lock contention的分析过程

    故障描述:与客户沟通,初步确认故障范围大概是在上午的8:30-10:30之间,反应故障现象是Tomcat的连接数满导致应用无法连接,数据库alert中无明显报错,需要协助排查原因. 1.导入包含故障时 ...

  10. 【翻译】Ext JS最新技巧——2015-8-11

    原文:Top Support Tips Seth Lemmons:使用棒极了的Awesome Font Ext JS 6附带了一个新的海卫一主题,可以使用Font Awesome字体作为背景图像的图标 ...