NOIP模擬賽多校聯考 Round7題解

2022-05-03 16:21:10 字數 3329 閱讀 9637

對任意數求分解為2的冪之和有多少種分法。

奇怪的遞推。。。手玩小樣例得知答案序列為n級等差數列。。。貌似碾標算

#include using namespace std;

namespace standardio

templateinline void write (t x) }

using namespace standardio;

namespace solve

write(ans[(n%2)?n-1:n]); }

}int main ()

乙個國家有n個公民,標記為0,1,2,...,n−1,每個公民有乙個存款額。已知每個公民有一些朋友,同時國家有一條規定朋友間的存款額之差不能大於d。也就是說,a 和 b 是朋友的話,a 有 x 元的存款,b 有 y 元,那麼\(|x-y|\leq d\)給定d值與n個人的朋友關係,求這個國家最富有的人和最貧窮的人的存款相差最大的可能值是多少?即求貧富差距的最大值的下界。若這個值為無窮大,輸出-1.

暴搜

#include using namespace std;

namespace standardio

templateinline void write (t x)

}using namespace standardio;

namespace solve edge[n*n];

int ans,maxp,minp;

int conn[n];

int vis[n],colors[n];

int fa[n];

inline void add (int a,int b)

// void dfs (int now,int dep)

// }

// void color (int now,int col,int lim)

// }

void color (int now,int lim)

while (q.size())

} }bool dfs (int now,int lim)

return true;

} int find (int x)

inline void main () }}

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

}if (cnt==0) else

}if (flag==1) break;

}write(ans),putchar('\n');

// for (register int i=1; i<=n; ++i)

// write(d*ans),putchar('\n');

}} }

}int main ()

將乙個打亂的數列復原,每次可以調動乙個數的位置,求最少次數。

lis

#include using namespace std;

namespace standardio

templateinline void write (t x)

}using namespace standardio;

namespace solve

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

} int ans=0;

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

write(n-ans); }}

int main ()

有一輛速度表不准的車,當表盤讀數為 s 時,真實車速為 s + c,c 為任意實數常量,且可能是負數。 這輛車依次通過了 n 段道路,總共花費了 t 的時間, 其中 第 i 段道路的長度為 di,表盤讀數一直為 si。 已知這些資訊,請求出實數常量 c。

二分裸題

#include using namespace std;

namespace standardio

templateinline void write (t x)

}using namespace standardio;

namespace solve

return res;

} inline void main ()

double l=-minn+eps,r=3000000.0,mid;

while (r-l>eps)

printf("%.6lf",mid); }}

int main ()

給出乙個整數陣列 a,你可以將任何乙個數修改為任意乙個正整數,最終使得整個陣列是嚴格遞增的且均為正整數。問最少需要修改幾個數?

lis

#include using namespace std;

namespace standardio

templateinline void write (t x)

}using namespace standardio;

namespace solve

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

}} write(n-top); }}

int main ()

無聊的小 biu 來到了電影之城,他發現這裡有 n 個電影院,而且每個電影院的電影票價是不同的,有一些電影院之間有雙向聯通的道路,想要通過某條道路需要兩倍的花費,小 biu 想知道,他以每乙個電影院為起點(當然也可以原地不動),最少需要多少花費可以看到電影。

建個超級原點,跑dijk。

#include using namespace std;

namespace standardio

templateinline void write (t x)

}using namespace standardio;

namespace solve edge[n*3];

int dis[n],vis[n];

inline void add (int a,int b,int c)

inline void dij (int s)

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

cur=minj;

} }inline void main ()

for (register int i=1,x,y,z; i<=m; ++i)

for (register int i=0; i<=n; ++i) dis[i]=2147483647;

dij(0);

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

int main ()

noip多校模擬28

考試過程 這次考試,感覺不在狀態。四個題都沒有什麼正解的思路,心態也比較不好。總體來說今天的狀態不是很好,需要及時調整。因為我幾天前做了一道期望題,那個題是資料範圍也是比較小,而且正解是 o n 的,所以這道題我也就一直在想 o n 的做法,想了乙個多小時,沒什麼思路,就直接棄了。但是正解是 o n...

NOIP模擬99 多校31

原題3100,張口放 t1 出題人原話 思維題,合法的情況其實就是上下兩個梯形拼起來的樣子。他們的邊界都是在 i 軸上面,但是不能相交。於是我們可以嘗試兩者相交的縱座標,再列舉左邊梯形的下邊界一級右邊梯形的上邊界,對於答案的話再乘上乙個二。displaystyle sum sum sum binom...

NOIP模擬91 多校24

簽到題 然而我陣列開小直接變成暴力分。發現其實就是第一類斯特林數,然後 n 2 推就好了。感覺可以用 ntt 優化成 nlogn 但是好像並沒有什麼卵用 再說了,我也不會。include define int long long define ull unsigned long long defin...