1 solutions

  • 2
    @ 2025-4-8 13:27:40
    思路:
        第一问是让所有差分数组都归零,而每次对区
    间进行操作实际上是让两端差分数组一个+1,一
    个-1,所以只要算出所有正数之和和所有负数绝对
    值的最大值即可。
    
        第二问是求所有差分数组归零有几种方法,根
    据第一问我们可知实际上就是求所有正数之和和所有
    负数绝对值的差。
    
    
    #include<iostream>
    using namespace std;
    long long n,a[2],cha,z,f;
    int main(){
    	cin>>n>>a[1];
    	n--;
    	while(n--){
    		cin>>a[n%2];
    		cha=a[n%2]-a[(n+1)%2];
    		if(cha>0)z+=cha;
    		else if(cha<0) f+=abs(cha);
    	}
    	cout<<max(z,f)<<endl<<abs(f-z)+1;
    	return 0;
    }
    • @ 2025-4-8 14:38:53

      好题解👍👍翻译分析题目,最好别放完整代码

    • @ 2025-4-25 21:00:45

      甚至滚动数组

  • 1

Information

ID
1069
Time
1000ms
Memory
128MiB
Difficulty
7
Tags
# Submissions
48
Accepted
10
Uploaded By