れんぞく遊資問題
2461 ワード
ある国がn種類の異なる額面の切手を発行し、封筒ごとに最大m枚の切手しか貼れないことを規定したと仮定する.連続メールボックスの問題は,与えられたnとmに対して切手の額面の最適設計を与え,1枚の封筒に郵便料金1から増分1の最大連続郵便料金区間を貼り付けることを要求する.例えば、n=5、m=4の場合、額面が1、3、11、15、32の5種類の切手が郵便料金を貼ることができる最大連続区間は1~70である.
タイトルタイプ:遡及アルゴリズムは最大m枚の切手を貼ることができるので、遡及時tracebackは何枚目の切手を貼るcountを選んだのか1からコードは以下の通りです.
タイトルタイプ:遡及アルゴリズムは最大m枚の切手を貼ることができるので、遡及時tracebackは何枚目の切手を貼るcountを選んだのか1からコードは以下の通りです.
#include
int n,m;
int a[100];
int count=1,sum=0;
int flag;
void traceback(int num)
{
int i;
if(flag)
return ;
if(num==m) {
if(sum==count) {
flag=1;
}
return ;
}
for(i=0;i<=n;i++) { // n ,
sum+=a[i];
traceback(num+1);
sum-=a[i];
}
}
int main()
{
int i;
scanf("%d%d",&n,&m);
a[0]=0;
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
while(1) {
flag=0;
traceback(0);
if(flag==0) // ,
break;
count++;
}
printf("%d
",count);
return 0;
}