#include<iostream>#include<cstdio>#include<iomanip>#include<cstring>usingnamespace std;constint SB=-1438;int num[2000];voidDfs(int n){if(num[n]!=SB)return;//前面有结果了就不用再算num[n]=1;for(int i=1;i<=n/2;i++){Dfs(i); num[n]+=num[i];//统计数量,so easy}}intmain()...
ioioioioioio 1#include<iostream>2#include<cstdio>3usingnamespacestd;4intmain()5{6freopen("nums.in","r",stdin);7freopen("nums.out","w",stdout);8inta[1001],n;9cin>>n;10a[1]=1;11for(ints=2;s<=n;s++)12{13a[s]=0;14for(inti=1;i<=s/2;i++)15{16a[s]+=a[i];17}18a[...
using namespace std; typedef long long ll; int n; ll ans=0; const int N=1000+5; int a[N]; void f(int n){ if(a[n]!=0){ cout<<"a[n]!=0\n"; return; } printf("a[%d]\n",n); a[n]=1; for(int i=1;i<=n/2;i++){ printf("f(%d)\n",i); f(i); a[n]+=...
2001NOIP普及组真题 1. 数的计数 线上OJ: 【01NOIP普及组】数的计数 核心思想: 1、样例中给到了 f[6] = 6。其实这里包含了 f[3]=2, f[2]=2, f[1]=1, 以及6本身。 注解:按照题意,6前面的数字只能是3,2,1,或者不放(不放就是6本身) 当6前面放3的时候,那3有多少种可能性,就都可以叠加在...
【参考程序1】://NOIP 2001 普及组 n<=1000 #include<cstring> #include<cstdio> #include<iostream> usingnamespacestd; intn,ans; voiddfs(intn) { ans++; for(inti=1;i<=n/2;i++) dfs(i); } intmain() { scanf("%d",&n);
#include using namespace std; int count1[1001]; int main() { int n; cin>>n; count1[1]=1...
1316:【例4.6】数的计数(Noip2001),数的计数1#include<iostream>2usingnamespacestd;34intans;5voidcnt(intori){6ans++;7for(inti=1;i<=ori/2;i++)8cnt(i);9}10intmain(){1...
include<bits/stdc++.h> using namespace std;int count1[1001];int main(){ int n;cin>>n;count1[1]=1;count1[2]=2;count1[3]=2;for(int i=4;i<=n;i++){ for(int j=1;j<=i/2;j++)count1[i]+=count1[j];count1[i]++;} printf("%d\n",count1[n]);return 0;}...
1316:【例4.6】数的计数(Noip2001) 时间限制: 1000 ms内存限制: 65536 KB 【题目描述】 我们要求找出具有下列性质数的个数(包括输入的自然数n)。先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理: 不作任何处理; 在它的左边加上一个自然数,但该自然数不能超过原数的一半; ...
luogu1025_数的划分(NOIP2001提高组第2题) 时空限制 1000ms/128MB 题目描述 将整数 n分成 k 份,且每份不能为空,任意两个方案不相同(不考虑顺序)。 例如: n=7, k=3,下面三种分法被认为是相同的。 1,1,5 ; 1,5,1; 5,1,1; 问有多少种不同的分法。 输入输出格式 输入格式: n,k ( 6<n&le...