Problem D GJJ的日常之暴富夢(水題)

2022-03-07 12:58:07 字數 1924 閱讀 4468

time limit: 1 sec  memory limit: 128 mb

submit: 693  solved: 120

submit

web board

gjj有個暴富夢。

他夢想著有一天,他突然有了很多很多錢,他夢想著等他有錢了,要在自己的家裡挖兩個游泳池,

乙個用來洗臉,乙個用來洗腳。他夢想著等他有錢了,他要買兩輛勞斯萊斯,每次出門時候自己

開一輛,車後面再拖一輛。

gjj每天都沉浸在他的暴富夢中。這天他突然打聽到,有個選秀節目冠軍獎金100億,他知道他的暴富夢

馬上就要實現了。他去參加選秀了。

gjj表演了一套出神入化的天鵝舞,迷倒了一大片觀眾和評委,贏來了一陣陣掌聲。每個評委都

給他打了乙個很高的分數,並且每個評委都有乙個編號。但是這個選秀節目通過的條件不是比分數高低。這個奇葩的條件是:

在所有評委給選手打的分數中,如果可以經過任意的變換評委的順序,使得每相鄰的兩個評委打的

分數的乘積是4的倍數,則通過,否則就失敗。gjj 現在急切的想要知道他是否通過了,你能幫幫他麼。

輸入有多組樣例,每組樣例首先是乙個n,代表評委的數量(2<=n<=1000000)

接下來有n個數,每個數a[i]表示評委給gjj打的分數(0對於每組樣例,如果gjj能通過比賽(即經過任意變換順序後,對於每個分數,如果a[i]*a[i+1)是4的倍數),輸出"pass",否則的話,輸出"not pass"。

41 2 3 4

not pass

1 #include2

#define n 1000000+10

3using

namespace

std;

4int

a[n];56

intmain()721

if(cnt_ji==cnt_4+1&&cnt_ji+cnt_4==n)//特判

22 flag=1;23

if(cnt_4>=cnt_ji)

24 flag=1;25

if(flag==1

)26 cout<<"

pass

"<27else

28 cout<<"

not pass

"<30return0;

31}3233 #include34

using

namespace

std;

3536

intmain()

3750

if(b>0

)51 n-=b-1

;//奇數的個數

52if(n/2

<=a)puts("

pass");

53else puts("

not pass");

54}55return0;

56 }

要使得每相鄰的兩個數的乘積是4的倍數,那麼相鄰的兩個數一定為以下兩種情況:

1、兩個偶數

2、乙個奇數和乙個4的倍數

(因為兩個奇數乘積一定不是4的倍數,乙個奇數乙個偶數乘積未必是4的倍數)

所以問題就轉換為統計奇數的個數和4的倍數的個數。如果4的倍數的個數大於等於

奇數的個數,那麼一定可以滿足條件。(可以使出現的每乙個奇數都能搭配上乙個4的倍數)

另外還需要考慮乙個特殊情況,例如 「1 4 1 」這種,恰好兩個奇數公用乙個4的倍數。

所以特判,當奇數個數 + 4的倍數個數 = n 並且 奇數個數比4的倍數個數多1,則也滿足條件。

其餘情況均不滿足條件。

//總是感覺有什麼不對的地方,不知道是我思維出現了問題還是怎麼回事!!如果不是四的倍數但是偶數,而且有奇數個這樣的數那又該怎麼處理。;例如:

2 6 10 4 1 3 8  明白了,原來是這樣。

日常筆記之AP

ap就是傳統有線網路中的hub,也是組建小型無線區域網時最常用的裝置。ap相當於乙個連線有線網和無線網的橋梁,其主要作用是將各個無線網路客戶端連線到一起,然後將無線網路接入乙太網。大多數的無線ap都支援多使用者接入 資料加密 多速率傳送等功能,一些產品更提供了完善的無線網路管理功能。對於家庭 辦公室...

日常筆記之Buffer的拼接

nodejs中buffer模組使用頻率較高,因此在node啟動的時候自動載入。通常buffer使用的是utf8編碼方式,乙個漢字編碼是以3個utf8碼字組成,因此在讀取的時候會產生截斷,截斷的位置不是整數倍的時候會產生亂碼。常用的var fs require fs var rs fs.creater...

GJJ的日常之沉迷數學

time limit 1 sec memory limit 128 mb submit 327 solved 41 submit status web board gjj每天都要膜拜一發數學大佬,因為gjj的數學太差了。這不,gjj又遇到難題了,他想求助wjj,但是wjj這幾天忙於追妹子,哪有時間給...