apojacsleam喜歡陣列。
他現在有乙個n個元素的陣列a,而他要對a[l]-a[r]進行m次操作:
操作一:將a[l]-a[r]內的元素都加上p
操作二:將a[l]-a[r]內的元素都減去p
最後詢問a[l]-a[r]內的元素之和?
請認真看題乾及輸入描述。
輸入共m+3行:第一行兩個數,n,m,意義如「題目描述」
第二行n個數,描述陣列。
第3-m+2行,共m行,每行四個數,q,l,r,p,若q為1則表示執行操作2,否則為執行操作1
第4行,兩個正整數l,r
乙個正整數,為a[l]-a[r]內的元素之和
#include #include #include #include #include #include #include #include #include using namespace std;
typedef long long ll;
int n,m;
struct node
ti[1000002];
ll a[1000002];
int l,r;
ll panp(int x)
int main()
for(int i=1; i<=m; i++)
scanf("%d%d",&l,&r);
ll sum=a[r]-a[l-1];
for(int i=1; i<=m; i++)
else if(ti[i].l<=l && ti[i].r>=r)
else if(ti[i].l>=l && ti[i].r<=r)
else if(ti[i].r>=r && ti[i].l<=r)
}printf("%lld\n",sum);
}return 0;
}
牛客小白月賽5 區間 interval
傳送門 題目大意就是給你長度為n的區間,然後有m次操作,操作完了再查詢區間和。做法就是用字首和和差分,這是我第一次用差分,首先設乙個change陣列用來存每個位置的變化值,先清0,假如是修改 l,r 區間,該區間每個數加p的話,c l p,c r 1 p,之所以不是直接c l p,c r 1 p,是...
區間 interval 牛客
apojacsleam喜歡陣列。他現在有乙個n個元素的陣列a,而他要對a l a r 進行m次操作 操作一 將a l a r 內的元素都加上p 操作二 將a l a r 內的元素都減去p 最後詢問a l a r 內的元素之和?請認真看題乾及輸入描述。輸入共m 3行 第一行兩個數,n,m,意義如 題目...
牛客小白月賽5 I 區間
apojacsleam喜歡陣列。他現在有乙個n個元素的陣列a,而他要對a l a r 進行m次操作 操作一 將a l a r 內的元素都加上p 操作二 將a l a r 內的元素都減去p 最後詢問a l a r 內的元素之和?請認真看題乾及輸入描述。輸入共m 3行 第一行兩個數,n,m,意義如 題目...