\(Des\)

求对于正整数\(n\leq 1e5\),{\(1,2,3,...,n\)}的满足约束条件:"若\(x\)在该子集中,则\(2x\)和\(3x\)不在该子集中."的子集个数.

\(Sol\)

是一道很妙的构造+状压\(dp\)题吖.

我最开始想这题的时候画了一个如下的图.对于每一个点,左儿子是它的两倍,右儿子是它的三倍.

约束条件是:连了边的两个点是不可以同时选的,也就是只能隔一个选一个,但是这样显然不好做.于是考虑能不能再转化一下.仔细观察这个图会发现它特别像一棵树,但又不是,因为一个点有两个父亲,这是因为一个数可能是一个数的两倍同时又是另外一个数的三倍.再观察一下会发现这个图似乎是由许多小菱形组成的,于是把菱形拉成正方形会发现得到了一个倒三角.如下:

显然我们可以把这个倒三角填满得到一个网格图.对于每一个点,它的下面是它的两倍,右边是它的三倍.这样一来,约束条件就变成了选了一个数,就不能选与它相邻的数(上,下,左,右).转化之后就成为了一般的状压$dp $解决的问题.但是,注意到这个表格并不能涵盖所有的数,我们需要对没有被涵盖的数再建一个如上的网格图,最后乘法原理统计下答案就好了.

温馨提醒​

大数组别用\(memset\),你很有可能会向我一样\(T\)掉.

\(Code\)

Code

```cpp
#include
#define il inline
#define Ri register int
#define go(i,a,b) for(Ri i=a;i=b;--i)
#define e(i,u) for(Ri i=b[u];i;i=a[i].nt)
#define mem(a,b) memset(a,b,sizeof(a))
#define ll long long
#define db double
#define inf 2147483647
using namespace std;
il int read()
{
Ri x=0,y=1;char c=getchar();
while(c'9'){if(c=='-')y=-1;c=getchar();}
while(c>='0'&&cb[30];
bool vis[N];
il void build(Ri x)
{
mem(h,0);
while(xmod)f[i][j]-=mod;
}
}
ll ret=0;
go(j,0,(int)b[h[0]].size()-1)
{
ret=ret+f[h[0]][j];
if(ret>mod)ret-=mod;
}
return ret;
}
int main()
{
n=read();
go(i,1,n)
{
if(vis[i])continue;
build(i);as=as*sol();if(as>mod)as%=mod;
}
printf("%lld\n",as);
return 0;
}

<details>

最新文章

  1. F#之旅6 - 简单AV推荐系统
  2. &quot;错误消息 401.2。: 未经授权: 服务器配置导致登录失败。&quot;的解决办法
  3. iso 培训笔记
  4. mybatis实战教程(mybatis in action)之一:开发环境搭建
  5. php单双引号
  6. 微软BI 之SSIS 系列 - 在 SQL 和 SSIS 中实现行转列的 PIVOT 透视操作
  7. 微信域名weixin.com天价成交!是腾讯吗?
  8. python 优雅的使用正则表达式 ~ 2
  9. 【AS3 Coder】任务七:初涉PureMVC——天气预报功能实现
  10. 了解javascript中的this --实例篇
  11. [SQL SERVER系列]之嵌套子查询和相关子查询
  12. SQLServer 在Visual Studio的连接方法
  13. jsp的include两种使用方法区别
  14. regsvr32 命令小集注册OCX控件,注册控件(包括十几个举例)
  15. 如何设置lmt的空间警告阀值
  16. PostgreSQL 问题总结
  17. C# 动态输出Dos命令执行结果
  18. 莫烦scikit-learn学习自修第三天【通用训练模型】
  19. 让SQL SERVER自动清理掉处于SLEEPING状态超过30分钟的进程(转)
  20. jenkins运行Python

热门文章

  1. HZOJ 赤(CF739E Gosha is hunting)
  2. Android Http实现文件的上传和下载
  3. jmeter循环取消今天所有的订单
  4. Java安装完毕后的环境配置
  5. 对装饰器@wraps的解释(一看就懂)-- 并对装饰器详解
  6. [kuangbin带你飞]专题九 连通图D - Network POJ - 3694
  7. spring+mybatis 整合
  8. SpringBoot2.0--- 多数据源配置
  9. Springboot 自定义多个404页面
  10. 【TensorFlow】理解tf.nn.conv2d方法 ( 附代码详解注释 )