第21次CSP認證 題解

2022-05-07 22:57:29 字數 2793 閱讀 7240

按照題意直接求和即可

#include#define n 1100000

#define db double

#define ll long long

#define ldb long double

#define ull unsigned long long

using namespace std;

const int h=3,ki=149,mo=998244353;

int mod(int x)

int inc(int x,int k)

int read()

void write(int x)

int main()

確定乙個\(\theta\)後,小於\(\theta\)的人會掛科,大於等於的不會掛科

繼續想下去,排序以後,列舉\(\theta\),則掛科的人組成乙個字首,不掛科的人是乙個字尾

因此我們只需快速統計前字尾0的個數和1的個數即可

這裡我採用了字首和的方式來實現

#include#define n 1100000

#define db double

#define ll long long

#define ldb long double

#define ull unsigned long long

using namespace std;

const int h=3,ki=149,mo=998244353;

int mod(int x)

int inc(int x,int k)

int read()

void write(int x)

struct node

p[n];

bool cmp(node a,node b)

}

printf("%d",t);

return 0;

}

50pts的暴力

沒啥好說的

按照題意模擬即可

大概有空會更一下正解qwq

#include#define n 1100000

#define db double

#define int long long

#define ldb long double

#define ull unsigned long long

using namespace std;

const int h=3,ki=149,mo=1e9+7;

int mod(int x)

int inc(int x,int k)

int read()

struct node

f[n];

int rt,size;

mapmp[n];

bool insert()

int inc(int x,int k)

int read()

struct edgee[t*2];

int num,head[t];

void add(int x,int y,int z);head[x]=num;}

bool flag[n][n];

int tot=0,sz[t],dep[t];

void prepare(int x,int fa)

}void dfs(int x,int fa)

}}struct nodew[n][n];

bool cmp(node a,node b)

int inc(int x,int k)

int read()

void write(int x)

struct node;

node operator+(node f,node g);}

node operator*(node f,int k);}

node sp(node f,int k)

; if(k==1)return (node);

if(k==2)return (node);

}struct segment_tree

int pushup(int o)

void mul(int o,int k)

void rev(int o,int k)

void add(int o,int l,int r,node k)

void pushdown(int o,int l,int r);}

void optmul(int &o,int l,int r,int ql,int qr,int k)

void optrev(int &o,int l,int r,int ql,int qr,int k)

void optadd(int &o,int l,int r,int ql,int qr,node k)

node query(int o,int l,int r,int ql,int qr)

;if(ql<=l&&r<=qr)return f[o];

pushdown(o,l,r);

node ans=(node);

if(ql<=mid)ans=ans+query(lson,l,mid,ql,qr);

if(qr>mid)ans=ans+query(rson,mid+1,r,ql,qr);

return ans;

}}t;int main()

if(flag==2)

if(flag==3)

if(flag==4)

}return 0;

}

LeetCode第21題解析

將兩個公升序鍊錶合併為乙個新的公升序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4解題思路 迭代 class solution else head head next head next l1 null l2 l1 ret...

第20次CSP考場經歷回憶

好久沒有打過比賽了,這次看到csp報名免費就去玩了一下 賽制是只准攜帶紙質參考資料 不過我沒有準備 提交後能實時檢視成績。以下是題目回憶 資料範圍不一定準確 t2 給定二維平面上乙個矩形和若干路徑,如果路徑中存在乙個點在矩形中,則稱為路徑 經過 矩形 如果存在連續k個點在矩形中,則稱為路徑 逗留 在...

第5次模擬測試T4題解

hl啊 你的23日遊終於結束了 由於本人實在太懶,才寫了一篇題解 t4.數字遊戲 問題描述 hl中學茶餘飯後喜歡玩遊戲,乙個遊戲規則如下 共兩人參加遊戲,若第乙個人當前手中的數為w1,則下一秒他手上的數將 會變成 x1 w1 y1 mod m 若第二個人當前手中的數為w2,則下一秒他 手上的數將會變...