生活随笔
收集整理的這篇文章主要介紹了
蓝桥杯之激光样式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
標題:激光樣式
x星球的盛大節日為增加氣氛,用30臺機光器一字排開,向太空中打出光柱。
安裝調試的時候才發現,不知什么原因,相鄰的兩臺激光器不能同時打開!
國王很想知道,在目前這種bug存在的情況下,一共能打出多少種激光效果?
顯然,如果只有3臺機器,一共可以成5種樣式,即:
全都關上(sorry, 此時無聲勝有聲,這也算一種)
開一臺,共3種
開兩臺,只1種
30臺就不好算了,國王只好請你幫忙了。
要求提交一個整數,表示30臺激光器能形成的樣式種數。
注意,只提交一個整數,不要填寫任何多余的內容。
思路:一個變形的全排列吧。對于這一個激光,如果前一個相鄰的沒有開的話,對它來說一共有兩種選擇。深搜就好了。
代碼如下:
#include<bits/stdc++.h>
#define ll long long
using namespace std
;int ans
=0;
int vis
[40];inline int check()
{int num
=0;for(int i
=1;i
<=30;i
++) num
+=vis
[i
];return num
;
}
inline void dfs(int x
,int num
,int n
)
{if(x
==31&&check()==n
){ans
++;return ;}if(x
>30) return ;if(vis
[x
-1]==0){vis
[x
]=1;dfs(x
+1,num
+1,n
);vis
[x
]=0;}dfs(x
+1,num
,n
);
}
int main()
{for(int i
=1;i
<=30;i
++){memset(vis
,0,sizeof(vis
));dfs(1,0,i
);}cout
<<ans
+1<<endl
;
}
努力加油a啊,(o)/~
總結
以上是生活随笔為你收集整理的蓝桥杯之激光样式的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。