output
每次x=1時,每行乙個整數,表示這次旅行的開心度
sample input
4 1 100 5 5
5 1 1 2
2 1 2
1 1 2
2 2 3
1 1 4
sample output
hint
對於100%的資料, n ≤ 100000,m≤200000 ,data[i]非負且小於10^9
ps:1:ret和sum開始沒longlong;
2:開平方需要標記,最多幾次後就開方就沒得用了
3:因為卡時間所以還是不要用cin和cout,我開始就是這個超時
4:ios::sync_with_stdio(false);這個可以優化輸入cin,但此時不能再有scanf
5:注意看題。
**:
123
4567
891011
1213
1415
1617
1819
2021
2223
2425
2627
2829
3031
3233
3435
3637
3839
4041
4243
4445
4647
4849
5051
5253
5455
5657
5859
6061
6263
6465
6667
6869
7071
7273
7475
#include #include #include using namespace std;
typedef long long ll;
#define n 410000//4倍
ll sum[n];//longlong存
int a[n],vis[n];
void build(int l,int r,int rt)
int mid=(l+r)/2;
build(l,mid,rt*2);
build(mid+1,r,rt*2+1);
sum[rt]=sum[rt*2]+sum[rt*2+1];
vis[rt]=(vis[rt*2]&vis[rt*2+1]);
}ll query(int l1,int r1,int l,int r,int rt)
if(r1>mid)
return ret;
}void update(int l1,int r1,int l,int r,int rt)
int mid=(l+r)/2;
if(l1<=mid)
if(r1>mid)
sum[rt]=sum[rt*2]+sum[rt*2+1];
vis[rt]=(vis[rt*2]&vis[rt*2+1]);
}int main()
build(1,n,1);
int m;
cin>>m;
while(m--)
if(a==2)
}return 0;
}
花神遊歷各國 線段樹開方
時間限制 1000 ms 記憶體限制 524288 kb 提交數 127 通過數 47 原題來自 bzoj 3211 花神喜歡步行遊歷各國,順便虐爆各地競賽。花神有一條遊覽路線,它是線型的,也就是說,所有遊歷國家呈一條線的形狀排列,花神對每個國家都有乙個喜歡程度 當然花神並不一定喜歡所有國家 每一次...
花神遊歷各國
0 和 1 開方之後不會改變,對 0,1 節點打上標記 如果孩子節點都打上標記了,說明這些孩子節點的和不會改變,那麼父節點也打上標記 對於打上標記的點,change 的時候直接 return include include int n,m long long arr 100005 2 at 1000...
花神遊歷各國 bzoj3211 線段樹
有乙個n個數的序列a,請寫乙個程式完成下列操作 1 l r表示查詢l到r的和 2 l r表示把每個a x l x r 變為sqrt x n 100000,m 100000 其實我是偶然看過冪偉的題解的 滑稽 109 最多開根6次就變成1了,對於1無論怎樣開根都是不影響的 兩種做法。如果是樹狀陣列的話...