本文为个人对题目进行解析和理解,可能存在错误及偏差,如有错误请指出,我会及时更改
由于本人代码能力相比同龄人较差,无法保证所有题目的解析或最优解,请酌情参考
此博客一次性无法全部更新完,后续按个人心情更新
试题A:裁纸刀
解析: 此题计算行列即可,n行m列共需剪4次外围,和n-1次行,n(m-1)次列,则共需剪nm+3次,题目为20行22列,则答案为443次
试题B:灭鼠先锋
解析:
试题C:求和
解析: 本题难度不大,但需考虑可能会超出int上界以及时间复杂度问题,此处我使用前缀和进行解题
#include <iostream>
using namespace std;
const int N = 200010;
int nums[N];
int a[N];
typedef long long LL;
int main()
{
int n;
cin >> n;
cin >> a[0];
nums[0] = a[0];
for(int i = 1 ; i < n ; i ++)
{
cin >> a[i];
nums[i] = a[i] + nums[i - 1];
}
LL ans = 0;
for(int i = 0 ; i < n ;i ++)
{
ans += a[i] * (nums[n - 1] - nums[i]);
}
cout << ans;
return 0;
}