【bzoj2734】【HNOI2012】【集合选数】【状压dp】
发布日期:2021-11-16 15:38:29 浏览次数:6 分类:技术文章

本文共 1012 字,大约阅读时间需要 3 分钟。

Description

《集合论与图论》这门课程有一道作业题,要求同学们求出{1, 2, 3, 4, 5}的所有满足以 下条件的子集:若 x 在该子集中,则 2x 和 3x 不能在该子集中。同学们不喜欢这种具有枚举性 质的题目,于是把它变成了以下问题:对于任意一个正整数 n≤100000,如何求出{1, 2,..., n} 的满足上述约束条件的子集的个数(只需输出对 1,000,000,001 取模的结果),现在这个问题就 交给你了。 

 

Input

 只有一行,其中有一个正整数 n,30%的数据满足 n≤20。 

 

Output

 仅包含一个正整数,表示{1, 2,..., n}有多少个满足上述约束条件 的子集。 
 

Sample Input


4

Sample Output

8

【样例解释】

有8 个集合满足要求,分别是空集,{1},{1,4},{2},{2,3},{3},{3,4},{4}。
题解:我们把x之间的关系写成一些矩阵。
x 3x 9x ...
2x 6x 18x ...
4x 12x 24x ...
...
现在问题变成了给你一些矩阵,要求不能选相邻的数,求方案数。
显然这个矩阵的长宽是log级的。
所以对于每个矩阵直接状压dp
最后把所有矩阵的答案乘起来即可。
代码:
#include
#include
#include
#define P 1000000001using namespace std;int f[2][1<<12],n,vis[1<<12];long long ans(1);int cal(int x){ int i,j,t,a,b,pre(0),ans(0); memset(f,0,sizeof(f)); f[1][0]=1; for (i=0;x*(1<
<=n;i++){ memset(f+(i&1),0,sizeof(f)>>1); for (j=0,t=1;x*t*(1<
<=n;j++,t*=3); for (a=0;a<(1<
>1&i)) vis[i]=1; for (int i=1;i<=n;i++) if (i%2&&i%3) ans*=cal(i),ans%=P; cout<
<

转载地址:https://blog.csdn.net/sunshinezff/article/details/51029137 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【bzoj1879】【SDOI2009】【bill的挑战】【状压dp】
下一篇:【bzoj3996】【TJOI2015】【线性代数】【最小割】

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月07日 17时50分11秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

安卓framework层开发!给后辈的一点建议,持续更新中 2019-04-29
安卓ios开发培训!华为Android面试真题解析,高级面试题+解析 2019-04-29
安卓sdk开发!阿里面试100%会问到的JVM,架构师必备技能 2019-04-29
安卓ui开发语言!Activity的6大难点,你会几个?一线互联网公司面经总结 2019-04-29
android学习路线!字节跳动Android三面凉凉,社招面试心得 2019-04-29
android定位!Android开发究竟该如何学习,全网疯传 2019-04-29
android定时任务!互联网寒冬公司倒闭后,吐血整理 2019-04-29
android定时启动app!细数Android开发者的艰辛历程,大厂面经合集 2019-04-29
android定时开关机!微信小程序的事件处理,学习路线+知识点梳理 2019-04-29
java安卓开发!今年Android面试必问的这些技术面,分享PDF高清版 2019-04-29
kotlin语言!写给1-3年安卓程序员的几点建议,大厂直通车! 2019-04-29
ndk开发app!撸了郭霖大神写的Framework源码笔记,面试必问 2019-04-29
ndk开发入门!2021年Android春招面试经历,再不刷题就晚了! 2019-04-29
android视频直播开发!阿里P8面试官都说太详细了,赶快收藏备战金九银十! 2019-04-29
android视频编辑sdk!深入浅出Android性能调优,含泪整理面经 2019-04-29
android设计!Android事件分发机制收藏这一篇就够了,重难点整理 2019-04-29
android语言!搞懂开源框架设计思想真的这么重要吗?3面直接拿到offer 2019-04-29
android课程表!大厂offer手到擒来,满满干货指导 2019-04-29
android网!2021中级Android开发面试解答,进阶学习资料! 2019-04-29
android自动化测试工具!为什么有人说Android开发不再吃香?建议收藏 2019-04-29