hdu1085 Holding Bin-Laden Captive!

/...................................................................................................................................................................................................................................................................................\

题目分析:

               题意:不能用num_1,num_2,num_3这三个数组和成最小的数。

                       即就是求母函数G(x)=(1+x+.....+x^num_1)(1+x^2+....+x^(2*num_2))(1+x^5+....X^(5*num_3))的展开式的 系数为零的指数; 若系数都不为零,则最小数为s+1;

错误分析:

                开始没完全理解题目的意思,开始时把题目的num_1、num_2、num_3输入要求理解为scanf("%d %d %d",&num_1,&num_2,&num_3),num_1&&num_2&&num_3),导致Runtime Error(ACCESS_VIOLATION)好几次,找了好长时间都没找到错误,又从新把代码写了一遍还是没有通过后来找大神看代码才知道,num_1、num_2、num_3 的输入要请是三个数同时为0时,程序不执行,改过之后在提交一次就AC了。


\.................................................................................................................................................................................................................................................................................../

代码:

#include<stdio.h>
#include <iostream>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<algorithm>
#include<list>
#include<vector>
#pragma comment(linker,"/STACK:102400000,102400000")
using namespace std;
#define MAX 80005
int c1[MAX],c2[MAX];

int main()
{
   int i,j,max,num_1,num_2,num_3;
   while(scanf("%d%d%d",&num_1,&num_2,&num_3),num_1||num_2||num_3)
   {
       max=num_1*1+num_2*2+num_3*5;
       for(i=0;i<=max;i++)
       {
           c1[i]=0;
           c2[i]=0;
       }
       for(i=0;i<=num_1;i++)     //为(1+x+.....+x^num_1)的系数赋初时值为1.
       {
           c1[i]=1;
       }
     for(i=0;i<=num_1;i++)      //(1+x+……+x^num_1)(1+x^2+…… x^(2*num_2))的系数;
       {
           for(j=0;j<=num_2*2;j+=2)
           {
               c2[j+i]+=c1[i];
           }
       }
       for(i=0;i<=num_2*2+num_1*1;i++)            //改变范围变为(num_1*1+num_2*2)
       {
           c1[i]=c2[i];
           c2[i]=0;
       }
       for(i=0;i<=num_1*1+num_2*2;i++)      //(1+x+.....+x^num_1)(1+x^2+....+x^(2*num_2))(1+x^5+....X^(5*num_3))的系数;    
       {
           for(j=0;j<=num_3*5;j+=5)
           {
               c2[j+i]+=c1[i];
           }
       }
       for(i=0;i<=max;i++)   //改变范围变为max=num_1*1+num_2*2+num_3*3;
       {
           c1[i]=c2[i];
           c2[i]=0;
       }
        for(i=0; i<=max; i++)
            if(c1[i] == 0)
            {
                printf("%d\n",i);
                break;
            }
        if(i == max+1)
            printf("%d\n", i);
   }
    return 0;
}







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值