牛客小白月賽24 題解

2021-10-05 06:22:39 字數 3536 閱讀 7307

牛客小白月賽24 題解

最後還剩一道計算幾何,其實可以ak,但沒必要///

b:簽到

#include using namespace std;

const int n=2e5+10;

int a[n];

int main()

printf("%d\n",ans);

}return 0;

}

c:還行

#includeusing namespace std;

typedef long long ll;

const int n=505;

char s[n][n];

bool vis[n][n];

int n,m;

bool ok[n][n];

void dfs(int x,int y)

int main()

}for(int i=1;i<=n;i++)

for(int j=1;j<=m;j++)

if(vis[i][j]&&ok[i][j])s[i][j]='*';

for(int i=1;i<=n;i++)printf("%s\n",s[i]+1);

return 0;

}

d:還可 qaq

#includeusing namespace std;

typedef long long ll;

const int n=505;

char s[n][n];

bool vis[n][n];

int n,m;

bool ok[n][n];

void dfs(int x,int y)

int main()

}for(int i=1;i<=n;i++)

for(int j=1;j<=m;j++)

if(vis[i][j]&&ok[i][j])s[i][j]='*';

for(int i=1;i<=n;i++)printf("%s\n",s[i]+1);

return 0;

}

e:還行吧

#include#include#include#include#include#include#include#includeusing namespace std;

typedef long long ll;

const int mod=1e5+3;

const int n=1e5+7;

const int m=5e5+10;

int n,m,sta,ed,p[n],head[n],cnt=1;

ll dis[n];

bool vis[n];

bool ok[m<<1];

struct nodeedge[m<<1];

struct cmp

};priority_queue,cmp> t;

inline void add(int x,int y,int z)

void dijkstra()}}

}void dfs(int u)

}}bool op[n];

int ans=0;

void dfs1(int u,int f)

for(int i=head[u];i!=-1;i=edge[i].next)

}int main()

dijkstra();

dfs(n);

dfs1(1,0);

if(ans==n)puts("yes");

else puts("no");

return 0;

}

f:簽到

#include using namespace std;

typedef long long ll;

const int n=5e5+10;

string s[5]=;

int main()

if((p2+1)%4==p1)puts("tiangou txdy");

else puts("tiangou yiwusuoyou");

return 0;

}

g:為了拼手速,所以完全亂寫

#include using namespace std;

typedef long long ll;

const int n=5e5+10;

int a[n];

int main()

int getid(int x)

void solve()

for (int i = 0; i < b.size(); i++)

}printf("yes\n");

}int main()

sort(id + 1, id + 1 + n);

n = unique(id + 1, id + 1 + n) - id - 1;

solve();

}return 0;

}

i:好像是樹剖

#include#include#include#includeusing namespace std;

#define lson l,mid,rt<<1

#define rson mid+1,r,rt<<1|1

typedef long long ll;

const int n=1e6+10;

int first[n],tot,cnt,n,w[n],wt[n];

int d[n],fa[n],siz[n],son[n],top[n],id[n],rk[n],en[n];

ll sum[n<<2];

struct node

e[n<<1];

void adde(int u,int v)

void init()

void dfs1(int u,int pre,int depth)

}void dfs2(int u,int t)

en[u]=cnt;

}void pushup(int rt)

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

int mid=(l+r)>>1;

build(lson);

build(rson);

pushup(rt);

}void update(int k,int c,int l,int r,int rt)

int mid=(l+r)>>1;

if(k<=mid) update(k,c,lson);

else update(k,c,rson);

pushup(rt);

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

int main()

ans=(ans+mod)%mod;

printf("%lld\n",ans);

return 0;

}

牛客小白月賽22題解

a 操作序列 單點增加,區間求和,下標最小的非零數變成零,單點查詢。說完了不就線段樹嘛。由於範圍比較大,先存下來,離散化,再進行樹上的操作。注意這裡的左右區間離散化值不一樣的,左邊離散化要找到大於等於左邊界的值,右邊離散化要找到小於等於右邊界的值。b 樹上子鏈 類似於 dp 求樹直徑 c 交換遊戲 ...

牛客小白月賽22 題解

題解鏈結 題目知識點 題目難度 a 操作序列 stl,map,set,模擬 普及 提高 b 樹上子鏈 樹形dp,樹的直徑 普及 提高 c 交換遊戲 記憶化搜尋,狀態壓縮 普及 提高 d 收集紙片 全排列,dfs,狀壓dp,tsp問題 普及 提高 e 方塊塗色 簡單數論,容斥原理 入門f 累乘數字 找...

牛客的小白月賽24補題

沒注意負數取模 呀呀呀呀,打腦殼 保證取模後的結果為正數 x mod mod mod 思路1.挨個嘗試肯定超時 2.就是把平方項展開 a2 b2 2ab 每個平方項的出現次數n 1次 每個2ab形式的和 最後一定注意取余為正數 戳我試試看 include include include includ...