差分法的应用
【例題】循環輸入,每組數據給定 n (n<=10^5),然后 n 個整數 ai(ai<=100)。再給出一個 m (m<=10^5),然后 m 對整數 l,r (l<=r),對于每對整數輸出一個數代表 al 和 ar 的數字之和
int main()
{int n;std::cout << "input num of n" << std::endl;while (std::cin >> n){int a[100000], sum[100000] = {0};std::cout << "input " << n << " digits" << std::endl;for (int i = 1; i <= n; i++){std::cin >> a[i];sum[i] = sum[i - 1] + a[i];}std::cout << "input m " << std::endl;int m;std::cin >> m;std::cout << "input m pairs number" << std::endl;int l, r;int ret;for (int i = 1; i <= m; i++){std::cin >> l >> r;ret = sum[r] - sum[l - 1];std::cout << "ret is " << ret << std::endl;}}
}
對于區間 [l,r] 內數字的和,可以利用差分法分解問題;
總結
- 上一篇: kali2020进入单模式_蚂蚁集团技术
- 下一篇: 2022-2028年中国电子陶瓷行业深度