2018徐州網路賽F,H,I

2021-08-27 20:55:36 字數 1605 閱讀 9846

只能來划水,只做了3題。

f:隊友切的

#includeusing namespace std;

int line,k,t,ans,x,y,len;

int main()

} for(auto it=mp.begin();it!=mp.end();++it)

}ans = max(ans, len);

} } cout#includeusing namespace std;

typedef long long ll;

#define maxn 100007 //元素總個數

#define ls l,m,rt<<1

#define rs m+1,r,rt<<1|1

ll sum[maxn<<2],add[maxn<<2];//sum求和,add為懶惰標記

ll a[maxn];//存原陣列資料下標[1,n]

ll x[maxn];

ll n,q;

//pushup函式更新節點資訊 ,這裡是求和

void pushup(ll rt)

void pushdown(ll rt,ll ln,ll rn)

}//build函式建樹

void build(ll l,ll r,ll rt)

ll m=(l+r)>>1;

//左右遞迴

build(l,m,rt<<1);

build(m+1,r,rt<<1|1);

//更新資訊

pushup(rt);

}void update(ll l,ll r,ll c,ll l,ll r,ll rt)

ll m=(l+r)>>1;

pushdown(rt,m-l+1,r-m);//下推標記

//這裡判斷左右子樹跟[l,r]有無交集,有交集才遞迴

if(l <= m) update(l,r,c,l,m,rt<<1);

if(r > m) update(l,r,c,m+1,r,rt<<1|1);

pushup(rt);//更新本節點資訊

} ll query(ll l,ll r,ll l,ll r,ll rt)

ll m=(l+r)>>1;

//下推標記,否則sum可能不正確

pushdown(rt,m-l+1,r-m);

//累計答案

ll ans=0;

if(l <= m) ans+=query(l,r,l,m,rt<<1);

if(r > m) ans+=query(l,r,m+1,r,rt<<1|1);

return ans;

} int main()

build(1,n,1);

ll x,y,z;

for(ll i=0;ii:ans是0的時候結果是1,結果導致wa了12發。

#include using namespace std;

typedef long long ll;

int main()

break;

}} printf("%lld\n",ans==0?1:ans);

} return 0;

}

2018徐州網路賽

a.hard to prepare dp 題目 題意 環形圈中,給每人乙個號碼,求使得相鄰數字反異或為正數的方案數。有題意可推出,每兩個數反異或要麼是0要麼是正數,所以也就是讓相鄰數字反異或後不能為0。又知道,與某個數反異或之後為0的只有唯一乙個數,因此可推出第1個人到第n個人分別可選的數的個人為 ...

徐州網路賽2018

網路賽的題比賽應該不會出了吧 嗯.include using namespace std define ll long long const int maxn 1005 int down,up,s,n int a maxn b maxn c maxn int dp maxn 305 int high...

2018 徐州網路賽 G 題解

電波 這題首先要倒著貼這樣 每次 就好了 還有就是 資料太大需要離散化 然後建線段樹,根據x軸的座標建座標軸 看 這個點的 max y 有多大 如果 y i max y 產生 貢獻 ans y x max x x軸同理 includeusing namespace std define maxn 1...