博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【题解】Luogu P1204 [USACO1.2]挤牛奶Milking Cows
阅读量:4560 次
发布时间:2019-06-08

本文共 2487 字,大约阅读时间需要 8 分钟。

原题传送门:

实际是道很弱智的题目qaq

但窝还是觉得用珂朵莉树写会++rp(窝都初二了,还要考pj)

前置芝士:珂朵莉树

没什么好说的自己看看吧

每个农夫就assign_val一下,但要注意一下细节qaq

窝不会告诉你因这个错调了我十几分钟qaq

应该写assign_val(l,r-1,1),查询时应写query(lmin,rmax,1/0)

其他没什么好说的了,细节详见程序

#pragma GCC optimize("O3")#include
#define IT set
::iteratorusing namespace std; struct IO_Tp{ static const int _I_Buffer_Size = 1 << 24; char _I_Buffer[_I_Buffer_Size]; char* _I_pos; static const int _O_Buffer_Size = 1 << 24; char _O_Buffer[_O_Buffer_Size]; char* _O_pos; IO_Tp() : _I_pos(_I_Buffer), _O_pos(_O_Buffer) { fread(_I_Buffer, 1, _I_Buffer_Size, stdin); } ~IO_Tp() { fwrite(_O_Buffer, 1, _O_pos - _O_Buffer, stdout); } inline bool is_digit(const char ch) { return '0' <= ch && ch <= '9'; } inline IO_Tp& operator>>(int& res) { res = 0; while (!is_digit(*_I_pos)) ++_I_pos; do (res *= 10) += (*_I_pos++) & 15; while (is_digit(*_I_pos)); return *this; } inline IO_Tp& operator<<(int n) { static char _buf[10]; char* _pos(_buf); do *_pos++ = '0' + n % 10; while (n /= 10); while (_pos != _buf) *_O_pos++ = *--_pos; return *this; } inline IO_Tp& operator<<(char ch) { *_O_pos++ = ch; return *this; }} IO;inline int Max(register int a,register int b){ return a>b?a:b;}inline int Min(register int a,register int b){ return a
s;IT split(int pos){ IT it = s.lower_bound(node(pos)); if (it != s.end() && it->l == pos) return it; --it; int L = it->l, R = it->r; bool V = it->v; s.erase(it); s.insert(node(L, pos-1, V)); return s.insert(node(pos, R, V)).first;}void assign_val(int l,int r,bool v){ IT itr = split(r+1),itl = split(l); s.erase(itl, itr); s.insert(node(l, r, v));}inline int query(register int l,register int r,register bool v){ int sum=0,res=0; IT itr = split(r+1),itl = split(l); for(;itl!=itr;++itl) if(itl->v==v) sum+=itl->r-itl->l+1; else { res=Max(res,sum); sum=0; } return res;}int main(){ int n; IO>>n; int a=1000005,b=0; s.insert(node(0,1000005)); while(n--) { int l,r; IO>>l>>r; assign_val(l,r-1,1); a=Min(a,l); b=Max(b,r); } IO<
<<' '<

转载于:https://www.cnblogs.com/yzhang-rp-inf/p/9898752.html

你可能感兴趣的文章
lua的性能优化
查看>>
vs2012 出现断点无法命中 解决方案。
查看>>
weex图片加载更多方法loadmore的使用
查看>>
创建您的 ActiveReports Web端在线报表设计器
查看>>
项目复审
查看>>
FreeMarker学习
查看>>
hihocoder 1631
查看>>
2018大都会赛 A Fruit Ninja【随机数】
查看>>
【实战HTML5与CSS3】用HTML5和CSS3制作页面(上)
查看>>
小公司的一年,一起看看小公司的前端可以怎么做
查看>>
oracle数据批处理
查看>>
Json网络解析
查看>>
[转]Google Chrome/IE/FireFox查看HTTP请求头request header响应头
查看>>
Harris角点检测
查看>>
Struts2的处理流程及为Action的属性注入值
查看>>
设计中最常用的CSS选择器
查看>>
Maven项目打包成可执行Jar文件
查看>>
nginx http proxy 正向代理
查看>>
对BFC的总结
查看>>
第十四周Java学习总结
查看>>