题目大意:给定两个有 N 个数的序列 A,B,每个点有一个对应的权值,现需要计算答案的贡献:\(B[i]*min\{A[j]+s*(i-j),j\in[1,i] \}\) 的最小值. 题解:由于 B 序列是固定的,因此可以考虑最优化与 B 对应项相乘的值即可. 可以划分子问题,即:用 \(dp[i]\) 表示前 i 个数中对答案贡献的最小值,因此有递推式 \(dp[i]=min\{dp[i-1]+s,A[i] \}\) 代码如下 #include <bits/stdc++.h> using n…
import java.util.LinkedList; import java.util.Scanner; public class Main { private static Scanner cin; public static void main(String args[]) throws Exception { cin = new Scanner(System.in); int m = cin.nextInt(); Dictionary dic = new Dictionary(m);…