2022牛客寒假演算法基礎集訓營1 個人題解

2022-09-19 12:09:10 字數 2488 閱讀 2563

有 \(n\) 個人 \(m\) 張卡,每一次進去 \(m\) 個然後回來乙個帶回 \(m\) 張卡,重複操作,進來和出去都需要乙個單位時間,問最短時間,若無解,輸出 \(-1\)

無解情況:只有一張卡並且總人數大於 \(1\)

特殊情況:卡的數量大於等於人數,答案為 \(1\)

一般情況:模擬即可(相當於除了第一次每一次可以帶走 \(m-1\) 個人)

#include#include using namespace std;

typedef long long ll;

typedef unsigned long long ull;

#pragma gcc optimize(2)

#pragma gcc optimize(3,"ofast","inline")

#define endl '\n'

#define pii pair#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);

const int maxn=1e6+5;

int main()^n\sum_^n|a_i+a_j-1000|\)

我們可以在值域上列舉,我們會發現每乙個數都會和其他任何乙個數計算一次(包括自己),所以我們只需要在值域上列舉計算即可,注意我們列舉計算的時候會多計算一次自己與自己的計算結果,單獨計算即可

#include#include using namespace std;

typedef long long ll;

typedef unsigned long long ull;

#pragma gcc optimize(2)

#pragma gcc optimize(3,"ofast","inline")

#define endl '\n'

#define pii pair#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);

const int maxn=1e6+5;

int n;

ll a[maxn];

ll sum[maxn];

int main()

ll ans=0;

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

ans+=sum[i]*abs(i+i-1000);

}cout《給出 \(a\) 個安靜小朋友, \(b\) 個調皮小朋友,每個人有乙個權值,選出 \(n\) 個人圍成乙個圈並且滿足沒有兩個調皮小朋友是挨著的,問最大權值和。如果沒有任何方案可行,輸出 \(-1\)

首先我們判斷無解情況:

在 \(n\) 個人中,必須選出 \((n+1)/2\) 個小朋友來把調皮隔開,所以安靜小朋友必須大於等於 \((n+1)/2\)

然後我們先從安靜小朋友裡選擇最大的 \((n+1)/2\) 個,剩下的和調皮小朋友一起排序,從大到小貪心去選,直到湊成 \(n\) 個人

#include#include using namespace std;

typedef long long ll;

typedef unsigned long long ull;

#pragma gcc optimize(2)

#pragma gcc optimize(3,"ofast","inline")

#define endl '\n'

#define pii pair#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);

const int maxn=1e6+5;

vectora;

ll b[maxn],q[maxn];

int main()

else

sum++;

}cout《二維座標中,起始點在原點,給出乙個 \(udlr\) 序列,問在途中離遠點最遠距離是多少

模擬,直接算

#include#include using namespace std;

typedef long long ll;

typedef unsigned long long ull;

#pragma gcc optimize(2)

#pragma gcc optimize(3,"ofast","inline")

#define endl '\n'

#define pii pair#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);

const int maxn=1e6+5;

double dis(int x,int y)

int main()

printf("%0.8f\n",ans);

}}

2022牛客寒假演算法基礎集訓營1

賽場上完成度 11 12 rank 33 a和的數根 數根的和,因此每個人的權值等價於權值的數根。設f i j 表示前i個人湊出j的方案數,直接根據意義轉移即可。includeusing namespace std const int mo 998244353 int a 1000010 b 100...

2022牛客寒假演算法基礎集訓營3

智乃去註冊賬號,他發現 的的密碼必須符合以下幾個條件 現在智乃有乙個長度大小為 的字串 她想知道s串中有多少個子串是乙個符合條件的密碼,請你幫助智乃統計符合條件的密碼數目。子串是指字串中某一段連續的區間,例如對於字串 abcde 來說,abc cde 都是它的子串,而 ace 不是它的子串。第一行輸...

《2022牛客寒假演算法基礎集訓營3》

c 首先我們可以知道重量為1的方案數就是重量為2的物品的數量,因為只有2 2 1可以影響它。那麼如果我們從小到大迭代的話,對於當前位置i,只能賦值2 i才能影響當前位置,那麼如果當前方案數的差為d,那麼就還需要放d個2 i。這裡要注意的是差值可能為負數。includeusing namespace ...