ZR9.8普转提
ZR9.8普转提
A,B
打过的CF原题,不管了
C
确认过眼神,是我不会写的DP,
发现这个题目要求的过程类似与一个所有括号都不一样的括号匹配的过程
但是限制条件非常多,有点无从下手的感觉
我们设\(f_{i,j}\)表示当\(i\)出栈前,\(i\)在栈底,\(i\)和他上面的所有物品重量不超过\(j\)时的最大价值
但是这样很难统计贡献,因为最终状态的栈是空的
我们考虑在栈的底部放一个永远不会被弹出的东西
他的参数是\(in:0,out:2\times n+1,w:0.s:w,v:0\)
对于所有物品按照\(out\)从小到大排序,\(out\)相同的按照\(in\)从大到小排序
这样就能满足括号序列的性质,使得尽可能多的出现这种情况,便于统计答案

我们枚举是那个物品在\(i\)的上面
这样我们就能直接转移
但只这样只是枚举了\([((((()))))]\)这样的情况,忽略了\([()()()()()]\)这样的情况
我们考虑用另外一个DP去考虑这种情况的贡献
我们设\(g_{i,j}\)表示前\(i\)时刻,重量为\(j\)的方案数
这样我们就可以在求得\(g_{a_i.out,u}\)之后,直接用这个东西去更新\(f_{i,u}\)
另外我们在DP的过程中,绝对不允许这种情况发生

我们可以看做分段DP,这种情况是不会放到一起被转移的
所以我们DP数组\(f\)和\(g\)都是定义在要么被\(i\)包含,要么完全不交的前提之下的
D
首先考虑暴力SB容斥
我们设\(f_i\)表示\(i\)这个集合里的物品不能选择的方案数
设\(U\)为全集
那么则有
\[
ans = \sum_{T\subseteq U} (-1)^{|T|}f_{\complement_{U}^T}
\]
我们考虑如何计算\(f_i\)
设\(g_i\)表示包含的物品的对应二进制恰好为\(i\)的方案数,那么则有
\[
f_S = \sum_{T\subseteq S}g_T
\]
这样我们就得到了一个\(3^m\)的做法
之后发现,求\(f_S\)的过程可以用FMT进行优化
然后时间复杂度为\(m \times 2 ^ m\)
ZR9.8普转提的更多相关文章
- ZROI #364. 【2018普转提day18专题】嘤嘤嘤
ZROI #364. [2018普转提day18专题]嘤嘤嘤 直接贴代码 具体见注释 #include<stdio.h> #include<cstring> #include& ...
- ZROI #365. 【2018普转提day18专题】嘤嘤嘤嘤
ZROI #365. [2018普转提day18专题]嘤嘤嘤嘤 直接放代码 具体做法见注释 #include<stdio.h> #include<cstring> #inclu ...
- ZR普转提2
ZR普转提2 A 谢谢刁神教我A题 刚开始读错题了,以为是一个不可做的数位DP,然后就暴力滚粗 直到问了问刁神,发现自己题意是错的 然后成了比较简单的题目 直接暴力枚举每一位填什么,剩下的位数的数字都 ...
- ZROI2018普转提day6t1
传送门 分析 记录区间最大值,线段树上二分找比这个点大的最靠前位置即可 代码 #include<iostream> #include<cstdio> #include<c ...
- ZROI2018普转提day6t3
传送门 分析 居然卡哈希数,万恶的出题人...... 感觉我这个方法似乎比较呆,我的代码成功成为了全网最慢的代码qwq 应该是可以直接哈希的 但由于我哈希学的不好又想练练线段树维护哈希,于是就写了个线 ...
- ZROI2018普转提day7t1
传送门 分析 一道有意思的小题... 我们发现如果$(1,1)$为白色,则将其变为白色需要偶数次操作,而如果为黑色则需要奇数次操作 我们知道要让A赢需要奇数次操作,所以我们只需要判断$(1,1)$的颜 ...
- ZROI2018普转提day7t2
传送门 分析 首先我们不难想到我们一定可以将每一个点分开算,然后看这个点被几个矩形包含 于是对于位置为$(i,j)$的点它被包含的次数为$i * (n-i+1) * j * (m-j+1)$ 这个式子 ...
- ZROI2018普转提day1t4
传送门 分析 就是飞飞侠这道题...... 我们可以将这张图建成好几层,每一层可以向下一层的上下左右无代价移动,而对于每个点如果付b[i][j]的代价就可以走到比它高a[i][j]的层上.我们用这种方 ...
- ZROI2018普转提day1t1
传送门 分析 我们先二分一下最终的平均值mid,然后让序列中的每一个数都减去这个mid,之后用新序列的前缀和建一棵线段树,枚举起点i,然后求出此时在i+L-1~i+R-1范围内的前缀和的最大值,用这个 ...
随机推荐
- mac下的抓包工具Charles
在mac下面,居然没有好的抓包工具,这让我十分纠结,毕竟不可能为了抓一个http包就跑到win下折腾.或许有人说tcpdump这么好的工具,你怎么不用.说实话,tcpdump太复杂了,我还没有细看,再 ...
- python LEGB原理简要介绍
- 小爬爬4:12306自动登录&&pyppeteer基本使用
超级鹰(更简单的操作验证) - 超级鹰 - 注册:普通用户 - 登陆: - 创建一个软件(id) - 下载示例代码 1.12306自动登录 # Author: studybrother sun fro ...
- MaxCompute 图计算开发指南
快速入门step by step MaxCompute Studio 创建完成 MaxCompute Java Module后,即可以开始开发Graph了. 代码示例 在examples目录下有gra ...
- 【UTR #1】ydc的大树
[UTR #1]ydc的大树 全网唯一一篇题解我看不懂 所以说一下我的O(nlogn)做法: 以1号点为根节点 一个黑点如果有多个相邻的节点出去都能找到最远的黑点,那么这个黑点就是无敌的 所以考虑每个 ...
- qt开发ROS gui 遇到:global.h:1087:4: error: #error "You must build your code with position independent code if Qt was built with -reduce-relocations. "......
具体错误如下: 一共出现38个错误 这个错误是在导入cmakelists.txt时产生的,其实不是工程本身的问题,是因为我卸载ros,再重新安装ros的过程中把qtcreator的部分包给删除了,导致 ...
- Android内核剖析读书笔记(1)—Framework概述
一.Framework组成 1.服务端组成 a.WindowManagerService 决定各窗口的叠放次序.隐藏或者显示窗口 b.ActivityManagerService 管理应用 ...
- 当better-scroll遇见了react擦出的火花
关于better-scroll这个插件前面已经介绍过两次了 从原生js使用到结合服务端发送数据使用都有过介绍 今天给大家分享一下这款插件在react中遇见的坑 总之我真是对这款插件又爱又恨 每次各种 ...
- IDEA使用中文api鼠标提示的设置
最近都在用IDEA来练习,发现有的方面确实比eclipse好用,eclipse里面可添加中文的API 提示,对初期的我帮助很大,但是IDEA却没有找到添加的地方,一直以来还以为不支持这个功能,比较遗憾 ...
- 从HelloWorld看Knative Serving代码实现
摘要: Knative Serving以Kubernetes和Istio为基础,支持无服务器应用程序和函数的部署并提供服务.我们从部署一个HelloWorld示例入手来分析Knative Servin ...