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這幾天忙於追妹子,哪有時間給...