当前位置: 代码迷 >> C语言 >> 看看我的神奇的口袋(2)
  详细解决方案

看看我的神奇的口袋(2)

热度:362   发布时间:2008-03-15 10:47:53.0
我们的作业啊
出结果容易 AC难啊
----------------解决方案--------------------------------------------------------
各位高手指点一下
----------------解决方案--------------------------------------------------------
估计很难有人想做的了..你最好问具体到个人吧..问问燕子
----------------解决方案--------------------------------------------------------
谢谢啊
----------------解决方案--------------------------------------------------------
程序代码:

#include <stdio.h>
#include <string.h>
int _Cnt[2][401];

struct{
    int* operator [] (int i){
        return _Cnt[i&1];
    }   
}Cnt;   

int main()
{
    int n,t;
    while(scanf("%d",&n)!=EOF){
        memset(_Cnt,0,sizeof(_Cnt));
        Cnt[0][0]=1;
        for(int i=1;i<=n;i++){
            scanf("%d",&t);
            for(int j=0;j<=400;j++){
                Cnt[i][j]=Cnt[i-1][j]+(j>=t?Cnt[i-1][j-t]:0);
            }
        }
        printf("%d\n",Cnt[n][400]);
    }   
}



[[it] 本帖最后由 leeco 于 2008-3-16 15:36 编辑 [/it]]
----------------解决方案--------------------------------------------------------
这是我的程序:
#include<stdio.h>
#include<malloc.h>

struct line
{
    int n;
    int p;
    struct line *next;
};

void main()
{
    struct line *head;
    struct line *p1,*p2;
    head=p1=(struct line*)malloc(sizeof(struct line));
    head->next=0;
    int i=0,a,b,s=0;
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    while(scanf("%d",&p1->p)!=EOF)
    {
        p1->n=i;
        p2=(struct line*)malloc(sizeof(struct line));
        p1->next=p2;
        p1=p2;
    }
    p1->next=0;
    p1=p2=head;
    while(p1->next)
    {
        a=p1->p;
        b=400-a;
        p2=p1->next;
        while(p2->next)
        {
            if(b==p2->p)
                s++;
            p2=p2->next;
        }
        p1=p1->next;
    }
    printf("%d",s);
}
----------------解决方案--------------------------------------------------------
他要知道是不是超时间了啊.呵呵..飞燕之家都是这个问题....
----------------解决方案--------------------------------------------------------
leeco你的wrong answer
leeco你的wrong answer
----------------解决方案--------------------------------------------------------
16#能运行吗?
----------------解决方案--------------------------------------------------------
有一个神奇的口袋,总的容积是400

抓住这句,DP之
LZ不DP肯定超时
----------------解决方案--------------------------------------------------------
  相关解决方案