第十一屆藍橋杯A組省賽第二場 填空題四

2021-10-10 04:49:52 字數 3451 閱讀 5437

第十一屆藍橋杯a組省賽第二場-填空題四

題意

小藍要用七段碼數碼管來表示一種特殊的文字。

上圖給出了七段碼數碼管的乙個圖示,數碼管中一共有 7 段可以發光的二

極管,分別標記為 a, b, c, d, e, f, g。

小藍要選擇一部分二極體(至少要有乙個)發光來表達字元。在設計字元

的表達時,要求所有發光的二極體是連成一片的。

例如:b 發光,其他二極體不發光可以用來表達一種字元。

例如:c 發光,其他二極體不發光可以用來表達一種字元。這種方案與上

一行的方案可以用來表示不同的字元,儘管看上去比較相似。

例如:a, b, c, d, e 發光,f, g 不發光可以用來表達一種字元。

例如:b, f 發光,其他二極體不發光則不能用來表達一種字元,因為發光

的二極體沒有連成一片。

請問,小藍可以用七段碼數碼管表達多少種不同的字元?

題解由題意建圖,二進位制列舉所有情況,然後再判斷每一種情況是否為乙個連通圖。

連通圖的判定方法有很多,在此我就說兩個:dfs和並查集。

dfs

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

//extern "c"

typedef

long

long ll;

typedef

long

double ld;

#define fi first

#define se second

#define pb push_back

#define mp make_pair

#define pii pair

#define lowbit(x) x&-x

const

double pi=

acos(-

1.0)

;const

double eps=

1e-6

;const ll mod=

1e9+7;

const

int inf=

0x3f3f3f3f

;const

int maxn=

1e5+10;

const

int maxm=

100+10;

#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);

vector<

int> g[10]

;int a[10]

,cnt,book[10]

;void

ddfs

(int u)

}boolf(

)int tmp=0;

for(

int i=

0;isize()

;i++)}

if(tmp==1)

return

true

;return

false;}

void

dfs(

int num)

a[num]=0

;dfs

(num+1)

; a[num]=1

;dfs

(num+1)

;}intmain()

並查集

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

extern

"c"typedef

long

long ll;

typedef

long

double ld;

#define fi first

#define se second

#define pb push_back

#define mp make_pair

#define pii pair

#define lowbit(x) x&-x

const

double pi=

acos(-

1.0)

;const

double eps=

1e-6

;const ll mod=

1e9+7;

const

int inf=

0x3f3f3f3f

;const

int maxn=

1e5+10;

const

int maxm=

100+10;

#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);

vector<

int> g[10]

;int a[10]

,cnt,f[10]

;int

find

(int x)

;bool

judge()

}int fa=

find

(p[0])

;for

(int i=

1;isize()

;i++

)return

true;}

void

dfs(

int num)

a[num]=0

;dfs

(num+1)

; a[num]=1

;dfs

(num+1)

;}intmain()

藍橋杯第十一屆省賽試題(第二場)

關於dac輸出,可用電壓表測量開發板j3排針的 d a 和 gnd 兩個引腳 主函式 include stc15f2k60s2.h include key.h include hardware.h include onewire.h include iic.h typedef unsigned ch...

第十一屆藍橋杯python組第二場省賽 排序

1.問題描述 小藍最近學習了一些排序演算法,其中氣泡排序讓他印象深刻。在氣泡排序中,每次只能交換相鄰的兩個元素。小藍發現,如果對乙個字串中的字元排序,只允許交換相鄰的兩個字元,則在所有可能的排序方案中,氣泡排序的總交換次數是最少的。例如,對於字串 lan 排序,只需要 1 次交換。對於字串 qiao...

第十一屆藍橋杯python組第二場省賽 單詞分析

1.問題描述 小藍正在學習一門神奇的語言,這門語言中的單詞都是由小寫英文本母組成,有些單詞很長,遠遠超過正常英文單詞的長度。小藍學了很長時間也記不住一些單詞,他準備不再完全記憶這些單詞,而是根據單詞中哪個字母出現得最多來分辨單詞。現在,請你幫助小藍,給了乙個單詞後,幫助他找到出現最多的字母和這個字母...