問題 小希的數表

2021-08-05 21:55:54 字數 1232 閱讀 9519

題目描述

gardon 昨天給小希布置了一道作業,即根據一張由不超過 5000 的 n(3<=n<=100)個正整數組成的數表兩兩相加得到 n*(n-1)/2 個和,然後再將它們排序。例如,如果數表裡含有四個數 1,3,4,9,那麼正確答案是 4,5,7,10,12,13。小希做完作業以後出去玩了一陣,可是下午回家時發現原來的那張數表不見了,好在她做出的答案還在,你能幫助她根據她的答案計算出原來的數表麼?

輸入包含多組資料,每組資料以乙個 n 開頭,接下來的一行有按照大小順序排列的 n*(n-1)/2 個數,是小希完成的答案。檔案最後以乙個 0 結束。

假設輸入保證解的存在性和唯一性。

輸出對於每組資料,輸出原來的數表。它們也應當是按照順序排列的。

樣例輸入

44 5 7 10 12 13

45 6 7 8 9 10

0樣例輸出

1 3 4 9

2 3 4 6

ac**

#includeusing namespace std;

int n, n, key, sum[5000], ans[101], minn;

int look(int s) //尋找第乙個字首為s且字尾不為key的sum[i]的i

if (sum[low] / 1000 != s)low = high;

if (sum[low] / 1000 != s)return 0;

while (sum[low] % 1000 == key && low < n && sum[low + 1] / 1000 == sum[low] / 1000)low++;

if (sum[low] % 1000 == key)return 0;

return low;}

bool add(int d)//新增ans[d],更新sum

while (sum[minn] % 1000 == key)minn++;

ans[d] = sum[minn]/1000 - ans[1];

if (!add(d))return false;

return solve(d + 1);}

int main()

for (key = 3; key <= n; key++)

if (!flag)continue;

minn = 1;

if (solve(key+1))break;

} }return 0;

}

杭電1270 小希的數表

gardon昨天給小希布置了一道作業,即根據一張由不超過5000的n 3 n 100 個正整數組成的數表兩兩相加得到n n 1 2個和,然後再將它們排序。例如,如果數表裡含有四個數1,3,4,9,那麼正確答案是4,5,7,10,12,13。小希做完作業以後出去玩了一陣,可是下午回家時發現原來的那張數...

hdu 1270 小希的數表

思路 一定有sum 1 num 1 num 2 sum 2 num 1 num 3 但是sum 3 不知道是由num 1 num 4 還是num 2 num 3 這就需要列舉一下了。然後算出num 1 num 2 num 3 的值。並從sum中剔除他們,這是最小的乙個一定是num 1 num 4 再...

小希的迷宮

description 上次gardon的迷宮城堡小希玩了很久 見problem b 現在她也想設計乙個迷宮讓gardon來走。但是她設計迷宮的思路不一樣,首先她認為所有的通道都應該是雙向連通的,就是說如果有乙個通道連通了房間a和b,那麼既可以通過它從房間a走到房間b,也可以通過它從房間b走到房間a...