郵票分你一半

2021-08-15 11:03:56 字數 1010 閱讀 5681

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:3 描述

小珂最近收集了些郵票,他想把其中的一些給他的好朋友小明。每張郵票上都有分值,他們想把這些郵票分成兩份,並且使這兩份郵票的分值和相差最小(就是小珂得到的郵票分值和與小明的差值最小),現在每張郵票的分值已經知道了,他們已經分好了,你知道最後他們得到的郵票分值和相差多少嗎?

輸入

第一行只有乙個整數m(m<=1000),表示測試資料組數。

接下來有乙個整數n(n<=1000),表示郵票的張數。

然後有n個整數vi(vi<=100),表示第i張郵票的分值。

輸出輸出差值,每組輸出佔一行。

樣例輸入

2

52 6 5 8 9

32 1 5

樣例輸出

0

2

題目詳解:這道題可以看成是01揹包問題,其中揹包容量m為總的郵票分值的一半,求出的b[m]為m可以裝的最大分值

**如下:

# includeint main();	

int n,sum=0;

scanf("%d",&n);

for(int i=0;i=a[i];j--)

if(b[j]

當然這道題還可以用搜尋來做,即搜尋最接近總分值一半的數,但是會超時

**如下:

#include #include int a[21],sum,all,n,i,j,min;

void dfs(int star)

{ if(star==n)

return ;

if(fabs(all-sum*2)

郵票分你一半

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 小珂最近收集了些郵票,他想把其中的一些給他的好朋友小明。每張郵票上都有分值,他們想把這些郵票分成兩份,並且使這兩份郵票的分值和相差最小 就是小珂得到的郵票分值和與小明的差值最小 現在每張郵票的分值已經知道了,他們已經分好了,你知...

郵票分你一半

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 小珂最近收集了些郵票,他想把其中的一些給他的好朋友小明。每張郵票上都有分值,他們想把這些郵票分成兩份,並且使這兩份郵票的分值和相差最小 就是小珂得到的郵票分值和與小明的差值最小 現在每張郵票的分值已經知道了,他們已經分好了,你知...

郵票分你一半

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 小珂最近收集了些郵票,他想把其中的一些給他的好朋友小明。每張郵票上都有分值,他們想把這些郵票分成兩份,並且使這兩份郵票的分值和相差最小 就是小珂得到的郵票分值和與小明的差值最小 現在每張郵票的分值已經知道了,他們已經分好了,你知...