摘要:        
没啥可说的,就是一边属性一边道具建二分图,把两个属性都连到道具上,然后枚举匹配,如果无法匹配就输出,时间戳优化 cpp include include include using namespace std; const int N=1000005; int n,x,y,h[N],cnt,lk[N]    阅读全文
posted @ 2018-07-28 22:39
lokiii
阅读(145)
评论(0)
推荐(0)
        
            
        
        
摘要:        
设[f[i][j]为1到i,开头数字是j并且是山峰的方案数 注意到当数字j和j 1不相邻时,交换它们会得到一个新的符合要求的序列,所以f[i][j]+=f[i][j 1]; 如果相邻,那么j是山峰,j 1是山谷,这样就是求1到i 1,开头数字是j 1并且是山谷的方案数,也就是f[i][j]+=f[i    阅读全文
posted @ 2018-07-28 22:18
lokiii
阅读(115)
评论(0)
推荐(0)
        
            
        
        
摘要:        
是贪心 先把两个数组排序,然后贪心的选让a数组占优的(如果没有就算输),这是最大值,最小值是2n 贪心选b数组占优 cpp include include include using namespace std; const int N=100005; int n,a[N],b[N],w,ans1,    阅读全文
posted @ 2018-07-28 21:50
lokiii
阅读(120)
评论(0)
推荐(0)
        
            
        
        
摘要:        
总之就是找前面所有点的斜率都严格小于这个点的这样的点的个数 不管是询问还是修改都非常线段树啊,而且相当眼熟~~是不是和hotel有点像啊~~,大概就是区间内记一个len一个max,分别是当前区间答案和区间最大斜率,然后合并区间的时候用右区间递归,分情况讨论更新左区间 这样是两个log…… cpp i    阅读全文
posted @ 2018-07-28 21:41
lokiii
阅读(121)
评论(0)
推荐(0)
        
            
        
        
摘要:        
一眼最大权闭合子图,然后开始构图,画了画之后发现~~我其实是个智障~~网络流满足不了m,于是发现正确的打开方式应该是一眼树上dp 然后仔细看了看性质,发现把依赖关系建成图之后是个奇环森林,这个显然不能直接dp 发现这个环要选的话只能选整个环,所以tarjan缩一下点,然后再跑树上背包就行了 cpp     阅读全文
posted @ 2018-07-28 20:40
lokiii
阅读(112)
评论(0)
推荐(0)
        
            
        
        
摘要:        
常数巨大,lg上开o2才能A 首先预处理出运输计划的长度len和lca,然后二分一个长度w,对于长度大于w的运输计划,在树上差分(d[u]+1,d[v]+1,d[lca] 2),然后dfs,找出所有覆盖所有边的边的边权最大值,然后用最长运输计划减去最大值看是否符合要求即可 upt:我怕不是个傻子……    阅读全文
posted @ 2018-07-28 20:36
lokiii
阅读(183)
评论(0)
推荐(0)
        
 
                    
                     
                    
                 
                    
                
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号