题目链接

题目大意

给你一个数k和n,表示用n个\(1/2^i(i=0,1,2.....)\)组成k有多少种方案数

题目思路

这个dp实属巧妙

设\(dp[i][j]表示i个数构成j\)

这i个数可以分为两种第一种为有1,第二种为无1

有一则可以直接从\(dp[i-1][j-1]\)转移

无一则可以从\(dp[i][2*j]\)让这i个数全部除以二即可

代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll INF=0x3f3f3f3f3f3f3f3f;
const int maxn=3e3+5,mod=998244353;
int n,k;
ll dp[maxn][maxn];
int main(){
scanf("%d%d",&n,&k);
dp[0][0]=1;
// dp[i][j] 表示i个数凑成k
for(int i=1;i<=n;i++){
for(int j=i;j>=1;j--){
dp[i][j]=(dp[i-1][j-1]+(2*j<=i?dp[i][2*j]:0))%mod;
// i个数内有1和无1
}
} printf("%lld\n",dp[n][k]);
return 0;
}

最新文章

  1. Python学习之路
  2. sql 日期格式输出 - 转
  3. Java实现敏感词过滤
  4. Android 操作SQLite基本用法
  5. 微信公众平台开发(112) 自动更新微信access token
  6. &lt;&lt;海闻电子发票接口 ESB 封装 代码指示 文档&gt;&gt;
  7. Tuple元组
  8. delphi OnMouseLeave 事件不灵敏及解决之道(使用TrackMouseEvent函数进行加强)
  9. Android Studio中新建项目时Your android sdk is out of date or is missing templates的解决办法
  10. 软硬结合的可穿戴式app
  11. .net TxetBox控件设置ReadOnly=True后台取值问题
  12. java变量和数据类型总结
  13. EntityFramework Core 2.0执行原始查询如何防止SQL注入?
  14. PL2303HX在Windows 10下面不装安装驱动的解决办法(Code:10)
  15. pdo的简单介绍和使用
  16. SCTP接口模型
  17. js 自己项目中几种打开或弹出页面的方法
  18. Linux内核分析——第四周学习笔记
  19. 安装/使用 MVVMLight(转)
  20. 【java规则引擎】《Drools7.0.0.Final规则引擎教程》第4章 4.4 LHS简介&amp;Pattern

热门文章

  1. BadBoy+JMeter应用过程中遇到的问题汇总
  2. Educational Codeforces Round 97 (Rated for Div. 2)
  3. dcoker 搭建单节点redis
  4. Java学习的第四十四天
  5. django路径问题
  6. 安装jdk及安装多版本jdk
  7. php 实现签名验签
  8. How to using code post packingSlip on Quality Orders Form[AX2009]
  9. Docker 基础 B站 学习 最强 教程
  10. 压缩法备份Linux系统文件