摘要:        
还以为是dp呢 首先默认答案是n 对于一个影子,如果前边的影子比它高则可以归进前面的影子,高处的一段单算; 和他一样高的话就不用单算了,ans ; 否则入栈    阅读全文
posted @ 2018-05-04 21:56
lokiii
阅读(135)
评论(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
阅读(102)
评论(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
阅读(199)
评论(0)
推荐(0)
        
            
        
        
摘要:        
脑子一抽写了个堆,发现不对才想起来最值用二分 然后判断的时候贪心的把不合mid的区间打通,看打通次数是否小于等于m即可    阅读全文
posted @ 2018-05-04 16:52
lokiii
阅读(138)
评论(0)
推荐(0)
        
            
        
        
摘要:        
高端贪心,好久没写splay调了好久…… 以下v为价格,w为鲜嫩度 把牛和草都按v排升序,扫草,首先把v小于等于当前草的牛都丢进splay,这样一来splay里全是可选的牛了,按w排序,然后贪心的为当前的草取牛:w小于等于当前草的w的牛,取出来删除,ans加上当前草的价格(没有则跳过) 取牛的时候统    阅读全文
posted @ 2018-05-04 16:34
lokiii
阅读(181)
评论(0)
推荐(0)
        
            
        
        
摘要:        
参考:https://blog.csdn.net/qq_34564984/article/details/53843777 可能背了假的板子…… 对于每个灯建立方程:与它相邻的灯的开关次数的异或和为1 异或高斯消元,然后dfs,遇到自由元就分两种情况走,答案取max,加上最优性剪枝 cpp incl    阅读全文
posted @ 2018-05-04 11:17
lokiii
阅读(150)
评论(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
阅读(150)
评论(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
阅读(175)
评论(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
阅读(123)
评论(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
阅读(98)
评论(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
阅读(166)
评论(0)
推荐(0)
        
 
                    
                     
                    
                 
                    
                
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号