UOJ

思路

(以下思路是口胡,但正确性大概没有问题。)

刚学min_25筛的时候被麦老大劝来做这题?

结果发现这题是个垃圾二合一??

简单推一下式子可以得到答案就是这个:

\[\sum_{T=1}^m (f*\mu)(T)\sum_{\{a_i\le m/T \}} \prod_i [a_{x_i}\le a_{y_i}]
\]

其中\(f(n)=(\sigma_0(n^3))^3\)。

通过手玩可以得到\((f*\mu)(p^c)=81c^2-27c+9,c\ne 0\),于是可以min_25求前缀和。

现在问题转化为:对于一个给定的上界,求满足限制的\(\{a_n\}\)有几个。

先缩点。考虑枚举\(\{a_n\}\)中不同的\(a\)有几个,然后状压DP:设\(f_S\)表示从小到大放,当前已经放了\(S\)的方案数。我们做\(n\)次转移,做完\(i\)次之后\(f_U\)就是至多\(i\)个不同的\(a\)的方案数。

转移可以枚举子集,但显然会TLE。考虑一个点能被放上去当且仅当小于它的全都放上去了,于是有一个根据拓扑序转移的方法:

f[0]=1;
rep(i,1,n)
{
repd(j,n,1)
{
int s=((1<<n)-1)^mp[j]^(1<<j-1);
for(int k=s; ; k=(k-1)&s)
{
f[k^mp[j]^(1<<j-1)]+=f[k^mp[j]];
if(!k) break;
}
}
cur[i]=f[(1<<n)-1];
}

(麦老大nb!)

其中\(n\)的拓扑序最大,\(mp_j\)记录\(j\)直接连向的点。

最后对\(cur\)二项式反演一下就没了。

代码

咕咕咕

UOJ426. 【集训队作业2018】石像 [状压DP,min_25筛]的更多相关文章

  1. 【UOJ448】【集训队作业2018】人类的本质 min_25筛

    题目大意 给你 \(n,m\),求 \[ \sum_{i=1}^n\sum_{x_1,x_2,\ldots,x_m=1}^i\operatorname{lcm}(\gcd(i,x_1),\gcd(i, ...

  2. 【UOJ#422】【集训队作业2018】小Z的礼物(min-max容斥,轮廓线dp)

    [UOJ#422][集训队作业2018]小Z的礼物(min-max容斥,轮廓线dp) 题面 UOJ 题解 毒瘤xzy,怎么能搬这种题当做WC模拟题QwQ 一开始开错题了,根本就不会做. 后来发现是每次 ...

  3. [UOJ422][集训队作业2018]小Z的礼物——轮廓线DP+min-max容斥

    题目链接: [集训队作业2018]小Z的礼物 题目要求的就是最后一个喜欢的物品的期望得到时间. 根据$min-max$容斥可以知道$E(max(S))=\sum\limits_{T\subseteq ...

  4. 2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018)-E. Explosion Exploit-概率+状压dp

    2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018)-E. Explosion Exploit-概率+状压dp [P ...

  5. [集训队作业2018]蜀道难——TopTree+贪心+树链剖分+链分治+树形DP

    题目链接: [集训队作业2018]蜀道难 题目大意:给出一棵$n$个节点的树,要求给每个点赋一个$1\sim n$之内的权值使所有点的权值是$1\sim n$的一个排列,定义一条边的权值为两端点权值差 ...

  6. 【XSY3042】石像 拓扑排序 状压DP 洲阁筛

    题目大意 有 \(n\) 个整数 \(a_1,a_2,\ldots,a_n\),每个数的范围是 \([1,m]\).还有 \(k\) 个限制,每个限制 \(x_i,y_i\) 表示 \(a_{x_i} ...

  7. [BZOJ5248] 2018九省联考 D1T1 一双木棋 | 博弈论 状压DP

    题面 菲菲和牛牛在一块\(n\)行\(m\)列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手. 棋局开始时,棋盘上没有任何棋子,两人轮流在格子上落子,直到填满棋盘时结束. 落子的规则是:一个格子可以落子 ...

  8. 2018.10.27 洛谷P2915奶牛混合起来Mixed Up Cows(状压dp)

    传送门 状压dp入门题. 按照题意建一个图. 要求的就是合法的链的总数. 直接f[i][j]f[i][j]f[i][j]表示当前状态为jjj,下一位要跟iii连起来的方案数. 然后从没被选并且跟iii ...

  9. 2018.10.24 bzoj2064: 分裂(状压dp)

    传送门 状压dp好题. 考虑对于两个给出的集合. 如果没有两个元素和相等的子集,那么只能全部拼起来之后再拆开,一共需要n1+n2−2n1+n2-2n1+n2−2. 如果有呢? 那么对于没有的就是子问题 ...

随机推荐

  1. 论文笔记:GREEDY FUNCTION APPROXIMATION: A GRADIENT BOOSTING MACHINE

    Boost是集成学习方法中的代表思想之一,核心的思想是不断的迭代.boost通常采用改变训练数据的概率分布,针对不同的训练数据分布调用弱学习算法学习一组弱分类器.在多次迭代的过程中,当前次迭代所用的训 ...

  2. node-red 安装

    介绍 Node-RED背景介绍• Node-Red是IBM公司开发的一个可视化的编程工具.它允许程序员通过组合各部件来编写应用程序.这些部件可以是硬件设备(如:Arduino板子).Web API(如 ...

  3. VS使用日常

    一.快捷键 1.Ctrl R+E    选中变量快捷自动生成属性

  4. java之struts2之文件下载

    1.在实际应用开发中,文件下载功能也非常常见. 2.最简单的文件下载方式是通过超链接来进行文件下载: <body> <a href="download/s.txt" ...

  5. NIO开发Http服务器(4):Response封装和响应

    最近学习了Java NIO技术,觉得不能再去写一些Hello World的学习demo了,而且也不想再像学习IO时那样编写一个控制台(或者带界面)聊天室.我们是做WEB开发的,整天围着tomcat.n ...

  6. CSS关于选择器和继承的一些小问题:

    选择器的分组 对选择器进行分组,这样在同一组的选择器就可以分享相同的声明.使用逗号将需要分组的选择器分开 h1,h2,h3,h4,h5{ color:green; font-family:" ...

  7. PHP 常用数据库操作

    1.建立与数据库服务器的连接(前提数据库服务器必须打开) 第一个参数:本地地址 第二个参数:数据库账户 第三个参数:数据库密码 第四个参数:数据库名称 $connection = mysqli_con ...

  8. 逆向常见加密算法值BlowFish算法

    伪c代码简单记录 伪c代码实现BlowFish加密 sub_4012F0(&v22, &v5, &v6); ^ | do { v7 = *v6 ^ v3; v3 = v4 ^ ...

  9. 安装sqlite3

    说明 当前操作在root用户下执行 1.安装编译工具 yum -y groupinstall "Development tools" yum -y install zlib-dev ...

  10. Oracle IMP-00010 不是有效的导出文件,标头验证失败 解决方法

    用IMP导入dmp文件时,出现IMP-00010 不是有效的导出文件,标头验证失败问题. 第一种:网上搜索到的大多解决方法是说导出文件时使用的Oracle版本不一致问题,需要修改dmp文件的版本号.如 ...