[c]代码库
#include <stdio.h>
#include <stdlib.h>
#define MAXNUM 100
int n;//数字个数
int m;//回合数
int Num[MAXNUM];//原始数据数组
int DescNum[MAXNUM];//递减数据数组
int F[MAXNUM][MAXNUM];//过程数组
void swap(int ,int );
//交换两个整数
int max(int ,int );
//取两个中的最大值
int main()
{
int i,j;
printf("输入数字的个数n(1-100):\n");
scanf("%d",&n);
printf("输入回合数m(1-100)<=n:\n");
scanf("%d",&m);
printf("输入n个原始序列:\n");
for(i=1; i<=n; i++)
{
scanf("%d",&Num[i]);
}
printf("输入n个递减的数字:\n");
for(i=1; i<=n; i++)
{
scanf("%d",&DescNum[i]);
}
for(i=1; i<=n; i++)
{
for(j=i+1; j<=n; j++)
{
if(DescNum[i]<DescNum[j])
{
swap(Num[i],Num[j]);
swap(DescNum[i],DescNum[j]);
}
}
}
for(i=1; i<=n; i++)
{
F[i-1][0]=0;
for(j=1; j<=m; j++)
F[i][j]=max(F[i-1][j],F[i-1][j-1]+Num[i]-DescNum[i]*(j-1));
}
printf("得分:%d\n",F[n][m]+DescNum[1]);
return 0;
}
void swap(int x,int y)
{
int temp;
temp = x;
x = y;
y = temp;
}
int max(int x,int y)
{
if(x<y)
return y;
else
return x;
}
初级程序员
by: 云代码会员 发表于:2015-06-19 15:24:13 顶(0) | 踩(0) 回复
不错
回复评论