摘要: " bzoj1190 ,懒得复制,戳我戳我" Solution: 这道题其实是一个背包(分组背包),但是由于数字比较大,就要重新构造dp式子。啃了三天才懂。 $dp[i][j]$表示背包容积为$j 2^i$时的最大价值。 首先,因为每一个物品一定是$a 2^b$,我们可以按照$b$值先按照普通的分组 阅读全文
posted @ 2018-04-29 15:14 Ning_Mew 阅读(168) 评论(0) 推荐(0) 编辑
摘要: " bzoj1864 ,懒得复制,戳我戳我" Solution: 其实想出来了$dp$方程推出来了最大值,一直没想到推最小值 $dp[i][1/0]$表示$i$号节点的子树中的绿色染色最大值,$1$表示该节点染色,$0$表示该节点不染色 $$dp[i][1]=dp[ls][0]+dp[rs][0]+ 阅读全文
posted @ 2018-04-29 15:14 Ning_Mew 阅读(144) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-04-17 16:41 Ning_Mew 阅读(16) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-04-14 20:45 Ning_Mew 阅读(31) 评论(0) 推荐(0) 编辑
摘要: "懒得复制,戳我戳我" Solution: 还是一个$Splay$,我们只用多存一个值$rad$来维护二叉树,然后用数组存下每个书对应的值是多少 $Top$操作,我是把$s$旋转到根节点,然后删除,将$s$对应的$rad$值调至最小,然后插入就可以 $Bottom$操作,就是和$Top$相反,删除后 阅读全文
posted @ 2018-04-12 22:52 Ning_Mew 阅读(181) 评论(0) 推荐(0) 编辑
摘要: "懒得复制,戳我戳我" Solution: $Splay$板子,注意交换的地方,然后就是注意不要越界~~node[x]~~,应该是$node[now]$,其次就是数组可以开大点 Code: cpp //It is coded by Ning_Mew on 4.10 include define ls 阅读全文
posted @ 2018-04-11 00:10 Ning_Mew 阅读(233) 评论(0) 推荐(0) 编辑
摘要: "懒得复制,戳我戳我" Solution: $Splay$板子题,注意可以选择相等大小 Code: cpp //It is coded by Ning_Mew on 4.10 include define ls(x) node[x].ch[0] define rs(x) node[x].ch[1] 阅读全文
posted @ 2018-04-10 21:20 Ning_Mew 阅读(145) 评论(0) 推荐(0) 编辑
摘要: "懒得复制,戳我戳我" Solution: 就是有一个贪心策略:(以下假设使$A$队分数更高) $First:$比较两个分值的最小值,如果$A$最小分比$B$最小分大就直接比较两个最小的,$A$队分数加两分。 $Second:$上一条不满足我们就比较$A$与$B$最大值,如果$A$更大,就直接比较$ 阅读全文
posted @ 2018-04-08 00:47 Ning_Mew 阅读(215) 评论(0) 推荐(0) 编辑
摘要: "懒得复制,戳我戳我" Solution: 题目大概意思就是找两条最短路后,找出最长公共部分 我们就只用以四个点为源点开始走$SPFA$,然后我们就只用遍历每条边然后建立一个新的拓扑图,然后随便搞一下就出来了 另外在建新图时不要跑边入队,不然一次性入队的点太多就会爆炸,只用遍历每一条边,然后把公共边 阅读全文
posted @ 2018-04-08 00:46 Ning_Mew 阅读(168) 评论(0) 推荐(0) 编辑
摘要: "懒得复制题面,戳我戳我" Question: ~~(因为网上找不到好的翻译,这里简单复述一下)~~ 告诉你$m1+m2$个约束条件,然后要你找出$X_1 X_n$这些数字,求满足要求的数列中不同的数字个数最多有多少个(exp:$1,2,3,3,2$里面就有三个不同的数) Solution: 首先的 阅读全文
posted @ 2018-04-03 15:31 Ning_Mew 阅读(236) 评论(0) 推荐(0) 编辑