UVA 1583 打表即可

2021-10-03 15:36:30 字數 623 閱讀 7652

如果乙個數n的各位數字之和再加上n,得到新數m,那麼稱n是m的數字生成器

例如,256的生成器是245(245+2+4+5=256)

現在,給你乙個數,讓你求出它的最小的數字生成器

第一行是t,表示t組測試資料,接下來t行,每行輸入乙個正整數n,n <= 100,000

對每個n輸出它的最小的數字生成器,如果這個數不存在生成器,那麼輸出0

sample input

3 216

121

2005

sample output

198

0 1979

#include#include#includeusing namespace std;

const int maxa=100000+10;

int a[maxa];

void init()

if(a[y]==0)

a[y]=m; }}

int main()

}

UVa1583 最小生成元 只需列舉幾十次的演算法

在劉汝佳老師的 演算法競賽入門經典 第2版 52頁例題3 5中看到此題,發現此題並不需要列舉太多,實際上只需要列舉很少的值即可。例題 3 5 生成元 digit generator,acm icpc seoul 2005,uva1583 如果x加上x的各個數字之和得到y,就說x是y的生成元。給出n ...

UVA12100 列印佇列

題目大意 現在有乙個列印佇列,裡面的任務是無序的,每個任務有乙個權值,印表機會從第乙個任務開始執行,如果當前任務的權值是佇列中最大的,那麼就列印,否則就將該任務放置到隊末。每次列印消耗一定的時間,求該序列中的任務分別在什麼時候被列印。這題開乙個優先佇列乙個普通佇列,佇列裡的元素出隊,如果出隊元素和優...

uva481 列印LIS路徑

對於lis的求解問題,我採用的是二分 貪心進行求解,然後對於列印路徑採用乙個f陣列記錄,f i 代表lis序列中的第i個元素的前面的乙個元素的位置 include include include include using namespace std const int n 1e5 5 int va...