BZOJ 1828】的更多相关文章

[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1828 [题目大意] 现在有一些线段[l,r]的需求需要满足,i位置最多允许a[i]条线段堆叠, 问最多能满足多少条线段的需求 [题解] 我们将所有的线段按照右端点排序,那么从头到尾考虑能不能满足需求一定能得到最优解, 因为对于相同右端点的来说,先后顺序不影响放入, 而对于右端点不同的来说,右端点靠前的先处理一定比靠后的先处理更优. 处理方式相当于线段树的区间查询和区间修改. [代码]…
Description Input 第1行:两个用空格隔开的整数:N和M * 第2行到N+1行:第i+1行表示一个整数C_i * 第N+2到N+M+1行: 第i+N+1行表示2个整数 A_i和B_i Output * 第一行: 一个整数表示最多能够被满足的要求数 题解: 将请求按右端点排序,然后依次添加,用线段树判断是否能添加,不能的放弃.统计个数即可. 代码: #include<cstdio> #include<cstring> #include<algorithm>…
program bzoj1828; ; check=; type node=record l,r,s,a:longint; end; ..maxn*] of node; a,b,c:..maxn] of longint; n,m,i,ans,mini:longint; procedure swap(var x,y:longint); begin x:=x xor y; y:=x xor y; x:=x xor y; end; procedure qsort(l,r:longint); var i…
长得挺唬人的贪心,按照右端点排序,用最小值线段树的询问判断当前牛是否能放进去,能的话更新线段树,ans++ 来自https://www.cnblogs.com/rausen/p/4529245.html非常严谨的证明 #include<iostream> #include<cstdio> #include<algorithm> using namespace std; const int N=100005; int n,m,c[N],ans; struct xds {…
UPD:我真不是想骗访问量TAT..一开始没注意总长度写着写着网页崩了王仓(其实中午的时候就时常开始卡了= =)....损失了2h(幸好长一点的都单独开了一篇)....吓得赶紧分成两坨....TAT.............. —————————————————————————————————————————————————————————————————————————————— 写(被虐)了整整一个月b站上usaco的金组题...然而到现在总共只写了100道上下TAT(当然是按AC人数降序排…
bzoj 1606: [Usaco2008 Dec]Hay For Sale 购买干草——背包 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int read(){ ,f=,c=getchar(); ; c=getchar();} +(c-'); c=getchar();} return ans*f; } ],k; int main() { h=read(); n=…
[算法]贪心+线段树 [题意]给定n个数字ci,m个区间[a,b](1<=a,b<=10^5),每个位置最多被ci个区间覆盖,求最多选择多少区间. 附加退化问题:全部ci=1,即求最多的不相交的区间. [题解]本题是区间和点之间的经典贪心,有两种经典做法,本质思想都是通过排序实现扫描线,细节根据题目不同而不同. 一.从区间角度出发,按区间右端点从小到大排序 然后再按左端点从大到小排序,从左到右能加就加. 感性理解:在对右影响一致的情况下,选择对左影响最小的. 证明:假设有最优决策序列S和当前决…
[算法]贪心扫描线(+堆) [题意]给定n头牛有区间[a,b],m个防晒霜值为ai,每个可以使用bi次,每次可以使包含它的区间涂到防晒霜,问最多被涂牛数. [题解] 参考:[bzoj1707]: [Usaco2007 Nov]tanning分配防晒霜 by czllgzmzl 本题同样是区间和点的贪心,可以参考另一道题[BZOJ]1828: [Usaco2010 Mar]balloc 农场分配(经典贪心) 区间和点的贪心有两种经典做法,本题一样. 一.从区间角度出发,按区间右端点排序 区间第二关…
2127: happiness Time Limit: 51 Sec  Memory Limit: 259 MBSubmit: 1815  Solved: 878[Submit][Status][Discuss] Description 高一一班的座位表是个n*m的矩阵,经过一个学期的相处,每个同学和前后左右相邻的同学互相成为了好朋友.这学期要分文理科了,每个同学对于选择文科与理科有着自己的喜悦值,而一对好朋友如果能同时选文科或者理科,那么他们又将收获一些喜悦值.作为计算机竞赛教练的scp大老板…
3275: Number Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 874  Solved: 371[Submit][Status][Discuss] Description 有N个正整数,需要从中选出一些数,使这些数的和最大. 若两个数a,b同时满足以下条件,则a,b不能同时被选 1:存在正整数C,使a*a+b*b=c*c 2:gcd(a,b)=1 Input 第一行一个正整数n,表示数的个数. 第二行n个正整数a1,a2,?an.    …