2023年第七屆藍橋杯C B組H題

2021-10-03 11:39:07 字數 1099 閱讀 7868

四平方和定理,又稱為拉格朗日定理:

每個正整數都可以表示為至多4個正整數的平方和。

如果把0包括進去,就正好可以表示為4個數的平方和。

比如:5 = 0^2 + 0^2 + 1^2 + 2^2

7 = 1^2 + 1^2 + 1^2 + 2^2

(^符號表示乘方的意思)

對於乙個給定的正整數,可能存在多種平方和的表示法。

要求你對4個數排序:

0 <= a <= b <= c <= d

並對所有的可能表示法按 a,b,c,d 為聯合主鍵公升序排列,最後輸出第乙個表示法

程式輸入為乙個正整數n (n<5000000)

要求輸出4個非負整數,按從小到大排序,中間用空格分開

例如,輸入:

5則程式應該輸出:00

12再例如,輸入:

12則程式應該輸出:02

22再例如,輸入:

773535

則程式應該輸出:11

267838

先開始把題目看錯了,以為是輸出最後一種方案=-=斷句斷錯了呃呃呃。要仔細看題目呀!不過性質都差不多=-=

這道題暴力解決=-=我用dfs時間複雜度可能高了一點點,有點點踩線=-=很懸=-=不過很簡單把,大概是個模板題,三個for迴圈這個時間複雜度低一些。

dfs的**:

#include

using

namespace std;

int flag;

int n;

int a[5]

;void

dfs(

int x,

int step,

int sum)

if(step ==4)

cout << endl;

flag =1;

}return;}

for(

int i = x; i * i <= sum; i++)}

intmain()

三個for迴圈的**我就不寫了哈。很簡單=-=差不多的思路把=-=只不過還是可以優化的,謹慎有時間的小夥伴們可以加深研究~畢竟對於我來說還是小白白呀,繼續努力!

2023年第七屆藍橋杯C B組F題

如圖,如下的10個格仔,填入0 9的數字。要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?請填寫表示方案數目的整數。這道題也是組合問題啦 next permutation解決,分分鐘啊哈哈哈 就是judge的時候有點點麻煩,但是很直觀,超簡單的啦 我標記的時候是這...

2023年第七屆藍橋杯C B組G題

如圖所示,有12張連在一起的12生肖的郵票。現在你要從中剪下5張來,要求必須是連著的。僅僅連線乙個角不算相連 比如,如圖所示,粉紅色所示部分就是合格的剪取。解題思路就是dfs出5個數出來,也就是12個數選5個數。再判斷連通性,判斷是否連通。模擬乙個矩形出來。找到行和列與填的數字的關係 值的行等於 n...

2023年第七屆藍橋杯省賽C B組C題

這個算式中a i代表1 9的數字,不同的字母代表不同的數字。比如 6 8 3 952 714 就是一種解法,5 3 1 972 486 是另一種解法。這個算式一共有多少種解法?好了看到這道題的第一眼我想的是搜尋。其實搜尋可以。但是排列更加簡單。用next permutation 嘻嘻嘻暴力算一下就可...