ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#213156 | #584. t3 | Snow_Dog7 | 0 | 0ms | 1360kb | C++ | 2.7kb | 2024-11-09 21:38:06 | 2024-11-09 23:22:49 |
answer
#include <bits/stdc++.h>
using namespace std;
#define int long long
struct Tree{
int l,r;
int value; //存的max
int awa,ewe;
}tree[11451414];
int n,s,m;
int num[11451414];
int now,fu;
void bulid(int &v,int l,int r) {
v = ++fu;
tree[v].ewe=1e18;
if (l == r) {
tree[v].value = num[l];
}
else {
int mid = l + r >> 1;
bulid(tree[v].l,l,mid);
bulid(tree[v].r,mid + 1,r);
tree[v].value = max(tree[tree[v].l].value , tree[tree[v].r].value);
}
}
void push_down(int v,int l,int r,int add,int turn){
if(turn != 1e18) {
tree[v].value = (l + r) * turn;
tree[v].ewe = turn;
tree[v].awa = 0;
}
else {
tree[v].value += (l + r) * add;
if (tree[v].ewe == 1e18) tree[v].awa += add;
else tree[v].ewe += add;
}
}
void two(int v,int l,int r,int ll,int rr,int add,int turn) {
if (l == ll && r == rr) {
push_down(v,l,r,add,turn);
}
else {
int mid = l + r >> 1;
push_down(tree[v].l,l,mid,tree[v].awa,tree[v].ewe);
push_down(tree[v].r,mid + 1,r,tree[v].awa,tree[v].ewe);
tree[v].ewe = 1e18;
tree[v].awa = 0;
if (rr <= mid) {
two(tree[v].l,l,mid,ll,rr,add,turn);
}
else if (ll > mid) {
two(tree[v].r,mid + 1,r,ll,rr,add,turn);
}
else {
two(tree[v].l,l,mid,ll,mid,add,turn);
two(tree[v].r,mid + 1,r,mid + 1,rr,add,turn);
}
tree[v].value = tree[tree[v].l].value + tree[tree[v].r].value;
}
}
int three(int v,int l,int r,int ll,int rr,int k) {
if (l == r) {
return pow(tree[v].value,k);
}
else if (l == ll && r == rr) {
int mid = l + r >> 1;
push_down(tree[v].l,l,mid,tree[v].awa,tree[v].ewe);
push_down(tree[v].r,mid + 1,r,tree[v].awa,tree[v].ewe);
tree[v].awa = 0;
tree[v].ewe = 1e18;
return three(tree[v].l,l,mid,ll,mid,k) + three(tree[v].r,mid + 1,r,mid + 1,rr,k);
}
else {
int mid = l + r >> 1;
push_down(tree[v].l,l,mid,tree[v].awa,tree[v].ewe);
push_down(tree[v].r,mid + 1,r,tree[v].awa,tree[v].ewe);
tree[v].awa = 0;
tree[v].ewe = 1e18;
if (rr <= mid) {
return three(tree[v].l,l,mid,ll,rr,k);
}
else if (ll > mid) {
return three(tree[v].r,mid + 1,r,ll,rr,k);
}
else {
return three(tree[v].l,l,mid,ll,mid,k) + three(tree[v].r,mid + 1,r,mid + 1,rr,k);
}
}
}
signed main ( ) {
cin >> n >> m ;
for (int i = 1;i <= n;i++) {
scanf("%lld",&num[i]) ;
}
int r;
bulid(r,1,n);
for (int i = 1;i <= m;i++) {
int t,x,y,k;
scanf("%lld",&t);
if (t == 2) {
scanf("%lld%lld%lld",&x,&y,&k);
two(r,1,n,x,y,0,k);
}
else if (t == 1) {
scanf("%lld%lld%lld",&x,&y,&k);
two(r,1,n,x,y,k,1e18);
}
else {
scanf("%lld%lld%lld",&x,&y,&k);
printf("%lld\n",three(r,1,n,x,y,k) / 10) ;
}
}
}
详细
小提示:点击横条可展开更详细的信息
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 1356kb
input:
458 823 14431 9895 11970 15308 2575 20181 709 27999 12992 18884 11061 16281 5044 28990 25092 28337 3...
output:
880080736696721019 -922337203685477580 0 -456931774002416435 0 3229820636442828 -922337203685477580 ...
result:
wrong answer 1st lines differ - expected: '806084096', found: '880080736696721019'
Test #2:
score: 0
Wrong Answer
time: 0ms
memory: 1360kb
input:
481 526 8409 14498 18636 10027 24362 32458 17986 17730 11956 19192 2193 1034 29317 19284 16210 26242...
output:
421974573104783257 180209220113768119 -211027504029423619 0 13 -53682114874811392 0 807083798878329 ...
result:
wrong answer 1st lines differ - expected: '867105097', found: '421974573104783257'
Test #3:
score: 0
Time Limit Exceeded
input:
100000 100000 15247 4194 9619 4532 22058 2667 21549 16652 25327 12018 13395 11426 7243 11714 22904 2...
output:
5443 12648036149579 1349112371585 8252593 3734592220822 9396788170277 3821 540327205620 1913 1824920...
result:
Test #4:
score: 0
Time Limit Exceeded
input:
100000 100000 6264 26207 28424 24165 4852 20798 5803 18679 24588 12238 25786 28622 19900 101 25922 2...
output:
1892 200189591977 4171 3444 3209 8065 33602033420353 997 5082308506214 1979 29282648998446 899323885...
result:
Test #5:
score: 0
Time Limit Exceeded
input:
100000 100000 15043 9299 7163 25384 24996 3803 24356 12466 22073 12987 8931 14997 3951 32704 23076 8...
output:
-865616933423611011 629 8634666657539 415187757980342528 1693488325037 68 528192140304316857 6395 57...
result:
Test #6:
score: 0
Time Limit Exceeded
input:
100000 100000 14736 16956 19864 23894 29403 5507 12182 6188 17192 14440 18618 3970 15396 15037 23334...
output:
1700 7300 11137416497888 7207497885570 1538 2523 -632831397362968691 7533 2585 4651 10877040570795 2...
result:
Test #7:
score: 0
Time Limit Exceeded
input:
50000 50000 17799 29763 25337 21321 1391 31852 27418 28753 18524 14044 15976 18893 12274 22834 11348...
output:
1949 -48694960545106707 611703475525881842 920921943489665831 0 -922337203685477580 0 0 -92233720368...
result:
Test #8:
score: 0
Time Limit Exceeded
input:
50000 50000 10654 14956 14287 25326 8102 30579 11682 23553 272 22672 14460 30241 13026 12738 4912 72...
output:
-922337203685477580 202208820685 -922337203685477580 -922337203685477580 0 0 1038 493 0 0 -922337203...
result:
Test #9:
score: 0
Time Limit Exceeded
input:
90000 90000 29538 28214 24706 30393 27759 9002 13458 10243 15713 14881 10630 5593 7942 24578 29370 1...
output:
280914819871621563 3981700725538 388 579378442654 3727 0 9569805269418 201715508164169625 -922337203...
result:
Test #10:
score: 0
Time Limit Exceeded
input:
100000 100000 23515 49 31372 25112 16779 21279 30735 32743 14678 15189 1763 23114 32215 14873 20487 ...
output:
864850280031631639 -319867511980119662 0 0 -841156258468273363 -922337203685477580 9734587961329546 ...