源代碼\用動態(tài)規(guī)劃算法計(jì)算序列關(guān)系個(gè)數(shù)
用關(guān)系"<"和"="將3個(gè)數(shù)a,b,c依次序排列時(shí),有13種不同的序列關(guān)系:
a=b=c,a=b<c,a<b=v,a<b<c,a<c<b
a=c<b,b<a=c,b<a<c,b<c<a,b=c<a
c<a=b,c<a<b,c<b<a
若要將n個(gè)數(shù)依序列,設(shè)計(jì)一個(gè)動態(tài)規(guī)劃算法,計(jì)算出有多少種不同的序列關(guān)系,
要求算法只占用O(n),只耗時(shí)O(n*n).
標(biāo)簽:
lt
源代碼
動態(tài)規(guī)劃
序列
上傳時(shí)間:
2013-12-26
上傳用戶:siguazgb
編程題(15_01.c)
結(jié)構(gòu)
struct student
{
long num
char name[20]
int score
struct student *next
}
鏈表練習(xí):
(1).編寫函數(shù)struct student * creat(int n),創(chuàng)建一個(gè)按學(xué)號升序排列的新鏈表,每個(gè)鏈表中的結(jié)點(diǎn)中
的學(xué)號、成績由鍵盤輸入,一共n個(gè)節(jié)點(diǎn)。
(2).編寫函數(shù)void print(struct student *head),輸出鏈表,格式每行一個(gè)結(jié)點(diǎn),包括學(xué)號,姓名,分?jǐn)?shù)。
(3).編寫函數(shù)struct student * merge(struct student *a,struct student *b), 將已知的a,b兩個(gè)鏈表
按學(xué)號升序合并,若學(xué)號相同則保留成績高的結(jié)點(diǎn)。
(4).編寫函數(shù)struct student * del(struct student *a,struct student *b),從a鏈表中刪除b鏈表中有
相同學(xué)號的那些結(jié)點(diǎn)。
(5).編寫main函數(shù),調(diào)用函數(shù)creat建立2個(gè)鏈表a,b,用print輸出倆個(gè)鏈表;調(diào)用函數(shù)merge升序合并2個(gè)
鏈表,并輸出結(jié)果;調(diào)用函數(shù)del實(shí)現(xiàn)a-b,并輸出結(jié)果。
a:
20304,xxxx,75,
20311,yyyy,89
20303,zzzz,62
20307,aaaa,87
20320,bbbb,79
b:
20302,dddd,65
20301,cccc,99
20311,yyyy,87
20323,kkkk,88
20307,aaaa,92
20322,pppp,83
標(biāo)簽:
student
struct
score
long
上傳時(shí)間:
2016-04-13
上傳用戶:zxc23456789