題意: 兩種操作,c x y,將x位置的數修改為y,q x y,查詢[x,y]之間的第8大值,y-x+1<= 8的話輸出0
思路: 區間第8大值,線段樹在時間、空間都夠了(藍橋怎麼會讓手寫主席樹。。)
每個節點儲存它管轄的這個區間的前8大值,修改的時候暴力merge,單次修改複雜度log(n)*8
查詢的時候返回含有8個值得list,並不斷merge
**:
#include#define mem(a,b) memset(a,b,sizeof(a))
using namespace std;
typedef long long ll;
const int inf = 0x3f3f3f3f;
const int maxn = 1e5+55555;
const ll mod = 998244353;
const double eps = 1e-7;
struct tree t[maxn<<2];
int l,n;
void build(int i,int l,int r)
void update(int i) else
}return ;
}void modify(int i,int pos,int val)
modify(i<<1,pos,val);
modify(i<<1|1,pos,val);
update(i);
return ;
}vectormerge(vectorans1,vectorans2) else
}return ans;
}vectorquery(int i,int l,int r)
if(t[i].l>= l&&t[i].r<= r)
return merge(query(i<<1,l,r),query(i<<1|1,l,r));
}int main() else
vectorans = query(1,x,y);
printf("%d\n",ans[7]);}}
return 0;
}
2019第十屆藍橋杯比賽總結(B組c c )
本題總分 5 分 作為籃球隊教練,你需要從以下名單中選出 1 號位至 5 號位各一名球員,組成球隊的首發陣容。每位球員擔任 1 號位至 5 號位時的評分如下表所示。請你計算首發陣容 1 號位至 5 號位的評分之和最大可能是多少?本題總分 5 分 小明用字母 a 對應數字 1,b 對應 2,以此類推,...
2019第十屆藍橋杯C C
這是我第一次參加藍橋杯比賽,比完後,有點低於預期,自己的發揮低於預期,賽事水準也低於預期。教室裡面很多同學的電腦出現問題,舉辦學校也沒有完善的應急方案,有一部分同學11點鐘才可以做題。提取碼 560f1.給20個球員擔任五個不同位置的得分,要你選五個球員組成一支球隊的最大得分。這道題要是全排列做的話...
第十屆藍橋杯B組省賽第B題
試題 b 年號字串 26進製數 問題描述 小明用字母 a 對應數字 1,b 對應 2,以此類推,用 z 對應 26。對於 27 以上的數字,小明用兩位或更長位的字串來對應,例如 aa 對應 27,ab 對 應 28,az 對應 52,lq 對應 329。include include include...