半数集与半数单集问题

来源:互联网 发布:dtxmania软件下载 编辑:程序博客网 时间:2024/05/16 00:37

半数集:多重集

http://115.28.203.224/problem.php?id=1176

#include<iostream>#include<cstdio>#include<cstring>using namespace std;int a[1005];int HalfSet(int n){    if(a[n] > 0)        return a[n];    else    {        a[n] = 1;        for(int i = 1;i <= n/2;i++)            a[n] += HalfSet(i);        return a[n];    }}int main(){    int n;    while(~scanf("%d",&n))    {        memset(a,0,sizeof(a));        printf("%d\n",HalfSet(n));    }    return 0;}


半数单集:非单重集

http://acm.fzu.edu.cn/problem.php?pid=1207

#include<iostream>#include<cstdio>#include<cstring>using namespace std;int a[1005];int HalfSet(int n){    if(a[n] > 0)        return a[n];    else    {        a[n] = 1;        for(int i = 1;i <= n/2;i++)        {            a[n] += HalfSet(i);            if (i>10&&(i/10<=((i%10)/2)))            {                a[n] -= a[i/10];            }        }        return a[n];    }}int main(){    int n;    while(~scanf("%d",&n))    {        memset(a,0,sizeof(a));        printf("%d\n",HalfSet(n));    }    return 0;}


0 0
原创粉丝点击