Acwing 周赛第3场

3660 最短时间

题目:

3660. 最短时间 - AcWing题库

思路:

最远的是四个边角处,分别计算四个顶点到目标位置的距离,取最大值

代码:

#include
using namespace std;
 
int main()
{
    int T;  cin >> T;
    while(T--)
    {
        int n, m, x, y;
        cin >> n >> m >> x >> y;
        
        int a = x+y-2;
        int b = n-x+y-1;
        int c = x+m-y-1;
        int d = n-x+m-y;
        
        int res = max(max(a, b), max(c, d));
        cout << res << endl;
    }
    
    return 0;
}

3661 重置数列

题目:

3661. 重置数列 - AcWing题库

思想:

1 贪心,找到一个不同于“标准”的数,往后修改k个数,得到修改次数。

2 遍历“标准”,找到最低修改次数

代码:

#include 
using namespace std;
​
const int M = 1000005;
int a[M], n, k, mx;
​
int main()
{
    int T;  cin >> T;
    while(T--)
    {
        int n, k;
        cin >> n >> k;
        for(int i=0 ; i> a[i];
        
        int res = n;
        for(int i=1 ; i<=100 ; i++){
            int cnt=0;
            for(int j=0 ; j 
  

3662 最大上升子序列和

题目:

3662. 最大上升子序列和 - AcWing题库

思路:

DP,由于数据过大,所以要用线段数组优化

你可能感兴趣的