2019 杭電多校(第九場)

2021-09-26 08:25:12 字數 2627 閱讀 4739

1002 rikka with cake (思維)

題意給你乙個蛋糕 問你切k刀後分成多少塊

思路塊數 = 交點數+1

樹狀陣列維護橫線有多少條 豎線去統計

隊友**

#include #define ll long long

using namespace std;

struct code

tree[500005];

struct node

xline[100005],yline[100005];

ll numx,numy;

ll tx[100005],ty[100005];

ll n,m,t;

void buid(ll t,ll l,ll r)

ll mid=(l+r)/2;

buid(2*t,l,mid);

buid(2*t+1,mid+1,r);

tree[t].sum=tree[t*2].sum+tree[2*t+1].sum;

}void update(ll t,ll p,ll d)

ll mid=(tree[t].l+tree[t].r)/2;

if(p<=mid)

update(2*t,p,d);

else

update(2*t+1,p,d);

tree[t].sum=tree[t*2].sum+tree[2*t+1].sum;

}ll queuy(ll t,ll l,ll r)

bool cmp(node a,node b)

else if(ch=='d')

else if(ch=='l')

else

}tx[k]=0,tx[k+1]=n;

ty[k]=0,ty[k+1]=m;

sort(tx,tx+k+2);

sort(ty,ty+k+2);

sort(xline,xline+numx,cmp);

sort(yline,yline+numy,cmp);

buid(1,1,k+2);

int topx=0,topy=0;

for(int i=1; ip[100005];

for(int i=0; i<=topy; i++)

);p[upy].push_back(node);

}int top=0;

for(int i=1; i<=k+2; i++)

cout<1005 rikka with game (博弈)

題意乙個字串 兩個人進行操作 每個人都能選擇讓某個字母變大一下 或 結束遊戲

先手要使字典序盡可能小 後手使字典序盡可能大 輸出字串是什麼 

**#include using namespace std;

string s;

int main()}}

cout<1006 rikka with coin (列舉)

題意有價值為10 20 50 100的貨幣 至少需要多少張可以湊夠n個數任意乙個

思路暴力列舉10 20 50的個數 去驗證最小需要100的張數

**#include using namespace std;

const int maxn = 110;

typedef long long ll;

int a[maxn];

int dp[maxn][5];

int n;

int ok(int x,int y,int z)

}max = max(max,min);

}return max + x + y + z;

}int main()

}if(f)

qw[maxn*10];

bool cmp(node a,node b)

void dfs(int u,int fa)

}void dfs2(int u,int fa)

else

if(g[u][0] == max(f[v][0]+f[v][1]- 1,g[v][0])) r = max(r,g[u][1]);

else r = max(r,g[u][0]);

qw[++p].l = -l,qw[p].r = r;

qw[++p].l = -r,qw[p].r = l;

g[v][1] = max(g[v][1],r);

if(g[v][1] > g[v][0]) swap(g[v][1],g[v][0]);

f[v][2] = max(f[v][2],len);

if(f[v][2]>f[v][1]) swap(f[v][2],f[v][1]);

if(f[v][1]>f[v][0]) swap(f[v][1],f[v][0]);

dfs2(v,u);

}}int main()

dfs(1,0);

p = 0;

dfs2(1,0);

sort(qw+1,qw+1+p,cmp);

ll ans = 0;

ll r = qw[1].r;

ans = abs(qw[1].l * qw[1].r);

for(int i = 2;i <= p;i++)

cout<}

return 0;

}

2020杭電多校第九場總結

今天比賽的題比較難,我們隊只通過了t1,419名。比賽開始後,我們隊去看t1,剛開始我提出了乙個思路 貪心,把深度最大的點與根連線,然後計算總的次數。思路出來後,隊友們讓我試一發,我很快寫完後,交了,結果wa,又改了幾次,結果還是wa。這時候,我好像意識到了貪心好像不行,於是我又去想樹形dp,方程推...

2019杭電多校第五場

有兩個題隊友補的,先安利一波 1005 permutation 1 hdu 6628 題意 給你乙個n和k,求n的全排列中,相鄰兩數的差值的陣列字典序第k小的排列 思路 其實就是兩個字,暴力.字典序第k小,k的範圍是n!跟10000取min,8!40320,是第乙個大於10000的數,所以當n小於等...

2019牛客多校第九場

由題意可設x y kp bx y kp b x y kp b代入第二個式子中可以得到kpx bx x2 c mod kpx bx x 2 equiv c mod kpx bx x2 c modp p p 第一項是p的倍數可以約掉,所以有x2 bx c 0 m od x 2 bx c equiv 0 ...