摘要: 还以为是dp呢 首先默认答案是n 对于一个影子,如果前边的影子比它高则可以归进前面的影子,高处的一段单算; 和他一样高的话就不用单算了,ans ; 否则入栈 阅读全文
posted @ 2018-05-04 21:56 lokiii 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 我是怎么想出来的…… 把种族为0的都变成 1,按位置x排升序之后,s[i]表示种族前缀和,想要取(l,r)的话就要\\( s[r] s[l 1]==0 s[r]==s[l 1] \\),用一个map存每个s[i]最早出现的牛的下一个牛的位置,然后每次取到一个s[i],如果mp[s[i]]!=0,则用 阅读全文
posted @ 2018-05-04 21:40 lokiii 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 参考:https://blog.csdn.net/u010336344/article/details/53034372 神一样的线段树 线段树上维护:ll从左开始最长空段;rr从右开始最长空段;len区间中最长空段;tg: 1不全是空的,0区间内全是空的,1区间内全是满的;lz下传标记: 1没标记 阅读全文
posted @ 2018-05-04 21:12 lokiii 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 脑子一抽写了个堆,发现不对才想起来最值用二分 然后判断的时候贪心的把不合mid的区间打通,看打通次数是否小于等于m即可 阅读全文
posted @ 2018-05-04 16:52 lokiii 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 高端贪心,好久没写splay调了好久…… 以下v为价格,w为鲜嫩度 把牛和草都按v排升序,扫草,首先把v小于等于当前草的牛都丢进splay,这样一来splay里全是可选的牛了,按w排序,然后贪心的为当前的草取牛:w小于等于当前草的w的牛,取出来删除,ans加上当前草的价格(没有则跳过) 取牛的时候统 阅读全文
posted @ 2018-05-04 16:34 lokiii 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 参考:https://blog.csdn.net/qq_34564984/article/details/53843777 可能背了假的板子…… 对于每个灯建立方程:与它相邻的灯的开关次数的异或和为1 异或高斯消元,然后dfs,遇到自由元就分两种情况走,答案取max,加上最优性剪枝 cpp incl 阅读全文
posted @ 2018-05-04 11:17 lokiii 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 从每个奶牛所在草场dfs,把沿途dfs到的草场的con都+1,最后符合条件的草场就是con==k的,扫一遍统计一下即可 cpp include include using namespace std; const int K=105,N=1005; int k,n,m,p[K],h[N],cnt,c 阅读全文
posted @ 2018-05-04 10:12 lokiii 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 先跑一遍取max版的Floyd,直接用数组回答询问即可 cpp include include using namespace std; const int N=305,inf=1e9; int n,m,q,a[N][N]; int read() { int r=0,f=1; char p=getc 阅读全文
posted @ 2018-05-04 09:59 lokiii 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 考虑每头牛到达之后的影响,u到达之后,从1到其子树内的点需要放慢的都多了一个,p为u子树内点的牛ans会加1 用线段树维护dfs序,每次修改子树区间,答案直接单点查询p即可 cpp include include using namespace std; const int N=100005; in 阅读全文
posted @ 2018-05-04 09:50 lokiii 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 凸包模板 cpp include include include include using namespace std; const int N=5005; int n,w,top; struct dian { double x,y; dian(double X=0,double Y=0) { x 阅读全文
posted @ 2018-05-04 09:22 lokiii 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 参考:https://blog.csdn.net/cgh_andy/article/details/52506738 没有get到什么重点的dp……做的莫名其妙 注意滑雪一个坡可以滑很多次 设f[i][j]为时间为i能力为j的最大滑雪次数,预处理l[i][j]为在i时获得j能力的最晚开始时间,w[i 阅读全文
posted @ 2018-05-04 08:27 lokiii 阅读(157) 评论(0) 推荐(0) 编辑