I am getting TLE and I can't handle it.I know the is solved by 0-1 Knapsack.I also try this. I think i have some mistake in my code but I do not found it. Please anyone help me..... Problem :UVA-562 — Dividing coins my code :Cpp_Code
I am getting TLE and I can't handle it.I know the is solved by 0-1 Knapsack.I also try this. I think i have some mistake in my code but I do not found it. Please anyone help me..... Problem :UVA-562 — Dividing coins my code :Cpp_Code
| № | Пользователь | Рейтинг |
|---|---|---|
| 1 | Benq | 3792 |
| 2 | VivaciousAubergine | 3647 |
| 3 | Kevin114514 | 3603 |
| 4 | jiangly | 3583 |
| 5 | turmax | 3559 |
| 6 | tourist | 3541 |
| 7 | strapple | 3515 |
| 8 | ksun48 | 3461 |
| 9 | dXqwq | 3436 |
| 10 | Otomachi_Una | 3413 |
| Страны | Города | Организации | Всё → |
| № | Пользователь | Вклад |
|---|---|---|
| 1 | Qingyu | 157 |
| 2 | adamant | 153 |
| 3 | Um_nik | 147 |
| 4 | Proof_by_QED | 146 |
| 5 | Dominater069 | 145 |
| 6 | errorgorn | 141 |
| 7 | cry | 139 |
| 8 | YuukiS | 135 |
| 9 | TheScrasse | 134 |
| 10 | chromate00 | 133 |
| Название |
|---|



Consider the following test:
100
1 cent 99 times and 500 cents
Your solution will run up to O(2^n) in this case.
Add memo: for each state (i, sum) memoize the answer obtained so that you can get it in O(1) afterwards.
how can i do that???i don't found any idea.
int knap(...)
if dp[i][sum] is already calculated
return dp[i][sum];
if (i == n)
...
...
...
return dp[i][sum] = max(q1, q2)
Note that there are some states that will never be reached. So my advice is to do the following thing:
int knap(...)
if visited[i][sum] return dp[i][sum]
if (i == n)...
visited[i][sum] = true
...
return dp[i][sum] = max(q1, q2)