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

2021-09-10 12:33:42 字數 2992 閱讀 4502

a

第一行是乙個正偶數 n,表示石子的堆數。

第二行是 n 個正整數 a1,a2,…,ana1,a2,…,an,表示每堆石子的個數。

博弈,由於每次取石子只能取最左一堆或最右一堆,且必須取完,那麼選擇奇數和和偶數和中比較大的一項,但是堆數為偶數,這無論如何先手贏。所以直接輸出就好了。

#include #define ll long long

using namespace std;

int main()

b

pplese 又寫了乙個遊戲。

在這個遊戲中,它位於乙個 n 行 m 列的方陣中的左上角(座標為(0, 0),行的序號為0∼n−10∼n−1,列的序號為0∼m−10∼m−1)。

現在它想不重複地走過所有格仔(除了起點),最後回到左上角的乙個方案。

每次只能往上下左右其中乙個方向走一格。

僅一行兩個整數 n 和 m,表示方陣的大小。保證大於1×11×1。
如果存在方案,則輸出一行操作,包含"l"、"r"、"u"、"d",分別表示左、右、上、下。如果有多種方案,輸出任意一種即可。

如果沒有方案,則在一行中輸出"-1"。

根據題意那麼就是走到一條路的尾巴然後向下往回到第二格再往下往後走到底。。。最後回來直接往回走到起點

類似這種的,特判下2*n或者n*2的情況。

int main()

;struct node

;void bfs()

); while(!q.empty())

dis++;

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

q.push(node);

}if(mp[x][y]=='@'));}

}printf("-1\n");

}int main()

bfs();

return 0;

}

d題dp不會跳過

e在這個遊戲中,有乙個 n 行 m 列的方陣。現在它要為這個方陣塗上黑白兩種顏色。規定左右相鄰兩格的顏色不能相同。請你幫它統計一下有多少種塗色的方法。由於答案很大,你需要將答案對 109+7109+7 取模。

僅一行兩個正整數 n, m,表示方陣的大小。
輸出乙個正整數,表示方案數對 109+7109+7 取模。
每一列,有 2n 種塗色方法,由於資料比較大,看了眼準備快速冪,想想py能用然後偷個懶了。。

n , m = map(int,input().split())

ans = 1

mod = 1000000007

n = n % (mod - 1)

t = 2

while( n != 0 ):

if((n & 1) == 1):

ans = ans * t % mod

n >>= 1

t = t * t % mod

print(ans)

g

第二行為 n 個整數 a1,a2,…,ana1,a2,…,an,分別表示每一瓶試劑的元素型別。

接下來m行,每行三個整數 x, y, c,含義如題目描述中所述。不保證 x, y的試劑種類不同。

輸出乙個正整數表示最小的耗費腦力。特別地,如果無法合成出毒氣炸彈,輸出 "-1"。
圖論。。求最小生成樹

#include using namespace std;

typedef long long ll;

const int maxn = 100005;

int n, m, k,c;

vectorg[maxn];

int t[maxn], f[maxn];

struct edge

} e[maxn];

int find(int x)

int main()

; }

}sort(e, e+c);

ll sum = 0;

int cnt = 1;

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

}if(cnt >= k) printf("%lld\n", sum);

else puts("-1");

return 0;

}

i

這樣的題目未免讓它覺得太無聊,於是它想到了乙個新的問題。

如何判斷乙個字串在任意位置(包括最前面和最後面)插入乙個字元後能不能構成乙個回文串?

僅一行,為乙個由字母和數字組成的字串 s。
如果在插入乙個字元之後可以構成回文串,則輸出"yes", 否則輸出"no"。
emmmmmm,如題意。。

#include using namespace std;

typedef long long ll;

string s;

int f(int l,int r,int t)

int main()

j

僅一行三個整數 f1,f2,af1,f2,a,分別表示兩隻手產生的力的大小以及它們之間的夾角。
輸出乙個實數表示兩力合力的大小,要求相對誤差或絕對誤差不超過 10−610−6。

嚴格來講,如果你的答案是 a,而標準答案是 b,那麼當 |a−b|max≤10−6|a−b|max≤10−6 時,你的答案會被認為是正確的。

物理題。。。

#include using namespace std;

#define pi 3.14159265

int main()

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

首先看到這個題目資料範圍就可以知道這不是乙個可以暴力過的題。所以應該要推乙個結論。我們可以將這個同學的一來一回看成一組,那麼就可以理解為乙個來回中n可以減少n m 1 個人。那麼我們現在要讓所有人都進去,那就是看n m 1 的數量。但是有可能存在一些情況,就是說當你的倒數第二組中的回來的那趟使得n變...

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

菜雞乙個,只做出兩道,先掛一下,剩下的會了繼續更 1 小a的計算器 題目描述 小a的數學基礎實在太差了,以至於他只會用計算器算數。他的計算器比較特殊,只有 即加減乘除 四種運算。經過一番周折,小a終於算出了他想要的數,但是他卻忘記了最初的數是什麼。不過幸運的是他記下了整個操作序列,他想請你幫他算出最...

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

題意 給出乙個n m的矩陣,找出有如下條件的三角形的個數 1.三角形的三個頂點均為格點,即橫座標和縱座標均為整數。2.三角形的面積為1 3.三角形至少有一條邊和x軸或y軸平行。思路 滿足條件的三角形有兩類 1 底為1,高為2 2 底為2,高為1。使底邊分別平行於x軸和y軸,其中會有重複的,計算中減去...