博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 2229 DP
阅读量:6904 次
发布时间:2019-06-27

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

题意:给你个数,让你把它拆成2的幂的和,问有几种拆分方案。

思路:仔细想一想,就是个递推。

  1. 如果是奇数,那么它的方案数和它减一这个数的方案数是一样的。因为1不能拆成除1以外的2的幂之和。(呃说的不太清楚,意会意会(⊙﹏⊙)b)。【举个例子:100的方案数 和101的方案数是一样的】
  2. 如果是偶数,那么它的方案数等于它减一这个数的方案数与它除以二这个数的方案数之和。【举个例子:6的方案数=3的方案数+5的方案数】

也可以先手算几个数找找规律,用不完全归纳。

// by Sirius_Ren#include 
using namespace std;int f[1000001],n;int main(){ scanf("%d",&n); f[1]=1;f[2]=2; for(int i=3;i<=n;i++) if(i&1)f[i]=f[i-1]; else f[i]=(f[i-1]+f[i/2])%1000000000; printf("%d",f[n]);}

代码很短,只有10行。

这里写图片描述

转载于:https://www.cnblogs.com/SiriusRen/p/6532464.html

你可能感兴趣的文章
实验四 恶意代码技术
查看>>
快速打出System.out.println("");
查看>>
kermit的安装、配置、使用
查看>>
shell编程学习
查看>>
忙中记录
查看>>
Js点餐加减数量
查看>>
【转】ACM训练计划
查看>>
Design Tic-Tac-Toe
查看>>
LeetCode 477: Total Hamming Distance
查看>>
win10安装MarkdownPad 2报错This view has crashed的处理及md简单语法
查看>>
Unity3D - 设计模式 - 工厂模式
查看>>
第二十六课:jQuery对事件对象的修复
查看>>
Leetcode题目:Swap Nodes in Pairs
查看>>
Windows聚焦转为图片
查看>>
POJ NOI0101-09 字符菱形
查看>>
jQuery--停止动画和判断是否处于动画状态stop()
查看>>
1-1 接口自动化测试框架从设计到开发
查看>>
MYSQL常用命令
查看>>
js 打开新页面 window.open()
查看>>
Intellij idea 一个窗口打开多模块并添加依赖
查看>>