藍橋杯 練習(2 25)

2021-10-20 06:46:39 字數 2414 閱讀 6849

時間限制:1.0s 記憶體限制:512.0mb

回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。

輸入格式

輸入第一行是兩個不超過200的正整數m, n,表示矩陣的行和列。接下來m行每行n個整數,表示這個矩陣。

輸出格式

輸出只有一行,共mn個數,為輸入矩陣回形取數得到的結果。數之間用乙個空格分隔,行末不要有多餘的空格。

3 31 2 3

4 5 6

7 8 9

1 4 7 8 9 6 3 2 5

3 21 2

3 45 6

1 3 5 6 4 2

#include

#include

int a[

201]

[201];

using namespace std;

intmain()

} cin>>n>>m;

for(

int i=

1;i<=n;i++)}

int i=

0,j=1;

while

(true)

//向右走

while

(a[i]

[j+1]!=

-1)//向上走

while

(a[i-1]

[j]!=-1

)//向左走

while

(a[i]

[j-1]!=

-1)if

(flag==0)

break

;else flag=0;

}return0;

}

列舉法一般比較直觀,容易理解,但是要檢查所有的可能的解,執行效率較低。

列舉法的結構:列舉範圍迴圈+條件判斷語句

時間限制:500ms 記憶體限制:256.0mb

給定n個棍子的長度和整數k,求能否在其中選出2k個棍子拼成兩個凸多邊形。使得兩個凸多邊形都恰好有k跟棍子組成,且任意相鄰的邊都不共線。

第一行包括兩個正整數n,k,表示棍子總數和多邊形邊數。

第二行包括n個正整數,表示每根棍子的長度。

第一行輸出乙個單詞yes或者no表示是否能選出滿足要求的2k個棍子。

如果第一行輸出的是yes,則第二行要輸出方案。輸入的棍子從1開始按照輸入順序編號,你需要輸出2k個空格隔開的正整數,前k個表示組成第乙個凸多邊形的棍子的編號,後k個表示組成第二個凸多邊形棍子的編號。

如果有多種方案,輸出任意一種即可。

input 1:

6 31 1 1 2 2 2

input 2:

6 31 2 3 100 200 300

output 1:

yes1 2 3 4 5 6

output 2:

no2k ≤ n ≤ 1000

3 ≤ k ≤ 10

1 ≤ length of each stick ≤ 10^9

#include

#include

using namespace std;

const

int n=

1005

;struct edge

edge[n]

;bool cmp

(edge e1,edge e2)

long

long sum[n]

;int visit[n]

,visit1[n]

;int n,k;

void

dfs(

int a,

int b,

long

long c,

long

long d,

int a1,

int a2,

int b1,

int b2)

for(

int i=b-

2*k+

1;i<=b;i++

)exit(0

);}if

(a1!=k)

if(a2!=k)

}int

main()

sort

(edge+

1,edge+n+

1,cmp)

;for

(int i=

1;i<=n;i++

)for

(int i=k;i<=n;i++)}

}for

(int i=

2*k;i<=n;i++

)dfs

(i-2

*k+1

,i,0,0

,0,0

,0,0

);cout<<

"no"

}

藍橋杯練習

k好數 問題描述 如果乙個自然數n的k進製表示中任意的相鄰的兩位都不是相鄰的數字,那麼我們就說這個數是k好數。求l位k進製數中k好數的數目。例如k 4,l 2的時候,所有k好數為11 13 20 22 30 31 33 共7個。由於這個數目很大,請你輸出它對1000000007取模後的值。輸入格式 ...

藍橋杯練習

題目完成時間2021年3月16日 題目 計算機真是最傻的東西 他都不能計算大於10 65 1的a b,請你幫這個 最傻 的東西過關,否則它就真的只認識1和0了。輸入格式 共兩行 第一行輸入乙個整數a 第一行輸入乙個整數b。輸出格式 共一行,乙個表示a b的整數。樣例輸入 2147483647 214...

2 25 演算法練習

時間限制 1.0s 記憶體限制 512.0mb 十六進製制數是在程式設計時經常要使用到的一種整數的表示方式。它有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f共16個符號,分別表示十進位制數的0至15。十六進製制的計數方法是滿16進1,所以十進位制數16在十六進製制中是10,而十進位...