團體程式設計天梯賽 練習集 L3 001 湊零錢

2021-07-14 13:08:32 字數 1414 閱讀 2712

團體程式設計天梯賽-練習集

l3-001. 湊零錢

dfs列舉各種情況,在記錄情況。或者dp。

dfs加上剪枝就好了。

dp時如果對面值dp會時前驅為最大值,不合要求,可以對他是否聯通進行dp。

dp雖然過了,但並不正確,有些情況輸出的並不是最小序列。

#include

#include

#include

using

namespace

std;

int n, m;

int coin[10024];

int use[10024];//用於記錄使用了哪些錢幣。

int maxn;//記錄有錢幣總值

int cmp(const

void *a, const

void *b)

bool dfs(int s, int p, int cnt, int last)

if (p > m)

//剩餘錢幣面值不足

if (last + p < m)

for (int i = s; i < n; i++)

}return

false;

}int main()

maxn = 0;

memset(use, 0, sizeof(use));

for (int i = 0; i < n; i++)

qsort(coin, n, sizeof(coin[0]), cmp);

if (dfs(0, 0, 0, maxn))

}else

}return

0;}

#include

#include

#include

#include

using

namespace

std;

const

int inf = -0x3fffffff;

stack

s;int n, m;

int dp[105], pre[10005], a[10005];

//pre用於記錄前驅

//dp用於記錄是否有數字組合能時數從零加到m。

void dp() }}

}int main()

sort(a, a + n);

dp[0] = 0;

dp();

if (dp[m] > 0)

printf("%d", k);

while (!s.empty())

printf("\n");

}else

printf("no solution\n");

}return

0;}

團體程式設計天梯賽 練習集 L1 011 A B

時間限制 100 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 本題要求你計算a b。不過麻煩的是,a和b都是字串 即從字串a中把字串b所包含的字元全刪掉,剩下的字元組成的就是字串a b。輸入格式 輸入在2行中先後給出字串a和b。兩字串的長度都不...

L1 011 A B(團體程式設計天梯賽 練習集)

本題要求你計算a b。不過麻煩的是,a和b都是字串 即從字串a中把字串b所包含的字元全刪掉,剩下的字元組成的就是字串a b。輸入格式 輸入在2行中先後給出字串a和b。兩字串的長度都不超過10 4,並且保證每個字串都是由可見的ascii碼和空白字元組成,最後以換行符結束。輸出格式 在一行中列印出a b...

團體程式設計天梯賽 練習集 L1 047 裝睡

你永遠叫不醒乙個裝睡的人 但是通過分析乙個人的呼吸頻率和脈搏,你可以發現誰在裝睡!醫生告訴我們,正常人睡眠時的呼吸頻率是每分鐘15 20次,脈搏是每分鐘50 70次。下面給定一系列人的呼吸頻率與脈搏,請你找出他們中間有可能在裝睡的人,即至少一項指標不在正常範圍內的人。輸入格式 輸入在第一行給出乙個正...