3857. Minimum Cost to Split into Ones Medium

@problem@discussion
#Math#Dynamic Programming



1/**
2 * [3857] Minimum Cost to Split into Ones
3 *
4 * You are given an integer n.
5 * In one operation, you may split an integer x into two positive integers a and b such that a + b = x.
6 * The cost of this operation is a * b.
7 * Return an integer denoting the minimum total cost required to split the integer n into n ones.
8 *  
9 * <strong class="example">Example 1:
10 * <div class="example-block">
11 * Input: <span class="example-io">n = 3</span>
12 * Output: <span class="example-io">3</span>
13 * Explanation:
14 * One optimal set of operations is:
15 * <table style="border: 1px solid black;">
16 * 	<tbody>
17 * 		<tr>
18 * 			<th style="border: 1px solid black;">x</th>
19 * 			<th style="border: 1px solid black;">a</th>
20 * 			<th style="border: 1px solid black;">b</th>
21 * 			<th style="border: 1px solid black;">a + b</th>
22 * 			<th style="border: 1px solid black;">a * b</th>
23 * 			<th style="border: 1px solid black;">Cost</th>
24 * 		</tr>
25 * 		<tr>
26 * 			<td style="border: 1px solid black;">3</td>
27 * 			<td style="border: 1px solid black;">1</td>
28 * 			<td style="border: 1px solid black;">2</td>
29 * 			<td style="border: 1px solid black;">3</td>
30 * 			<td style="border: 1px solid black;">2</td>
31 * 			<td style="border: 1px solid black;">2</td>
32 * 		</tr>
33 * 		<tr>
34 * 			<td style="border: 1px solid black;">2</td>
35 * 			<td style="border: 1px solid black;">1</td>
36 * 			<td style="border: 1px solid black;">1</td>
37 * 			<td style="border: 1px solid black;">2</td>
38 * 			<td style="border: 1px solid black;">1</td>
39 * 			<td style="border: 1px solid black;">1</td>
40 * 		</tr>
41 * 	</tbody>
42 * </table>
43 * Thus, the minimum total cost is 2 + 1 = 3.
44 * </div>
45 * <strong class="example">Example 2:
46 * <div class="example-block">
47 * Input: <span class="example-io">n = 4</span>
48 * Output: <span class="example-io">6</span>
49 * Explanation:
50 * <div class="example-block">
51 * One optimal set of operations is:
52 * <table style="border: 1px solid black;">
53 * 	<tbody>
54 * 		<tr>
55 * 			<th style="border: 1px solid black;">x</th>
56 * 			<th style="border: 1px solid black;">a</th>
57 * 			<th style="border: 1px solid black;">b</th>
58 * 			<th style="border: 1px solid black;">a + b</th>
59 * 			<th style="border: 1px solid black;">a * b</th>
60 * 			<th style="border: 1px solid black;">Cost</th>
61 * 		</tr>
62 * 		<tr>
63 * 			<td style="border: 1px solid black;">4</td>
64 * 			<td style="border: 1px solid black;">2</td>
65 * 			<td style="border: 1px solid black;">2</td>
66 * 			<td style="border: 1px solid black;">4</td>
67 * 			<td style="border: 1px solid black;">4</td>
68 * 			<td style="border: 1px solid black;">4</td>
69 * 		</tr>
70 * 		<tr>
71 * 			<td style="border: 1px solid black;">2</td>
72 * 			<td style="border: 1px solid black;">1</td>
73 * 			<td style="border: 1px solid black;">1</td>
74 * 			<td style="border: 1px solid black;">2</td>
75 * 			<td style="border: 1px solid black;">1</td>
76 * 			<td style="border: 1px solid black;">1</td>
77 * 		</tr>
78 * 		<tr>
79 * 			<td style="border: 1px solid black;">2</td>
80 * 			<td style="border: 1px solid black;">1</td>
81 * 			<td style="border: 1px solid black;">1</td>
82 * 			<td style="border: 1px solid black;">2</td>
83 * 			<td style="border: 1px solid black;">1</td>
84 * 			<td style="border: 1px solid black;">1</td>
85 * 		</tr>
86 * 	</tbody>
87 * </table>
88 * Thus, the minimum total cost is 4 + 1 + 1 = 6.
89 * </div>
90 * </div>
91 *  
92 * Constraints:
93 * 
94 * 	1 <= n <= 500
95 * 
96 */
97pub struct Solution {}
98
99// problem: https://leetcode.com/problems/minimum-cost-to-split-into-ones/
100// discuss: https://leetcode.com/problems/minimum-cost-to-split-into-ones/discuss/?currentPage=1&orderBy=most_votes&query=
101
102// submission codes start here
103
104impl Solution {
105    pub fn min_cost(n: i32) -> i32 {
106        0
107    }
108}
109
110// submission codes end
111
112#[cfg(test)]
113mod tests {
114    use super::*;
115
116    #[test]
117    fn test_3857() {
118    }
119}
120

Back
© 2026 bowen.ge All Rights Reserved.