顯然,x和y可以分開維護。
假設先維護x,我們可以發現操作是不具有結合律的,所以不能用乙個數字維護差值。所以我們就可以想到利用矩陣乘法去維護,因為矩陣乘法是具有結合律的。
我們對操作維護乙個矩陣,答案矩陣為[x,1]去乘m個矩陣,然後因為是具有結合律,所以我們可以先把後面的m個矩陣算出來,然後再算x。
ac**:
#pragma gcc optimize("-ofast","-funroll-all-loops")
#include
#define int long long
using namespace std;
const
int n=
5e5+10;
int n,m,x[n]
,y[n]
,p[n]
,q[n]
,tmp[2]
[2],s[2]
[2],t[2]
[2];
char op[n][2
];void
mul(
int a[
2],int b[
2])signed
main()
tmp[0]
[0]=tmp[1]
[1]=
1;for(
int i=m;i>=
1;i--
)for
(int i=
1;i<=n;i++
) x[i]
=x[i]
*tmp[0]
[0]+tmp[1]
[0];
tmp[0]
[0]=tmp[1]
[1]=
1,tmp[0]
[1]=tmp[1]
[0]=
0;for(
int i=m;i>=
1;i--
)for
(int i=
1;i<=n;i++
) y[i]
=y[i]
*tmp[0]
[0]+tmp[1]
[0];
for(
int i=
1;i<=n;i++
)printf
("%lld %lld\n"
,x[i]
,y[i]);
return0;
}
洛谷P2129 L國的戰鬥續之多路出擊
這一次,l國決定軍隊分成n組,分布在各地,若以l國為原點,可以看作在乙個直角座標系內。但是他們都受統一的指揮,指令部共發出m個命令。命令有移動 上下轉移和左右轉移 瞬移?但是由於某些奇奇怪怪的原因,軍隊收到命令總是有延遲,為了方便,軍方已經寫好乙個棧 那還要我幹嘛,自己都寫好不就行了?所以你要處理的...
L國的戰鬥之間諜(洛谷)
題目背景 l國即將與i國發動戰爭!題目描述 俗話說的好 知己知彼,百戰不殆 l國的指揮官想派出間諜前往i國,於是,選人工作就落到了你身上。你現在有n個人選,每個人都有這樣一些資料 a 能得到多少資料 b 偽裝能力有多差 c 要多少工資 已知敵人的探查間諜能力為 m 即去的所有人b的和要小於等於m 和...
P1910 L國的戰鬥之間諜 By C
l國即將與i國發動戰爭!俗話說的好 知己知彼,百戰不殆 l國的指揮官想派出間諜前往i國,於是,選人工作就落到了你身上。你現在有n個人選,每個人都有這樣一些資料 a 能得到多少資料 b 偽裝能力有多差 c 要多少工資 已知敵人的探查間諜能力為m 即去的所有人b的和要小於等於m 和手頭有x元錢,請問能拿...