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

📄 1494 跑跑卡丁车 .cpp

📁 威士忌的HDU题解.大概有260多题的源码。对于学习非常有好处。
💻 CPP
字号:
#include <stdio.h>
#include <memory.h>

int l,n;
int a[110],b[110];

int dp[11000][30],it;
inline bool OneLess(int s,int t)
{
	if(s==0)
		return false;
	else
		return s<t;
}

int main()
{
    int i,j,k;
    int len,kt;
	
    while(scanf("%d %d",&l,&n)==2)
    {
        for(i=1;i<=l;i++)
            scanf("%d",&a[i]);
        for(i=1;i<=l;i++)
            scanf("%d",&b[i]);
		
        memset(dp,0,sizeof(dp));
        
		len=0;
		dp[0][0]=1;
		
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=l;j++)
            {
                for(k=0;k<30;k+=2)
				{
					if(dp[len][k]>0)
					{
						if(k>=10)
						{
							dp[len+1][k-10] = OneLess(dp[len+1][k-10] , dp[len][k]+b[j]) ? dp[len+1][k-10] : dp[len][k]+b[j];
						}
						if(k+2>=30)
							kt=20;
						else
							kt=k+2;
						dp[len+1][kt] = OneLess(dp[len+1][kt] , dp[len][k]+a[j]) ? dp[len+1][kt] : dp[len][k]+a[j];
						
						//printf("%d(%d,%d)=%d\n",j,len,k,dp[len][k]);
					}
				}
				len++;
            }//for j
        }//for i

        it=0x7fffff;
        for(i=0;i<30;i+=2)
            if(dp[len][i]>0 && dp[len][i]<it)
                it=dp[len][i];
			
			printf("%d\n",it-1);
    }
    return 0;
}

⌨️ 快捷键说明

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