這題不加速也會 AC,但是加速之後非常有感,有兩階段,第一階段是遞增數字的時候到 (剩餘總和 / 剩餘個數) 就可以停下來了,例如只剩下三個數字還可以填,但是總和空間只剩下 30,那麼我現在這個數字至多只能是 10,因為如果是 11 以上的話,那 11, 11, 11 總和至少為 33 已超過剩餘的總和空間。另外,檢驗兩兩互質的時候也可以先建表,亦有顯著的效能改進。最後把 C++ 改寫成 C 能達到效能之極致。
另外如樓下所說,這題的輸入其實是多測資的多測資,也就是說,應該由下面的方式讀取:
如果只有 cin >> N; 的話就輸了。我也不知道為什麼要這樣設計,反正這題就是這樣。
7629964 |
allllllan123... (God of Computer...)
| d364. 10637 - Coprimes -- UVa10637 | AC (29ms, 80KB) |
C
| 2021-05-31 17:38 |
7629950 |
allllllan123... (God of Computer...)
| d364. 10637 - Coprimes -- UVa10637 | AC (38ms, 328KB) |
CPP
| 2021-05-31 17:32 |
7629925 |
allllllan123... (God of Computer...)
| d364. 10637 - Coprimes -- UVa10637 | AC (86ms, 332KB) |
CPP
| 2021-05-31 17:24 |
7629911 |
allllllan123... (God of Computer...)
| d364. 10637 - Coprimes -- UVa10637 | AC (0.7s, 344KB) |
CPP
| 2021-05-31 17:21 |