题解:P12137 [蓝桥杯 2025 省 B] 装修报价
首先我们注意到,因为符号有加有减,所以将某一项前面的正负号反转其他的都不变就一一对应到了负的这一项,所以除了第一项前面的符号不能翻,每一项的贡献都是
于是有贡献的只有从第一项开始,中间全填
虽然时间复杂度到瓶颈了,但是空间上还可以再优化。我们设
213B,目前最短的 AC 代码。
#include<bits/stdc++.h>
#define ll long long
#define p 1000000007ll
using namespace std;
ll ans=0,sum=0;int n;
int main(){
cin>>n;for(int i=1,x;i<=n;i++)cin>>x,ans=(ans*3-sum+(sum^=x)+p)%p;cout<<ans;
return 0;
}