程式設計思維與實踐 CSP M4 補題

2021-10-06 20:35:04 字數 2053 閱讀 8349

開乙個10位陣列,分別記錄有幾個不同個數。

及時break。

注意不關同步超時。

時間複雜度大概在o(位數*n);

由於資料量小,直接列舉所有點作為圓心,然後記錄與其他點的距離作為半徑(找到最長的)即可。

考試的時候由於沒有看見圓心在發射點上,導致花了很長時間寫最小圓覆蓋(orz)

注意到本題是乙個二叉搜尋樹,也就是說對於任意一點,比他小的在左子樹上,比他大的在右子樹上。

也就是說中序遍歷的時候是從小到大的。

首先用乙個f陣列,記錄一下哪兩個點可以連邊。

(通過最大公約數。)

不妨設定兩個陣列。

l[i,j]表示區間[i,j-1]作為其左兒子是否合法。

r[i,j]表示區間[i+1,j]作為j的右兒子是否合法。

則接下來轉移即可如下:

對於[l,r]其中的k。

若滿足l[l][k]和r[k][r]均合法,則

若l和r恰好是邊界1,n,則正退出輸出。

判斷l-1是否能和k相連,若能則r[l-1][r]置為1;

同理判斷r+1;

全部遍歷完畢後,判斷是否有符合題意的情況即可。

#include

#include

#include

#include

#include

#define ll long long

using

namespace std;

const

int n=

800;

int t;

int n,a[n]

,f[n]

[n],l[n]

[n],r[n]

[n];

int bj=0;

intmain()

if(f[l-1]

[k]) r[l-1]

[r]=1;

if(f[k]

[r+1

]) l[l]

[r+1]=

1;}if

(bj==1)

printf

("yes\n");

else

printf

("no\n");

}}

序設計思維與實踐 CSP M4

題意 題目描述 這一天,tt因為疫情在家憋得難受,在雲吸貓一小時後,tt決定去附近自家的山頭遊玩。tt來到乙個小湖邊,看到了許多在湖邊嬉戲的鴨子,tt頓生羨慕。此時他發現每乙隻鴨子都不 一樣,或羽毛不同,或性格不同。tt在腦子裡開了乙個map 鴨子,整數 tong,把鴨子變成了 一些數字。現在他好奇...

程式設計思維與實踐 CSP M1 補題

a 咕咕東的奇遇 題意咕咕東是個貪玩的孩子,有一天,他從上古遺跡中得到了乙個神奇的圓環。這個圓環由字母表組成首尾相接的環,環上有乙個指標,最初指向字母a。咕咕東每次可以順時針或者逆時針旋轉一格。例如,a順時針旋轉到z,逆時針旋轉到b。咕咕東手裡有乙個字串,但是他太笨了,所以他來請求你的幫助,問最少需...

程式設計思維與實踐 CSP M1補題

題目描述 咕咕東是個貪玩的孩子,有一天,他從上古遺跡中得到了乙個神奇的圓環。這個圓環由字母表組成首尾相接的環,環上有乙個指標,最初指向字母a。咕咕東每次可以順時針或者逆時針旋轉一格。例如,a順時針旋轉到z,逆時針旋轉到b。咕咕東手裡有乙個字串,但是他太笨了,所以他來請求你的幫助,問最少需要轉多少次。...