bzoj2734
非常巧妙地题目
对于一个数x
列出这样的矩阵
x 2x 4x 8x ……
3x 6x 12x 24x ……
…………………………
不难方案数就是求取数不相邻的方案数
考虑矩阵宽不超过logn,所以可以用状压dp解决
const mo=; var f:array[..,..] of longint;
s:array[..] of longint;
v:array[..] of boolean;
i,n:longint;
ans:int64; function dp(x:longint):int64;
var i,j,k,y:longint;
begin
dp:=;
y:=x;
v[x]:=true;
s[]:=;
while y*<=n do
begin
y:=y*;
v[y]:=true;
inc(s[]);
end;
for j:= to shl s[]- do
if j and (j shl )= then f[,j]:=; i:=;
while x*<=n do
begin
inc(i);
x:=x*;
y:=x;
s[i]:=;
v[y]:=true;
while y*<=n do
begin
y:=y*;
v[y]:=true; //避免重复
inc(s[i]);
end;
for j:= to shl s[i]- do
f[i,j]:=;
for j:= to shl s[i]- do
if j and (j shl )= then
for k:= to shl s[i-]- do
if j and k= then f[i,j]:=(f[i,j]+f[i-,k]) mod mo;
end;
for j:= to shl s[i]- do
inc(dp,f[i,j]);
end; begin
readln(n);
ans:=;
for i:= to n do
if not v[i] then
ans:=ans*dp(i) mod mo; //这显然是乘法原理
writeln(ans);
end.
bzoj2734的更多相关文章
- 【BZOJ2734】【HNOI2012】集合选数(状态压缩,动态规划)
[BZOJ2734][HNOI2012]集合选数(状态压缩,动态规划) 题面 Description <集合论与图论>这门课程有一道作业题,要求同学们求出{1, 2, 3, 4, 5}的所 ...
- BZOJ2734 HNOI2012集合选数(状压dp)
完全想不到的第一步是构造一个矩阵,使得每行构成公比为3的等比数列,每列构成公比为2的等比数列.显然矩阵左上角的数决定了这个矩阵,只要其取遍所有既不被2也不被3整除的数那么所得矩阵的并就是所有的数了,并 ...
- 【bzoj2734】集合选数(有点思维的状压dp)
题目传送门:bzoj2734 这题一个月前看的时候没什么头绪.现在一看,其实超简单. 我们对于每个在$ [1,n] $范围内的,没有因数2和3的数$ d $,将它的倍数$ 2^a 3^b d $一起处 ...
- bzoj2734 集合选数
Description <集合论与图论>这门课程有一道作业题,要求同学们求出{1, 2, 3, 4, 5}的所有满足以 下条件的子集:若 x 在该子集中,则 2x 和 3x 不能在该子集中 ...
- bzoj2734: [HNOI2012]集合选数
Description <集合论与图论>这门课程有一道作业题,要求同学们求出{1, 2, 3, 4, 5}的所有满足以 下条件的子集:若 x 在该子集中,则 2x 和 3x 不能在该子集中 ...
- [HNOI2012]集合选数 BZOJ2734
分析: 构造法...每次找到一个没有被选过的数,用这个数推出一个表格,之后在表格上跑状压DP,时间复杂度O(n) 附上代码: #include <cstdio> #include < ...
- bzoj2734:[HNOI2012]集合选数(状压DP)
菜菜的喵喵题~ 化序列为矩阵!化腐朽为神奇!左上角为1,往右每次*3,往下每次*2,这样子就把问题转化成了在矩阵里选不相邻的数有几种可能. 举个矩阵的例子 1 3 9 27 2 6 18 54 4 1 ...
- 【BZOJ-2734】集合选数 状压DP (思路题)
2734: [HNOI2012]集合选数 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1070 Solved: 623[Submit][Statu ...
- [BZOJ2734][HNOI2012] 集合选数(状态压缩+思维)
Description 题目链接 Solution 可以根据条件构造出一个矩阵, 1 3 9 27 81... 2 6 18.... 4 12 36... 这个矩阵满足\(G[i][1]=G[i-1] ...
随机推荐
- Mysql内存表的用处
文章出自:http://blog.csdn.net/hitzhang/article/details/5994639 个人最欣赏mysql的地方就是他存储引擎的多样性和可扩展性,这样mysql也能拥有 ...
- mysql免安装版使用
打开命令行,到bin目录下,输入net start mysql 启动服务,输入mysql -u root -p回车后输入密码,进入mysql.
- 在VS中关于MySQL的相关问题
最近在vs上折腾mysql数据库 遇到了一些小问题,这里记录一下 问题一:数据源选择中没有mysql数据库的选项 解放方法: 1.安装MySql的VS插件(版本请下载最新版)mysql-for-vis ...
- android--HttpURLConnection(转载)
android之HttpURLConnection 1.HttpURLConnection连接URL1)创建一个URL对象 URL url = new URL(http://www.baidu.com ...
- hibernate中一对多Set的排序问题
因为set是无序的,一旦涉及set排序,就需要配置hibernate的配置文件,参考如下博文 http://ykyfendou.iteye.com/blog/2094325
- 【转】Objective-C中的instancetype和id关键字
原文:http://blog.csdn.net/wzzvictory/article/details/16994913 一.什么是instancetype instancetype是clang 3.5 ...
- UITableView编写可以添加,删除,移动的物品栏(一)
效果图 : 点击编辑按钮: 点击添加按钮 ...
- jquery动态插入行,不用拼写html,简洁版
这个一个利用jquery实现动态插入输入行效果小功能,不用在javascript里拼写html字符串,更简洁.高效. html代码: <div class="fitem"&g ...
- 读书笔记之深入分析Java Web技术内幕
章节: 1 B/SB/S的优点: 客户端使用统一的浏览器(Browser) ,浏览器的统一带来了操作的统一,无论使用什么服务,因为浏览器是相同的,所以操作类似.客户使用简单了.服务端开发简化; 使用统 ...
- CentOS 6.4 64位 搭建MySQL-Cluster 7.3.8 集群
准备:1.下载 MySQL-Cluster-gpl-7.3.8-1.el6.x86_64.rpm-bundle.tar 下载地址: http://mirrors.sohu.com/mysql/MySQ ...