CodeForces 1353 A. Most Unstable Array 简单题

1. 题目描述

1.1. Limit

Time Limit: 1000 ms

Memory Limit: 256 MB

1.2. Problem Description

You are given two integers n n n and m m m. You have to construct the array a a a of length n n n consisting of non-negative integers (i.e. integers greater than or equal to zero) such that the sum of elements of this array is exactly m m m and the value ∑ i = 1 n − 1 ∣ a i − a i + 1 ∣ \displaystyle \sum_{i = 1}^{n-1}|a_i - a_{i+1}| i=1n1aiai+1 is the maximum possible. Recall that ∣ x ∣ |x| x is the absolute value of x x x.

n other words, you have to maximize the sum of absolute differences between adjacent (consecutive) elements. For example, if the array a = [ 1 , 3 , 2 , 5 , 5 , 0 ] a=[1,3,2,5,5,0] a=[1,3,2,5,5,0] then the value above for this array is ∣ 1 − 3 ∣ + ∣ 3 − 2 ∣ + ∣ 2 − 5 ∣ + ∣ 5 − 5 ∣ + ∣ 5 − 0 ∣ = 2 + 1 + 3 + 0 + 5 = 11 |1−3|+|3−2|+|2−5|+|5−5|+|5−0|=2+1+3+0+5=11 13+32+25+55+50=2+1+3+0+5=11. Note that this example doesn’t show the optimal answer but it shows how the required value for some array is calculated.

You have to answer t t t independent test cases.


1.3. Input

The first line of the input contains one integer t ( 1 ≤ t ≤ 1 0 4 ) t(1 \le t \le 10^4) t(1t104) — the number of test cases. Then t t t test cases follow.

The only line of the test case contains two integers n n n and m m m ( 1 ≤ n , m ≤ 1 0 9 ) (1 \le n,m\le 10^9) (1n,m109) — the length of the array and its sum correspondingly.


1.4. Output

For each test case, print the answer — the maximum possible value of ∑ i = 1 n − 1 ∣ a i − a i + 1 ∣ \displaystyle \sum_{i = 1}^{n-1}|a_i - a_{i+1}| i=1n1aiai+1 for the array a a a consisting of n n n non-negative integers with the sum m m m.


1.5. Sample Input

5
1 100
2 2
5 5
2 1000000000
1000000000 1000000000

1.6. Sample Output

0
2
10
1000000000
2000000000

1.7. Notes

n n n the first test case of the example, the only possible array is [ 100 ] [100] [100] and the answer is obviously 0.

In the second test case of the example, one of the possible arrays is [ 2 , 0 ] [2,0] [2,0] and the answer is ∣ 2 − 0 ∣ = 2 |2−0|=2 20=2.

In the third test case of the example, one of the possible arrays is [ 0 , 2 , 0 , 3 , 0 ] [0,2,0,3,0] [0,2,0,3,0] and the answer is ∣ 0 − 2 ∣ + ∣ 2 − 0 ∣ + ∣ 0 − 3 ∣ + ∣ 3 − 0 ∣ = 10 |0−2|+|2−0|+|0−3|+|3−0|=10 02+20+03+30=10.

1.8. Source

CodeForces 1353 A. Most Unstable Array


2. 解读

找规律。

n = 1 n = 1 n=1时,输出 0 0 0

n = 2 n = 2 n=2时,输出 m m m

n > 2 n > 2 n>2时,输出 2 × m \displaystyle 2 \times m 2×m

3. 代码

#include <algorithm>
#include <iostream>
const long long num = 1e2 + 1;
using namespace std;

long long list[num];

int main()
{
    // test case
    long long t;
    long long n, m;
    long long ans = 0;
    // test case
    scanf("%lld", &t);
    // 输入
    while (t--) {
        scanf("%lld %lld", &n, &m);
        if (n == 1) {
            ans = 0;
        } else if (n == 2) {
            ans = m;
        } else {
            ans = 2 * m;
        }
        // 输出
        printf("%lld\n", ans);
    }
}

联系邮箱:curren_wong@163.com

Github:https://github.com/CurrenWong

欢迎转载/Star/Fork,有问题欢迎通过邮箱交流。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值