正解:贪心

解题报告:

传送门!

首先最小值最大显然考虑二分?然后就二分一个值mid,从左往右考虑,对于小于等于mid的点显然可以求出这个点至少要加几次,然后找到覆盖这个点的右端点max的区间区间加上它要加的数就好

然后具体的操作和短路那题差不多,,,同差分+开个数组+全局变量,over

挺显然的贪心?不解释了QAQ

那就等下直接放代码了QAQ

(我怎么觉得我题解越来越简洁了鸭嘻嘻

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define il inline
  4. #define gc getchar()
  5. #define ri register int
  6. #define rc register char
  7. #define rb register bool
  8. #define rp(i,x,y) for(ri i=x;i<=y;++i)
  9. #define my(i,x,y) for(ri i=x;i>=y;--i)
  10.  
  11. const int N=+,inf=1e9;
  12. int n,m,k,dat,a[N],b[N],c[N],l,r,ret;
  13. vector<int>nod[N];
  14.  
  15. il int read()
  16. {
  17. rc ch=gc;ri x=;rb y=;
  18. while(ch!='-' && (ch>'' || ch<''))ch=gc;
  19. if(ch=='-')ch=gc,y=;
  20. while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=gc;
  21. return y?x:-x;
  22. }
  23. il bool cmp(ri gd,ri gs){return gd>gs;}
  24. il bool check(ri x)
  25. {
  26. priority_queue<int>Q;ri as=,tot=;
  27. rp(i,,n)b[i]=max(,(x-a[i]+dat-)/dat);memset(c,,sizeof(c));
  28. rp(i,,n)
  29. {
  30. tot+=c[i];ri sz=nod[i].size();rp(j,,sz-)Q.push(nod[i][j]);
  31. while(!Q.empty() && tot<b[i])
  32. {
  33. if(Q.top()<i)return false;++tot;--c[Q.top()+];Q.pop();++as;
  34. }
  35. if(tot<b[i] || as>k)return false;
  36. }
  37. return true;
  38. }
  39.  
  40. int main()
  41. {
  42. // freopen("4064.in","r",stdin);freopen("4064.out","w",stdout);
  43. int T=read();
  44. while(T--)
  45. {
  46. n=read();m=read();k=read();dat=read();ret=l=;rp(i,,n)a[i]=read(),nod[i].clear();r=inf;
  47. rp(i,,m){ri l=read();nod[l].push_back(read());}
  48. while(l<r){ri mid=(l+r)>>;if(check(mid+))l=mid+;else r=mid;}
  49. printf("%d\n",l);
  50. }
  51. return ;
  52. }

然后放个代码吼qwq

最后写个小细节,,,虽然我觉得一般人都不会错只有我比较傻逼没注意QAQ

就是它check会有很多次嘛,所以用队列的时候记得每次先清空

当然也可以选择就不开全局的queue,在check函数中定义,这样每次拿到的就是个空的队列辣QwQ

over!

洛谷P4064 加法 [JXOI2017] 贪心的更多相关文章

  1. 洛谷P4064 [JXOI2017]加法(贪心 差分)

    题意 题目链接 Sol 这题就是一个很显然的贪心... 首先二分一个答案,然后check是否可行.check的时候我们需要对每个位置\(i\),维护出所有左端点在\(i\)左侧,右端点在\(i\)右侧 ...

  2. 洛谷P1966 火柴排队 贪心+离散化+逆序对(待补充QAQ

    正解: 贪心+离散化+逆序对 解题报告: 链接在这儿呢quq 这题其实主要难在想方法吧我觉得?学长提点了下说用贪心之后就大概明白了,感觉没有很难 但是离散化这里还是挺有趣的,因为并不是能很熟练地掌握离 ...

  3. [洛谷P1417 烹调方案]贪心+dp

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3211Dream City Time Limit: 1 Second     ...

  4. 洛谷P3826 蔬菜 [NOI2017] 贪心

    正解:贪心 解题报告: umm,,,其实我还不会 废话我这么菜怎么可能懂QAQ 先占坑,想学习这题很久了呢QAQ

  5. 【洛谷】【堆+贪心】P1484 种树

    [题目描述:] cyrcyr今天在种树,他在一条直线上挖了n个坑.这n个坑都可以种树,但为了保证每一棵树都有充足的养料,cyrcyr不会在相邻的两个坑中种树.而且由于cyrcyr的树种不够,他至多会种 ...

  6. 【题解】期末考试 六省联考 2017 洛谷 P3745 BZOJ 4868 贪心 三分

    题目传送门:这里是萌萌哒传送门(>,<) 啊♀,据说这题有个完全贪心的做法,但是要维护太多东西好麻烦的(>,<),于是就来口胡一发三分的做法. 思路很简单,假设我指定了一个x, ...

  7. 洛谷P2127 序列排序 [贪心]

    题目传送门 题目描述 小C有一个N个数的整数序列,这个序列的中的数两两不同.小C每次可以交换序列中的任意两个数,代价为这两个数之和.小C希望将整个序列升序排序,问小C需要的最小代价是多少? 输入输出格 ...

  8. 洛谷 P4704 太极剑【贪心】

    首先考虑分割线能分割一条线当且仅当分割线一个端点在这条线的ab中间,另一端点在外面,也就是分割线对应的一条弧不能同时有这条线的两个端点 每条线的两端点都染同色,然后分段,一段里面颜色互不相同,分割线就 ...

  9. 洛谷 - P2887 - 防晒霜Sunscreen - 贪心

    https://www.luogu.org/problemnew/show/P2887 感觉可以: 把防晒霜拆点限制流量为瓶数,奶牛拆点限制流量为1,当某个防晒霜与奶牛匹配时连一条边,求最大流.但是这 ...

随机推荐

  1. OllyScripts 0.92帮助文档

    -------------------------------Olly脚本插件v0.92 制作: SHaG文档汉化:ZMWorm[CCG][TT]E-Mail:TranslationTeam[at]1 ...

  2. Netbeans rcp中获得本地文件系统路径

    通过file协议 —————————————————————————————————————————————————————— URL url = new URL("file:///E:/A ...

  3. MQTT 学习记录

    学习mqtt协议,从网上找demo验证一下. 参考链接 https://www.jianshu.com/p/ebbe25d1c4b2 https://blog.csdn.net/xxmonstor/a ...

  4. 一个整型数组里除了一个数字之外,其他的数字都出现了两次。要求时间复杂度是O(n),空间复杂度是O(1),如何找出数组中只出现一次的数字

    思路分析:任何一个数字异或它自己都等于0,根据这一特性,如果从头到尾依次异或数组中的每一个数字,因为那些出现两次的数字全部在异或中抵消掉了,所以最终的结果刚好是那些只出现一次的数字. 代码如下: #i ...

  5. 网络编程 -- RPC实现原理 -- Netty -- 迭代版本V2 -- 对象传输

    网络编程 -- RPC实现原理 -- 目录 啦啦啦 V2——Netty -- 使用序列化和反序列化在网络上传输对象:需要实现 java.io.Serializable 接口 只能传输( ByteBuf ...

  6. 大杂烩 -- 简析TCP的三次握手与四次分手

    基础大杂烩 -- 目录 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - ...

  7. ThinkingInJava 学习 之 0000001 一切都是对象

    -- -- -- -- -- -- -- -- -- 大杂烩 -- Java内存布局[图]以及java各种存储区[详解] -- -- -- -- -- -- -- -- -- 1. 用引用操纵对象 在 ...

  8. error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2

    使用VS2013版本引用外部的lib进行编译时候提示: 错误 25 error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项:  值“0”不匹配值“2”(jrtpl ...

  9. MySql表结构修改详解

    修改表的语法=========================增加列[add 列名]=========================①alter table 表名 add 列名 列类型 列参数[加的 ...

  10. 10.5Djang admin 管理工具

    2018-10-5 17:30:57 Django admin 管理工具  参考连接: https://www.cnblogs.com/yuanchenqi/articles/8323452.html ...