社区讨论
求问两者差别
P4231三步必杀参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mhiyw7f0
- 此快照首次捕获于
- 2025/11/03 17:58 4 个月前
- 此快照最后确认于
- 2025/11/03 17:58 4 个月前
rt,今日复习二阶差分时发现我这样子写是会错的。
CPP# include <bits/stdc++.h>
# define int long long
using namespace std ;
constexpr int N = 2e5 + 5 ;
int n , m , diff[N] , a1[N] , xors , maxv ;
// a_n = a_1 + ( n - 1 ) * d ;
signed main () {
ios::sync_with_stdio ( false ) , cin.tie ( 0 ) , cout.tie ( 0 ) ;
cin >> n >> m ; for ( int i = 1 ; i <= m ; ++ i ) {
int l , r , s , e ;
cin >> l >> r >> s >> e ;
int d = ( e - s ) / ( r - l ) ;
a1[l] += s , a1[r + 1] -= s ; 0// 这里为修改a1贡献,原本为a1[r+1]-=e
diff[l + 1] += d , diff[r + 1] -= d * ( r - l + 1 ) ; // diff 修改不同
}
int as = 0 , ds = 0 ;
for ( int i = 1 ; i <= n ; ++ i ) {
diff[i] += diff[i - 1] ;
as += a1[i] ;
ds += diff[i] ;
int v = as + ds ;
xors ^= v , maxv = max ( maxv , v ) ;
}
return cout << xors << " " << maxv << '\n' , 0 ;
}
我感觉把等差数列拆成首项和公比维护也没啥差别啊,有无大佬讲解一下这两者的意义有何不同。
回复
共 1 条回复,欢迎继续交流。
正在加载回复...