女生賽題解

2022-06-29 16:03:15 字數 2021 閱讀 1389

a、b有一定難度;

注意以後在左移右移的時候是否要轉換型別,轉換成long long

特別是b題有很好的思路,大數無法計算那就轉化成log進行計算,特別是對精度要求不高的時候。

題解:a:思維題

求&之和。統計每個數有多少個0,然後這些0上填1和0都會&後變為0,在n有1的地方如果i為1那麼答案就是1;

注意1ll << ans,因為答案可能會爆int,以後注意。

b:思維題

取log,注意精度,1.99999 + 2.00002 如果直接取int的話答案是不對的,維護字首和。

c:找規律

設三種史萊姆有a、b、c三種,分別有m1、m2、m3只。

首先m1、m3有d只轉化為m2。

然後剩下的m1和部分m2轉化為m3。

如果此時m2和m3的個數相等,則可以轉化成功。

容易推出m3 - m2 = 3 (2d - m1);

可知必須存在兩種史萊姆的數量之差是3的整數倍,才可以合併。

d:簡單的dp

正向走和反向走是一樣的。

dp[i][j][k][v]表示從(1,1)到 (i,j) 和(k,v)兩條路取的糖果最大數量。

同時i = k,且j = v的時候只加乙個值。保證糖果不會重複取。

但是這道題剛開始的時候我做錯了。

我把這個狀態表示為從(1,1)到(i,j)和從(n,n)到(k,v)了,這樣是不對的,因為在(n,n)到(k,v)這條路上取到的糖果可能會再被取一遍(此時無法判重)

e:簽到題

f:打表找規律

通過打表發現,%5每20個數為乙個週期,%7每16個數為乙個週期。

還是注意要開long long

g:簽到題

**:

#include#include

#include

#include

using

namespace

std;

long

long

t,n,t,ans;

void

solve()

if(n == 0) printf("

0\n"

);

else printf("

%lld\n

",n - (1ll <}

return;}

intmain()

b:

#include#include

#include

#include

#include

using

namespace

std;

const

int maxn = 1e6 + 11

;double

sum[maxn];

intt,l,r;

void

solve()

return;}

intmain()

c:

#include#include

#include

#include

using

namespace

std;

intt;

int a[5

];void

solve()

return;}

intmain()

d:

#include#include

#include

#include

using

namespace

std;

const

int maxn = 13

;int

dp[maxn][maxn][maxn][maxn];

intma[maxn][maxn];

intn,t;

int max(int x,int y,int a,int

b)void

solve()}}

}cout

<< dp[n][n][n][n]

intmain()

2019CCPC江蘇南京女生賽 題解

比賽 交題需要找到對應題號交題 啊 比賽過去兩個月了 都快不記得了 還好保留了做題的痕跡emm 開坑了現場賽的時候沒做幾個題 現在補一下 大白做的 就是模擬一下就行了 注意輸出是保留兩位小數 剛寫的新鮮熱乎的 如下 include include include include includeusi...

5 27 女生賽總結

好的吧,真的是有史以來第一次出去比賽 好像大家都也還是給予厚望的,女生賽。前面過了兩個其實還好吧 最後卡,卡到兩三個題後來還是出不來了。我們刻意避開了 打鐵關 但是還是打鐵了qaq,zj說dp的方程明明都寫對了啊。他們t了那是因為暴力,這種錯法我還是第一次見啊。去之前自己還帶了自己列印的1 3部落格...

2019 CCPC 女生賽 賽後總結

出發 因為我們在杭州,離南京比較近,高鐵乙個半小時就能到,所以我們就6.1下午出發去南京了。在路上我的兩個隊友鬧了點不愉快,然後一直持續到晚上還沒好。我覺得氣氛令人窒息,但是又沒有辦法,因為我跟學姐a說話學姐a也反應冷淡,而學姐b心大的要命,完全可以忽略這種奇怪氛圍,我操心的要命。熱身賽 吐槽一下,...