連續郵資是什麼意思?

General 更新 2024-11-08

連續郵資問題原理

回溯法

回溯 連續郵資問題 詳細解析 pascal

你好,解釋一下做法

bool c[255*100] // c[j] 記錄 面值綜合為J的方案存不存在

count[j] 是面值為j的郵票當前剩餘多少枚

核心處理方法:

procedure try (count[255]:integer;sum:integer;use:integer)//sum是當前的總和 use是用了的枚數

begin

if use>n then exit; //如果用的超出了限制數目 退出子程序 不再進行下去

c[sum]=true; //當前的組合總值是可以被組合的 , 所以把這格填寫true

for i:=1 to 255 do //窮舉所有面值

if count[i]>0 // 有可用的郵票

begin //進行嘗試

count[i]:=count[i]-1; // 因為使用了所以暫時-1

try(count[255],sum+i) //進行遞歸 , 總和加上了這次選擇的面值 i

count[i]:=count[i]+1; //還原面值可用數量

end;

end;

主程序一開始要做的是:

begin

read(m,n);

for i:=1 to m do

begin

read(tmp);count[tmp]:=n; //初始化

end;

try(count[255],0,n);//嘗試組合可能性

for i:=1 to 25500 //所有可能的組合 temp是目前連續的數目 if (c[i]=false) temp:=0

else begin搐

temp:=temp+1;

if temp>ans ans:=temp; //和答案比較 求最大值

end;

writeln(ans);

end.

不明白可以追問 :) 希望能採納 打了半天XD

參考資料:自己經驗

關於郵資問題

你如果不著急的話就用郵局的普通件吧,這樣又便宜又省暢,畢竟郵局都能送到,你可以百度一下,都寫著價格呢

求回溯法連續郵資問題的C++或C語言程序,急! 55分

什麼連續郵資 說清楚點

是這個題嗎?

我們寄信都要貼郵票,在郵局有一些小面值的郵票,通過這些小面值郵票中的一張或幾張的組合,可以滿足不同郵件的不同的郵資。

現在,郵局有4種不同面值的郵票。在每個信封上最多能貼5張郵票,面值可相同,可不同。

輸入:

四種郵票的面值。

輸出:

用這四種面值組成的郵資最大的從1開始的一個連續的區間。

說明:

如結果為10,則表明使用4張郵票可組合出1、2、3、4、5、6、7、8、9、10這些郵資。

如果是 那不用回溯法

窮舉就行了

#include

main()

{

int a,b,c,d,i1=0,i2=0,i3=0,i4=0,m=1,max,pflag=0;

scanf("%d %d %d %d",&a,&b,&c,&d);

for(;pflag==0;m++)

{pflag=1;

for(i1=0;i1<=5;i1++)

for(i2=0;i2<=5;i2++)

for(i3=0;i3<=5;i3++)

for(i4=0;i4<=5;i4++)

{ if(i1+i2+i3+i4<=5)

{if(m==a*i1+b*i2+c*i3+d*i4){max=m;pflag=0;}}

else break;

}

}

printf("The max is %d.\n",max);

}

C語言郵資計算試題

NOIP2007 初賽試題(提高組C)

© 中國計算機學會2007

1

第十三屆全國青少年信息學奧林匹克聯賽初賽試題

( 提高組C 語言二小時完成)

● ● 全部試題答案均要求寫在答卷紙上,寫在試卷紙上一律無效●●

一、單項選擇題(共10 題,每題1.5 分,共計15 分。每題有且僅有一個正確答案)。

1. 在以下各項中,( )不是CPU 的組成部分。

A. 控制器B. 運算器C. 寄存器D. 主板E. 算術邏輯單元(ALU)

2.在關係數據庫中,存放在數據庫中的數據的邏輯結構以( )為主。

A. 二叉樹B. 多叉樹C.哈希表D. B+樹E.二維表

3.在下列各項中,只有( )不是計算機存儲容量的常用單位。

A. Byte B. KB C.MB D.UB E.TB

4.ASCII 碼的含義是( )。

A. 二—十進制轉換碼B. 美國信息交換標準代碼C. 數字的二進制編碼

D. 計算機可處理字符的唯一編碼E. 常用字符的二進制編碼

5.在C 語言中,表達式23|2^5 的值是( )

A. 23 B. 1 C.18 D.32 E.24

6.在C 語言中,判斷a 等於0 或b 等於0 或c 等於0 的正確的條件表達式是( )

A. !((a!=0)||(b!=0)||(c!=0))

B. !((a!=0)&&(b!=0)&&(c!=0))

C. !(a==0&&b==0)||(c!=0)

D. (a=0)&&(b=0)&&(c=0)

E. !((a=0)||(b=0)||(c=0))

7.地面上有標號為A、B、C 的3 根細柱,在A 柱上放有10 個直徑相同中間有孔的圓盤,從上到下依

次編號為1,2,3,……,將A 柱上的部分盤子經過B 柱移入C 柱,也可以在B 柱上暫存。如果B 柱

上的操作記錄為:“進,進,出,進,進,出,出,進,進,出,進,出,出”。那麼,在C 柱上,從下

到上的盤子的編號為( )。

A. 2 4 3 6 5 7 B. 2 4 1 2 5 7 C. 2 4 3 1 7 6

D. 2 4 3 6 7 5 E. 2 1 4 3 7 5

8. 與十進制數17.5625 對應的8 進制數是( )。

A. 21.5625 B. 21.44 C. 21.73

D. 21.731 E. 前4 個答案都不對

9.歐拉圖G 是指可以構成一個閉迴路的圖,且圖G 的每一條邊恰好在這個閉迴路上出現一次(即一筆

畫成)。在以下各個描述中,不一定是歐拉圖的是( )。

A. 圖G 中沒有度為奇數的頂點

B. 包含歐拉環遊的圖(歐拉環遊是指通過圖中每邊恰好一次的閉路徑)

C. 包含歐拉閉跡的圖(歐拉跡是指通過圖中每邊恰好一次的路徑)

D. 存在一條迴路,通過每個頂點恰好一次

E. 本身為閉跡的圖

10. 一個無法靠自身的控制終止的循環稱為“死循環”,例如,在C 語言程序中,語句“while(1)

printf(“*”);”就是一個死循環,運行時它將無休止地打印*號。下面關於死循環的說法中,只有( )

是正確的。

A. 不存在一種算法,對任何一個程序及相應的輸入數據,都可以判斷是否會出現死循環,因而,

任何編譯系統都不做死循環檢驗

B.有些編譯系統可以檢測出死循環

C. 死循環屬於語法錯誤,既然編譯系統能檢查各種語法錯誤,當然也應該能檢查出死循環

D. 死循環與多進程中出現的“死鎖”差不多,而死鎖是可以檢測的,因而,死循環也是可以檢測

E. 對於死循環,只能等到發生時做現場處理,沒有什麼更積極的手段

二、不定項選擇題(共10 題,每題1.5 分,......

相關問題答案
連續郵資是什麼意思?
連續函數是什麼意思?
連續偶數是什麼意思?
可持續消費是什麼意思?
存續保護是什麼意思?
風險投資是什麼意思?
一連串句號是什麼意思?
企業融資是什麼意思?
級別工資是什麼意思?
投資的資是什麼意思?