cin>>C>>L;for(inti=0;i<C;i++)//存数据cin>>cow[i].first>>cow[i].second;for(inti=0;i<L;i++) cin>>sun[i].first>>sun[i].second; sort(cow,cow+C);//排序sort(sun,sun+L);intj=0,ans=0;for(inti=0;i<L;i++) {while(j<C&&cow[j].first<=sun[i].first)//奶牛FPS最...
(如果一个区间要匹配多次的话贪心可能会出错 #include<cstdio>#include<iostream>#include<string>#include<cstring>#include<queue>#include<vector>#include<stack>#include<vector>#include#include<set>#include<algorithm>//#include<bits/stdc++.h>usingnamespacestd;constintmaxn =2505;structBinaryHEAP {intHe...
POJ 3614 Sunscreen 奶牛美容:有C头奶牛日光浴,每头奶牛分别需要minSPF_i和maxSPF_i单位强度之间的阳光。现有L种防晒霜,分别能使阳光强度稳定为SPF_i,其瓶数为cover_i。求最多满足多少头奶牛 最小堆 2.4 加工并储存数据的数据结构 优先队列 首先得确定一个贪心策略,
{ scanf("%d%d", &C, &L); for (int i = 0; i < C; i++) scanf("%d%d", &cow[i].first, &cow[i].second); for (int i = 0; i < L; i++) scanf("%d%d", &bot[i].first, &bot[i].second); sort(cow, cow + C); sort(bot, bot + L); int j = 0, ans = 0; ...
首先确定的贪心策略是,在满足min_spf的条件下,尽量用spf小的用在max_spf大的奶牛身上,用一个最小堆维护max_spf的最小值即可。 先对奶牛min_spf从小到大排序,在对防晒霜spf从小到大排序。 1#include <iostream>2#include <cstdio>3#include <cmath>4#include <vector>5#include <cstring>6#include <string...
题目传送门 【题目大意】 有$C$头奶牛晒日光浴,第$i$头奶牛需要$minSPF[i]$至$maxSPF[i]$之间的日光强度。现在有$L$个防晒霜,第$i$个防晒霜可以使日光强度控制在$SPF[i]$,可以供$cover[i]$头奶牛使用,求最多能满足多少头奶牛。 【思路分析】 其实很容易想到贪
题意:C头牛去晒太阳,每头牛有自己所限定的spf安全范围[min, max];有L瓶防晒液,每瓶有自己的spf值和容量(能供几头牛用)。 求这L瓶防晒液最多能让多少头牛安全地晒太阳。 思路:贪心策略,按spf从小到大或从大到小的顺序取出防晒液,供给尽可能多的剩余的牛。
描述C (1 ≤ C ≤ 2500) 头奶牛在海滩边晒太阳,要避免在日光浴时产生难看的灼伤,每头奶牛必须用防晒霜覆盖它的皮肤。第 i 头奶牛有一个最小和最大 SPF 值 (1 ≤ minSPFi ≤ 1,000; minSPFi ≤ maxSPFi ≤ 1,000) 将会起作用。如果 SPF 值太
#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<vector>#include<queue>#include<algorithm>usingnamespacestd;constintmaxn =6000+10;constintINF =0x7FFFFFFF;structEdge {intfrom, to, cap, flow; Edge(intu,intv,intc,intf) :from(u), to(v), cap(c), flow(f) {} ...
w[i]-=c,w[i^1]+=c,tag+=c;if(tag==f)returntag; } }returntag; }intDinic(){intans=0;while(bfs()) {for(inti=0; i<=t; i++) cur[i]=h[i]; ans+=dfs(s,inf); }returnans; }intmain(){memset(h,-1,sizeof(h)); ...