日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

成都东软学院新生周赛(五)

發(fā)布時(shí)間:2024/1/17 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 成都东软学院新生周赛(五) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

成都東軟學(xué)院新生周賽(五)


感受

這次比賽打的非常艱辛,全程1.20小時(shí)的時(shí)間全在寫A題,而且還沒有寫出來。還是自己太菜了。比賽過程中根本就沒有想到用位運(yùn)算去寫著三個(gè)題。

考點(diǎn)

位運(yùn)算:位運(yùn)算是二進(jìn)制下的運(yùn)算,運(yùn)算速度最快,運(yùn)算級(jí)別最低.

名稱且或異或取反左移右移
C符號(hào)&|^~<<>>
規(guī)則兩個(gè)二進(jìn)制為都為1,則二進(jìn)制位的結(jié)果為1,否則為0.兩個(gè)二進(jìn)制位只要有一個(gè)為1,則二進(jìn)制位的結(jié)果為1若兩個(gè)二進(jìn)制位的值相同為0,不同為1對(duì)二進(jìn)制數(shù)按位取反,將0變1將一個(gè)數(shù)的二進(jìn)制數(shù)全部左移N位,右補(bǔ)0將一個(gè)數(shù)的二進(jìn)制數(shù)全部右移N位,移到右端的低位被舍棄,對(duì)于無符號(hào)數(shù),高位補(bǔ)0
  • C語言中數(shù)都是以補(bǔ)碼的形式存在的,所以取反的時(shí)候要注意這一點(diǎn)(正負(fù)數(shù)的考慮).

A:找出數(shù)組中唯一只出現(xiàn)過一次的數(shù),別個(gè)數(shù)都出現(xiàn)兩次。

在做這個(gè)題的時(shí)候,根本就沒有想到位運(yùn)算,所以我就把我能用的方法都試了一下,map,排序,暴力。發(fā)現(xiàn)都不行。賽后問他們發(fā)現(xiàn)這題太水了,一個(gè)異或就可以解決的事情。

我們知道異或可以理解為不進(jìn)位的加法(兩個(gè)數(shù)相加最高位不會(huì)改變).但這題關(guān)鍵和不進(jìn)位沒有關(guān)系.我們可以發(fā)現(xiàn)兩個(gè)相同的數(shù)互相異或的值為0,我們是不是可以把數(shù)組中的每個(gè)數(shù)都異或一次,最后的結(jié)果就是我們要的到的數(shù).

B:找出數(shù)組中兩個(gè)只出現(xiàn)過一次的數(shù),別個(gè)數(shù)都出現(xiàn)兩次

這個(gè)題和上個(gè)題很像,是異或的進(jìn)擊版.還是和上面一樣,但是這次我們的出來的值ans = a^b.顯然我們要在這里面得出答案.最后的答案肯定不是0,根據(jù)異或的定義,可以知道兩個(gè)數(shù)二進(jìn)制位不同為1,我們把這一位找出來輔助為flag,然后運(yùn)用位運(yùn)算,循環(huán)遍歷整個(gè)數(shù)組,把每個(gè)數(shù)與flag比較,如果為真,則用a異或,否則用b異或,這樣就可以把兩個(gè)數(shù)獨(dú)立出來.

C:找出數(shù)組中唯一只出現(xiàn)過一次的數(shù),別個(gè)數(shù)都出現(xiàn)三次(數(shù)組大小為3*N+1)

這個(gè)題就不好直接的用異或,但是可以借用上面的思想,由于不知道數(shù)據(jù)的大小,就當(dāng)成64位的long long來算,我們開始一個(gè)大小為65的數(shù)組,我們用這個(gè)數(shù)組來模擬二進(jìn)制.

將每個(gè)數(shù)都轉(zhuǎn)換成二進(jìn)制,并存入數(shù)組中,最后我們就得到所有數(shù)的二進(jìn)制情況.我們只需要遍歷這個(gè)數(shù)組,把每一位對(duì)3取余,如果不為0,則把這一位轉(zhuǎn)換成10進(jìn)制存入ans中.

感想

昨天晚上看到題解補(bǔ)完題后,只能說這次不應(yīng)該報(bào)零.還是自己的實(shí)力不夠,有人AK,有人報(bào)零.最近狀態(tài)一直不在,是要找個(gè)時(shí)間好好的調(diào)整一下了.

總結(jié)

以上是生活随笔為你收集整理的成都东软学院新生周赛(五)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。