zoukankan      html  css  js  c++  java
  • hdu1085本拉登的难题 母函数版

    为了帮助acm学习,一年前注册了博客园。但是一年过去,要么根本在搞别的,acm学习总是一阵一阵的,要么在博客园一直都是看人家的文章,还看得头破血流。一起的同学博客已经是五光十色,我的还是空空如也。能不能坚持,这应该是一个草根acm是否能成为大神的决定性因素。不管以后能否坚持,现在我要执意一水,也算记录不争气的自己的一点汗迹吧。

    我做1085的时候,还不知道神马是母函数,等我ac后,发现大神们用的都是“母函数”法,于是顺带学习了一下大神的方法,并了解了一下母函数这种算法。

     1 #include<stdio.h>
     2 #include<string.h>
     3 #define mem0(f) memset(f,0,sizeof(f))
     4 #define M 9000
     5 int s[M];
     6 int main()
     7 {
     8     int a,b,c;
     9     while(~scanf("%d%d%d",&a,&b,&c))
    10     {
    11         if(!a&&!b&&!c)break;
    12         mem0(s);
    13         for(int i=0;i<=a;i++)//一定要先进行第一个括号的初始化,以帮助后面的多项式展开
    14         {
    15             s[i]=1;
    16         }
    17         for(int i=0;i<=a;i++)
    18         {
    19             for(int k=0;k<=2*b;k+=2)
    20             {
    21                 if(s[i])s[i+k]=1;//把可以表示的进行标记
    22             }
    23         }
    24         //printf("%d
    ",s[1]);
    25         for(int i=0;i<=a+2*b;i++)
    26         {
    27             for(int k=0;k<=5*c;k+=5)
    28                {
    29                    if(s[i])
    30                    {
    31                        s[i+k]=1;
    32                    }
    33                }
    34         }
    35         //printf("%d
    ",s[1]);
    36         for(int i=0;;i++)
    37         {if(s[i]==0){printf("%d
    ",i);break;}}
    38     }
    39     return 0;
    40 }

    这个方法虽然在此题中显得复杂度较高,但是该方法在拼凑一类的题目中使用性还是很广的,不能满足对不对?

    初学母函数,这个代码貌似不好,以后再慢慢改进了。

  • 相关阅读:
    IOS知识点收集
    多媒体层预览(Media Layer OverView)
    IOS Audio开发集合
    《android 1: 创建一个安卓项目》
    IOS 中的CoreImage框架(framework)
    [转载]面向对象的六大原则
    [转载]UDP丢包率提升
    产品与项目的区别
    关联、组合、聚合、依赖关系比较
    统一建模语言(UML,Unified Modeling Language)
  • 原文地址:https://www.cnblogs.com/plank-george-zzo/p/3203394.html
Copyright © 2011-2022 走看看