【题解】数的计数

题目描述

我们要求找出具有下列性质数的个数(包含输入的自然数n):

先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理:

l、不作任何处理;

2、茬它的左边加上一个自然数,但该自然数不能超过原数的一半;;

3、加上数后,继续按此规则进行处理,直到不能再而 自然数为止。

例如输入6,则符合条件的数有6、16、26、36、126、136。

输入输出格式

输入格式:

一行,即一个自然数n(1≤n≤1000)。

输出格式:

一行,即满足条件的数的个数。

输入输出样例

输入样例:

6

输出样例:

6这道题可以硬解,就用递归做吧如果直接递归当然会超时,我们可以用记忆化搜索和数组计数先枚举从1到n/2,然后在根据枚举出的结果往下分支,每做一次,数组check[n]就会增加方案数,最后输出check[n]就是我要的结果具体程序如下:
#include<iostream>
using namespace std;
int check[1005];
void add(int n)
{
    if (check[n]!=0) return;
    check[n]=1;
    for (register int i=1;i<=n/2;i++)
    {
        add(i);
        check[n]+=check[i];
    }
}
int main()
{
    int n;
    cin>>n;
    add(n);
    cout<<check[n];
}
 

原文地址:https://www.cnblogs.com/2021-yanghaoran/p/10716652.html

时间: 2024-10-18 07:59:09

【题解】数的计数的相关文章

1415.数的计数

1415. [NOIP2001]数的计数 ☆   输入文件:nums.in   输出文件:nums.out   简单对比 时间限制:1 s   内存限制:256 MB [题目描述] 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理 l·不作任何处理: 2·在它的左边加上一个自然数,但该自然数不能超过原数的一半; 3·加上数后,继续按此规则进行处理,直到不能再立生自然数为止. [输入格式] 自然数n [输出格式] 满足

数的计数

问题 C: 数的计数(number) 时间限制: 1 Sec  内存限制: 64 MB提交: 46  解决: 27[提交][状态][讨论版] 题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数n),先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理: (1)不作任何处理: (2)在它的左边加上一个自然数,但该自然数不能超过原数的一半:(3)加上数后,继续按此规则进行处理,直到不能再加自然数为止. 输入 一个正整数n. 输出 符合以上性质的数的个数. 样例输入 6 样

数的计数——递推算法

Problem Description 我们要求找出具有下列性质数的个数(包括输入的自然数n).先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理: 不作任何处理: 在它的左边加上一个自然数,但该自然数不能超过原数的一半: 加上数后,继续按此规则进行处理,直到不能再加自然数为止. Input 输入有多组数据,每组数据为自然数n. Output 对于每组数据输出满足条件的数的个数. Sample Input 6 Sample Output 6 Hint 满足条件的数为6,16

0x50 动态规划(0x5C 计数类DP)例题3:装饰围栏(题解)(计数类DP讲解,确定第k个排列)

计数类DP一般就是确定DP状态,DP出排名范围,然后不断逼近. 题意 题目链接 [题目描述] 有 N 块长方形的木板,长度分别为1,2,-,N,宽度都是1. 现在要用这 N 块木板组成一个宽度为 N 的围栏,满足在围栏中,每块木板两侧的木板要么都比它高,要么都比它低. 也就是说,围栏中的木板是高低交错的. 我们称"两侧比它低的木板"处于高位,"两侧比它高的木板"处于低位. 显然,有很多种构建围栏的方案. 每个方案可以写作一个长度为N的序列,序列中的各元素是木板的长度

hdu---(1280)前m大的数(计数排序)

前m大的数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 10633    Accepted Submission(s): 3707 Problem Description 还记得Gardon给小希布置的那个作业么?(上次比赛的1005)其实小希已经找回了原来的那张数表,现在她想确认一下她的答案是否正确,但是整个的答案是很庞大的表,小希

2001数的计数

题目: 题目描述 Description 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理: 1.          不作任何处理; 2.          在它的左边加上一个自然数,但该自然数不能超过原数的一半; 3.          加上数后,继续按此规则进行处理,直到不能再加自然数为止. 输入描述 Input Description 一个数n 输出描述 Output Description 满足条件的数的个

【算法专题】卡特兰数(计数数列)

Catalan数列:1 1 1 2 5 14 42 132 429 1430 4862 16796 [计数映射思想] 参考:卡特兰数 - 计数的映射方法的伟大胜利 计数映射:将难以统计的数映射为另一种形式的可以统计的数. 一.入栈出栈序 n个数字,有多少种合法的入栈出栈序列?n=3时的合法序列之一:+1,-1,+1,+1,-1,-1 对于n个数字,就是要在2n个1中添加n个"+",则序列总数C(2n,n). 对于未入栈先出栈的不合法情况,在其第一次前缀和为-1时,将前面的所有符号反转,

HDU4372-Count the Buildings(第一类Stirling数+组合计数)

Count the Buildings Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 528    Accepted Submission(s): 171 Problem Description There are N buildings standing in a straight line in the City, numbere

DP——数的计数

Description 要求找出具有下列性质数的个数(包括输入的自然数n): 先输入一个自然数n( n <= 1000),然后对此自然数按照如下方法进行处理: (1)不作任何处理 (2)在它的左边加上一个自然数,但该数不能超过原数的一半 (3)加上数后,继续按此处理,直到不能再加自然数为止 Input 多个测试案例,每个测试案例 输入一个自然数n Output 输出满足以上条件的所有数的个数 Sample Input 6 Sample Output 6 HINT 对于6,满足条件的数有61626