time limit: 5 sec memory limit: 128 mb
submit: 3476 solved: 1288 [
submit][
status][
discuss]
每次x=1時,每行乙個整數,表示這次旅行的開心度 4
1 100 5 5
51 1 2
2 1 2
1 1 2
2 2 3
1 1 4
1011111
hint
這道題之前在qscoj上寫過,一模一樣的,乍一看感覺單點更新會超時(其實真的會),但是你會發現有許多不必要的操作,
比如說當乙個數的值小於等於1時,再對它開根號就沒有意義了,所以開乙個最大值陣列標記一下區間最大值即可。。。。
假如該區間最大值<=1時,則該區間就沒必要更新了,還是很好想的是吧
#include#include#include#include#include#include#include#include#include#includeusing namespace std;
typedef long long ll;
#define inf 10000000
#define mod 1000000007
#define maxn 800005
#define eps 1e-10
ll sum[maxn],maxs[maxn];
void build(int id,int l,int r)
int m=(l+r)/2;
if(l<=m)
build(id*2,l,m);
if(r>m)
build(id*2+1,m+1,r);
sum[id]=sum[id*2]+sum[id*2+1];
maxs[id]=max(maxs[id*2],maxs[id*2+1]);
}void updata(int id,int l,int r,int l,int r)
int m=(l+r)/2;
if(l<=m)
updata(id*2,l,m,l,r);
if(r>m)
updata(id*2+1,m+1,r,l,r);
sum[id]=sum[id*2]+sum[id*2+1];
maxs[id]=max(maxs[id*2],maxs[id*2+1]);
}ll query(int id,int l,int r,int l,int r)
int main(void)
return 0;
}
BZOJ3211 花神遊歷各國
3211 花神遊歷各國 time limit 5 sec memory limit 128 mb submit 1144 solved 416 submit status discuss description input output 每次x 1時,每行乙個整數,表示這次旅行的開心度 sample...
bzoj3211 花神遊歷各國
其實這是一道sb題 哦不其實是兩道2333333 還有3038也是同一題 然而在寫3038的時候由於資料太水直接就a掉了。剛剛拿之前的code交上去就wa啦。不能判斷區間和是否 r l 1因為會出現0 所以要開多乙個東西表示這個區間還有多少個數不會再改變了 每個數可以開方的次數是很小的,就當做是常數...
bzoj 3211 花神遊歷各國
每次x 1時,每行乙個整數,表示這次旅行的開心度 4 1 100 5 5 51 1 2 2 1 2 1 1 2 2 2 3 1 1 4 10111 11對於100 的資料,n 100000,m 200000 data i 非負且小於10 9 對於這個開方,一開始yy了好久,後來發現,10 9的數頂多...