0
点赞
收藏
分享

微信扫一扫

2022年3.4春招阿里第一场笔试研发岗题目总结及题解

young_d807 2022-03-11 阅读 37

阿里巴巴春季2023届校园招聘在线笔试研发岗3.4场

1.晶体的数目

题目大意:

一种多边形晶体材料时间每经过1秒,每边晶体数量会增加1个
增加的晶体尺寸规则如下

问A个生长时间为B的晶体块一共有多少个“单位晶体”,给定晶体边数量和晶体生长时间。
(数据范围: 1 ≤ n ≤ 1 0 3 , 3 ≤ A ≤ 100 , 0 ≤ B ≤ 100 1\leq n \leq 10^3,3 \leq A \leq 100,0 \leq B \leq 100 1n103,3A100,0B100

思路:

对于每一个图形,起始为1,每秒增加 ( A − 2 ) (A-2) A2条有相交的直线晶体,一条直线晶体数量为 i + 1 , i+1, i+1,交点数量为 ( A − 3 ) (A-3) A3,
交点重复计算要减掉。所以每秒增加量为 ( A − 2 ) ∗ ( i + 1 ) − ( A − 3 ) (A-2)*(i+1)-(A-3) (A2)(i+1)(A3)

参考程序:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
    ll n, A, B;
    cin >> n;
    ll ans = 0;
    while (n--)
    {
        cin >> A >> B;
        ans++;
        for (int i = 1; i <= B; i++)
        {
            ans += (A - 2) * (i + 1) - (A - 3);
        }
    }
    cout << ans << endl;
    return 0;
}
/*
2
3 4
5 3

37

2
10 11
99 88

380481
*/
举报

相关推荐

0 条评论