度小满编程题
1,滑动窗口
时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB
题目描述:
在机器学习中有一种流行的池化操作,而在池化操作中,33极大值池化应用十分广泛。什么是33极大值池化呢?设原矩阵是nm的,则33极大值池化就是枚举矩阵中的所有33的子矩阵,分别求最大值并顺次拼接而成,处理过后的矩阵是(n-2)(m-2)。
例如,原矩阵是[[1,2,3,4],[5,6,7,8],[9,10,11,12]],经过池化之后就变成[[11,12]]。
为了提高难度,选择的滑动窗口并不是33的,而是ab的,由于输入可能是非常大的,原nm的矩阵权值由以下公式计算得到,h(i,j)=ij mod 10。(1<=i<=n,1<=j<=m)
由于输出矩阵也是一个很麻烦的事情,因此你只需输出经过a*b池化处理后的矩阵的元素之和即可。
输入
输入第一行包含四个正整数,n,m,a,b,分别表示原矩阵的行列数量和滑动窗口的行列数量。(1<=n,m,a,b<=1000)
输出
输出仅包含一个整数,即新矩阵的元素之和。
样例输入
4 5 3 3
样例输出
54
2,传送门
题目描述:
西西所在的国家有N座城市,每座城市都有一道传送门,城市 i 的传送门通往城市 a[i]。当西西位于城市 i 时,每次他可以执行以下三种操作中的一种:
花费 A 的费用,从城市 i 前往城市 a[i];
如果 a[i] > 1,可以花费 B 的费用,将 a[i] 的值减少 1;
如果 a[i] < N,可以花费 C 的费用,将 a[i] 的值增加 1。
现在,西西想从城市 1 前往城市 N,那么他至少要花费多少费用?
输入
第一行输入四个整数 N、A、B、C(1 < N <= 10000,1 <= A、B、C <= 100000)。
第二行输入 N 个整数 a[1] 到 a[N](1 <= a[i] <= N)。
输出
输出一个整数,表示从城市 1 前往城市 N 所花费的最少费用。
样例输入
7 1 1 1
3 6 4 3 4 5 6
样例输出
4
提示
样例解释
西西可以按顺序执行以下操作:
将 a[1] 减少 1,此时 a[1] = 2;
从城市 1 前往城市 2;
将 a[2] 增加 1,此时 a[2] = 7;
从城市 2 前往城市 7。