題目描述線段樹板子題、調了半天bug,發現有個 == 寫成 = 了orz小p迷上了一種新西洋棋,這種西洋棋的棋盤是兩個序列,乙個序列是自己的部分,另乙個序列是對手的。在序列中,每一格都是乙個士兵,士兵們的初始戰鬥力不同。 在新西洋棋種獲勝方式是這樣的:有q次對決,每次對決雙方序列的兩個區間,如果小p在這個區間內的士氣和大於對手在這個區間內的士氣和,那麼小p需要說出他在這個區間內的士氣和。如果他的士氣和大於對手的士氣和,那麼他能得一分。在q次對決之後,雙方得分較多的為獲勝方。
在新西洋棋種有3種可以影響戰局的操作:
小p帶著自己的好友小y來玩新西洋棋。魔術師:通過膜法將自己棋盤部分的第i個士兵與第j個士兵交換。
**家:通過高昂的歌聲使自己棋盤部分的l到r的區間內士兵士氣值加dis。
盜賊:盜取對手第i個士兵的士氣值,並把它的士氣值加到己方第i個士兵上。
輸入格式
第一行兩個整數,n,m代表棋盤是2*n的,影響戰局的運算元與對決數之和為m個
接下來兩行,每行n個整數,分別代表自己和對手的初始士氣值。
接下來m行,每行是下面有以下幾種情況:
輸出格式mig n x y:小"n"將自己棋盤部分的第x個士兵與第y個士兵交換,例如mig y 2 5
mus n x y z:小"n"將自己棋盤部分的x到y的區間內士兵士氣值加z,例如mus y 1 3 2
sto n x y:小"n"盜取對手第x個士兵的士氣值,並把它的士氣值加到己方第y個士兵上,例如sto p 1 5
pk x y:對決雙方區間[x,y]
對於每次對決都出一次。
最後再輸出最終獲勝方,輸出獲勝者"is winner!",例如"little y is winner!"每輸出一次包含兩部分:
第一部分表示獲勝的是小p還是小y,若是小p則輸出p,若是小y則輸出y。
第二部分輸出獲勝方的區間和。
兩個部分輸出以乙個空格隔開,例如y 7
如果雙方平局,則輸出"five five open"。
樣例
input1
output15 5
1 3 2 5 1
1 3 2 5 1
mig p 3 2
mus y 1 4 2
pk 1 3
sto p 1 5
pk 2 5
input2y 12
y 17
little y is winner!
output25 10
33702 7831 40840 14560 27164
13691 20836 5480 2948 11791
sto p 5 1
pk 2 5
pk 1 5
mig p 5 3
sto p 4 1
mig y 2 5
mus p 2 3 148
sto p 4 3
pk 1 5
pk 1 1
資料範圍與提示p 90395
p 135888
p 139132
p 48441
little p is winner!
對於百分之三十的資料: 1<=n,m<=1000。
對於另外百分之二十的資料: 沒有sto和mig操作。
對於全部資料:1<=n,m<=200005。
#includeusing namespace std;
typedef long long ll;
const int maxn = 2e5+7;
struct node
}tree[2][maxn<<2];
ll flag,a[2][maxn];
void push_up(int x)
void push_down(int x)
}void build(int x,int l,int r)else tree[flag][x].val = a[flag][l];
}void update(int x,int l,int r,ll val)
}ll query(int x,int l,int r)
}char op[10],per[10];
int ans[2] = ;
void pk(ll &t1,ll &t2,int x,int y)
void sto(int x,int y)
void mig(int x,int y)
int main()else if(op[0] == 's')else if(op[1] == 'i')else
}if(ans[0] == ans[1])return 0*printf("five five open\n");
printf("little %c is winner!\n",ans[0]>ans[1]?'p':'y');
return 0;
}
NOIP2018模擬賽2018 10 18 輕功
description 題目背景 尊者神高達進入了基三的世界,作為乙個 mmorpg 做任務是必不可少的,然而跑地圖卻令人十分不爽。好在基三可以使用輕功,但是尊者神高達有些手殘,他決定用梅花樁練習輕功。題目描述 一共有 n 個木樁,要求從起點 0 開始,經過所有梅花樁,恰好到達終點 n,尊者神高達一...
NOIP2018模擬賽2018 10 18 開荒
description 題目背景 尊者神高達作為乙個萌新,在公升級路上死亡無數次後被乙隻大黃嘰帶回了師門。他加入師門後發現有無窮無盡的師兄弟姐妹,這幾天新副本開了,尊者神高達的師門作為乙個 pve師門,於是他們決定組織一起去開荒。題目描述 師門可以看做以 1 為根的一棵樹,師門中的每乙個人都有一定的...
NOIp2018模擬賽三十六
好久沒打模擬賽了。今天一樣是兩道國集,一道bzoj題 成績 13 0 95 108 a題開始看錯題了。導致樣例都沒看懂,結果xfz提醒我後我理解了乙個我自認為正確的題意 事實證明我和xfz都錯了qwq 然後瞎打了乙個線段樹,結果只有13分。c題一看就是乙個大平衡樹,開始手打了100 行發現自己肯定調...