寒假每日一題(三)

2021-10-19 17:25:49 字數 2712 閱讀 8444

寒假每日一題之瘋狂補題!

小明正在玩乙個「翻硬幣」的遊戲。

桌上放著排成一排的若干硬幣。我們用 * 表示正面,用 o 表示反面(是小寫字母,不是零)。

比如,可能情形是:**oo***oooo

如果同時翻轉左邊的兩個硬幣,則變為:oooo***oooo

現在小明的問題是:如果已知了初始狀態和要達到的目標狀態,每次只能同時翻轉相鄰的兩個硬幣,那麼對特定的局面,最少要翻動多少次呢?

我們約定:把翻動相鄰的兩個硬幣叫做一步操作。

輸入格式

兩行等長的字串,分別表示初始狀態和要達到的目標狀態。

輸出格式

乙個整數,表示最小操作步數

資料範圍

輸入字串的長度均不超過100。

資料保證答案一定有解。

輸入樣例1:

**********

o****o****

輸出樣例1:

5
輸入樣例2:

*o**o***o***

*o***o**o***

輸出樣例2:

1
出自於第四屆藍橋杯b組的題目。會想到八數碼這個題,進行多少操作會變成目標狀態。用bfs會超時。

先觀察一下性質。①操作順序對答案無影響。②每乙個操作最多進行一次。

第乙個硬幣和最後乙個硬幣是否需要操作只需要看他本身,所有都是唯一確定的,不需要列舉。看似是個寬搜,實際上是個遞推,最終方案也就只有一種。

#include#include#include#include#include#include#include#include#includeusing namespace std;

const int n =310;

string a,b;

void turn (int i)

int main()

;//打表

int weekday[7];

int main()}}

for(int i=5,j=0;j<7;i=(i+1)%7,j++)

cout《輸入整數n,輸出乙個n階的二維陣列。

陣列的形式參照樣例。

輸入格式

輸入包含多行,每行包含乙個整數n。

當輸入行為n=0時,表示輸入結束,且該行無需作任何處理。

輸出格式

對於每個輸入整數n,輸出乙個滿足要求的n階二維陣列。

每個陣列佔n行,每行包含n個用空格隔開的整數。

每個陣列輸出完畢後,輸出乙個空行。

資料範圍

0≤n≤100

輸入樣例:

12345

0

輸出樣例:

1

1 22 1

1 2 3

2 1 2

3 2 1

1 2 3 4

2 1 2 3

3 2 1 2

4 3 2 1

1 2 3 4 5

2 1 2 3 4

3 2 1 2 3

4 3 2 1 2

5 4 3 2 1

不同的看法,不同的解法。有的時候寫不出來,可以換乙個看法。

#include#include#include#include#include#include#includeusing namespace std;

const int n=110;

int main()

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

} cout<#include#include#include#include#include#includeusing namespace std;

typedef long long ll;

const int n=30,m=10010;

int n,m;

ll f[m];

int main()

} cout階乘運算的結果往往都非常的大。

現在,給定數字 n,請你求出 n!的最右邊的非零數字是多少。

例如 5!=1×2×3×4×5=120,所以 5! 的最右邊的非零數字是 2。

輸入格式

共一行,包含乙個整數 n。

輸出格式

輸出乙個整數,表示 n! 的最右邊的非零數字。

資料範圍

1≤n≤1000

輸入樣例:

7

輸出樣例:

4
一看到這一道題我就想到了n^n的最高位,但這一題可以發現規律,末位數就是1和偶數(除了0),去0就是除以10^k,mod 0就是所求的數字,(分解質因數的思想)分解一下2,5的那個係數的最小值就是k

#include#include#include#include#include#include#includeusing namespace std;

int main()

int k=min(d2,d5);

for(int i=0;i

還有25道題,幹!

acwing寒假每日一題題解

貨倉選址 頭兩天的每日一題有點水 include using namespace std int s 505 505 int i,j intmain void 語法題蛇形添數 輸入兩個整數n和m,輸出乙個n行m列的矩陣,將數字 1 到 n m 按照回字蛇形填充至矩陣中。具體矩陣形式可參考樣例。輸入格...

acwing 寒假每日一題題解

本篇部落格是基於acwing活動中的寒假每日一題 活動位址 在一條數軸上有 n 家商店,它們的座標分別為 a1 an。現在需要在數軸上建立一家貨倉,每天清晨,從貨倉到每家商店都要運送一車商品。為了提高效率,求把貨倉建在何處,可以使得貨倉到每家商店的距離之和最小。輸入格式 第一行輸入整數n。第二行n個...

寒假每日一題題解 1 24 階乘

n 的階乘 記作 n 是指從 1 到 n 包括 1 和 n 的所有整數的乘積。階乘運算的結果往往都非常的大。現在,給定數字 n,請你求出 n 的最右邊的非零數字是多少。例如 5 1 2 3 4 5 1205 1 2 3 4 5 120,所以 5 的最右邊的非零數字是 2。輸入格式 共一行,包含乙個整...