演算法訓練 郵票

2021-08-25 22:01:54 字數 1328 閱讀 8208

/*問題描述

給定乙個信封,有n(1≤n≤100)個位置可以貼郵票,每個位置只能貼一張郵票。

我們現在有m(m<=100)種不同郵資的郵票,面值為x1,x2….xm分(xi是整數,1≤xi≤255),每種都有n張。

顯然,信封上能貼的郵資最小值是min(x1, x2, …, xm),最大值是 n*max(x1, x2, …, xm)。

由所有貼法得到的郵資值可形成乙個集合(集合中沒有重複數值),要求求出這個集合中是否存在從1到某個值的連續郵資序列,輸出這個序列的最大值。

例如,n=4,m=2,面值分別為4分,1分,於是形成1,2,3,4,5,6,7,8,9,10,12,13,16的序列,

而從1開始的連續郵資序列為1,2,3,4,5,6,7,8,9,10,所以連續郵資序列的最大值為10分。

輸入格式

第一行:最多允許貼上的郵票張數n;第二行:郵票種數m;第三行:空格隔開的m個數字,表示郵票的面值xi。

注意:xi序列不一定是大小有序的!

輸出格式

從1開始的連續郵資序列的最大值max。若不存在從1分開始的序列(即輸入的郵票中沒有1分面額的郵票),

則輸出0.

樣例輸入

樣例一:42

4 1樣例二:105

2 4 6 8 10

樣例輸出

樣例一:

10樣例二:020

101 14 101 116 144 168 178 228 242 247

#includevoid shuru( int  , int );

void shuchu( int , int );

int q_max( int , int );

void chushihua( int , int );

void jisuan(int , int , int , int ,int );

void fr_yp( int , int , int , int );

int main( void )

void chushihua( int cf , int n) }

void jisuan(int cf , int sz , int n , int m , int max )

} }}void fr_yp( int cf , int sz , int m , int cs )

}int q_max( int sz , int n)

} return sz[max] ;

}void shuchu( int sz , int n ) }}

void shuru( int sz , int n)

}

演算法訓練 郵票

題目鏈結 問題描述 給定乙個信封,有n 1 n 100 個位置可以貼郵票,每個位置只能貼一張郵票。我們現在有m m 100 種不同郵資的郵票,面值為x1,x2 xm分 xi是整數,1 xi 255 每種都有n張。顯然,信封上能貼的郵資最小值是min x1,x2,xm 最大值是 n max x1,x2...

演算法 動態規劃 郵票問題

題目描述 已知乙個 n 枚郵票的面值集合 如,和乙個上限 k 表示信封上能夠貼 k 張郵票。計算從 1 到 m 的最大連續可貼出的郵資。例如,假設有 1 分和 3 分的郵票 你最多可以貼 5 張郵票。很容易貼出 1 到 5 分的郵資 用 1 分郵票貼就行了 接下來的郵資也不難 6 3 3 7 3 3...

DL RBM訓練演算法

在學習hinton的stack autoencoder演算法 reducing the dimensionality of data with neural networks 之前需要了解什麼是rbm,現在就我學習的情況,查詢的資料 大部分來自部落格 簡單介紹一下rbm。當然,這裡面還有同組實驗的同...