⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1085 holding bin-laden captive!.cpp

📁 威士忌的HDU题解.大概有260多题的源码。对于学习非常有好处。
💻 CPP
字号:
/*
1085 Holding Bin-Laden Captive!
Time Limit : 1000 ms  Memory Limit : 32768 K  Output Limit : 5120 K

GUN C++
*/
//母函数应用
//wa
#include <iostream>
#include <string>
using namespace std;

const int numMax=1000;
const int lmax=10000;

int main()
{
    int num[3],kinds[3]={1,2,5};
    int ca,cb,cc,total,temp,max;
    unsigned short c1[lmax+1]={0},c2[lmax+1]={0};
    bool out;
    while(cin>>num[0]>>num[1]>>num[2] && (num[0]!=0 || num[1]!=0 || num[2]!=0)) //注意结束时的逻辑
    {
        total=num[0]+num[1]*2+num[2]*5;
        for(ca=0;ca<=num[0];ca++)
            c1[ca]=1;
        max=num[0];
        for(ca=1;ca<3;ca++)
        {
            for(cb=0;cb<=max;cb++)
            {
                for(cc=0,temp=0;cc<=num[ca];cc++,temp+=kinds[ca])// ca*ca+1 = 1,2,5
                {   c2[temp+cb]+=c1[cb];}
            }
            if(temp+cb>max)
                max=temp+cb;
            for(cb=0;cb<=max;cb++)
            {   c1[cb]=c2[cb];c2[cb]=0;}  //注意c2清零
        }
        
        for(ca=0,out=false;ca<=total;ca++)
            if(c1[ca]==0)
            {   cout<<ca<<endl;out=true;break;}
        if(!out)//注意最小值不在总和的范围内
            cout<<ca<<endl;

        for(ca=0;ca<=total;ca++)
            c1[ca]=c2[ca]=0;
        //memset(c1,0,sizeof(c1));
        //memset(c2,0,sizeof(c2));
    }
    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -