携程在线测试题答案 乘积最大: 尝试不同的拆分方法,dp 求解或者找规律 示例代码: #include #include #include #include #define maxn 109 using namespace std; long long dp[maxn][maxn]; int solve(int n){ long long ans = 0; for(int i = 0; i = n; i++) ans = max(ans, dp[n][i]); return ans; } int main(){ int n; cin n; for(int i = 0; i = n; i++) dp[0][i] = 1; for(int i = 1; i = n; i++){ for(int j = 1; j = i; j++){ for(int k = 0 ; k j; k++) dp[i][j] = max(dp[i][j], dp[i j][k] * j); } } cout solve(n) endl; return 0; } 拼图: 经典问题,广度优先搜索 示例代码: import java
*; import java
*; import java
*; import java
*; import java
*; import java
Scanner; import java
Set; import java
HashSet; import java
ArrayList; import java
StringBuilder; public class Main{ public static String destNumbers = 123456780; p