博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P3226 [HNOI2012]集合选数
阅读量:5260 次
发布时间:2019-06-14

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

考虑构造矩阵

1 3 9 27......
2 6 18 54......
4 12 36 108......
......

发现在这个矩阵上一个合法的集合是一个满足选择的数字不相邻的集合,由于行数列数的大小都是log级别的,可以直接状压dp。

此外,不仅要以1位左上角做dp,还要分别以所有既不是2的倍数,也不是3的倍数的数字做dp。
把所有方案乘起来即可。

#include
#include
#include
#include
#include
#include
#include
#include
#include
#define N 22#define S 110000#define eps 1e-7#define inf 1e9+7#define ll long longusing namespace std;inline ll read(){ char ch=0; ll x=0,flag=1; while(!isdigit(ch)){ch=getchar();if(ch=='-')flag=-1;} while(isdigit(ch)){x=(x<<3)+(x<<1)+ch-'0';ch=getchar();} return x*flag;}const ll mo=1000000001;bool flag[S];ll n,dp[N][S];ll solve(ll k){ dp[0][0]=1; ll x,a,b,last=0,ans=0; for(x=k,a=0;x<=n;x*=2)a++; for(ll i=1;i<=a;i++,k*=2) { for(x=k,b=0;x<=n;x*=3)b++; for(ll s=0;s<(1<

转载于:https://www.cnblogs.com/Creed-qwq/p/10159691.html

你可能感兴趣的文章
2019年春季学期第四周作业
查看>>
2019春第十周作业
查看>>
解决ThinkPHP关闭调试模式时报错的问题汇总
查看>>
【APT】SqlServer游标使用
查看>>
关于ExecuteNonQuery()返回值为-1
查看>>
Firefox修復QQ快速登錄
查看>>
PAT——1060. 爱丁顿数
查看>>
分布式技术追踪 2017年第二十期
查看>>
[转载] Kafka剖析(一):Kafka背景及架构介绍
查看>>
# Excel批量处理数据
查看>>
PNG类库
查看>>
Android MediaCodec的数据处理方式分析
查看>>
常见的数据结构
查看>>
Dict
查看>>
js事件---同一个事件实现全选与反选功能
查看>>
git添加公钥后报错sign_and_send_pubkey: signing failed: agent refused operation的解决办法
查看>>
Linux环境变量永久设置方法(zsh)
查看>>
MVC4.0 利用IActionFilter实现简单的后台操作日志功能
查看>>
脑袋卡在窗子里
查看>>
ruby 中文字符to_json后乱码(unicode)
查看>>