hihocoder74-

https://hihocoder.com/contest/offers74/problem/2
題目2 : 取球游戲
思路:union-find祭犯,同一個x對應(yīng)的點連在一起纺阔,同一個y對應(yīng)的點連在一起,并且一個聯(lián)通區(qū)域最后一定可以只剩下一個點

n=int(raw_input())
a=[]
for i in range(n): 
    t=map(int,raw_input().strip().split(' '))
    a.append((t[0],t[1],i))
fa=list(xrange(n))

def find(p):
    while fa[p]!=p: p=fa[p]
    return p
def union(p,q):
    fa[find(p)]=find(q)
    
a.sort()
for i in range(1,n):
    if a[i][0]==a[i-1][0]: union(a[i][2],a[i-1][2])
a.sort(key=lambda t:t[1])
for i in range(1,n):
    if a[i][1]==a[i-1][1]: union(a[i][2],a[i-1][2])

res=n
for i,v in enumerate(fa):
    if i==v: res-=1
print res

https://hihocoder.com/contest/offers70/problem/3
題目3 : 拼三角形
思路:排序,然后從小到大遍歷,能組成就標(biāo)記為用過,可AC

n=int(raw_input())
a=map(int,raw_input().strip().split(' '))
res=0
a.sort()
vis=[False]*n
for i in range(n):
    if vis[i]: continue
    ok=False
    for j in range(i+1,n):
        if vis[j]: continue
        for k in range(j+1, n):
            if vis[k]: continue
            if a[i]+a[j]>a[k]:
                vis[i]=vis[j]=vis[k]=True
                res+=1
                ok=True
            if ok: break
        if ok: break
print res    

更嚴謹?shù)姆椒ㄊ菭顗篋P
先講一下狀壓dp好了厚柳。它通常使用在n十分小的情況下(比如n<=20),雖然是指數(shù)級別的復(fù)雜度沐兵,但速度比搜索快别垮,其思想非常之優(yōu)秀。所以看到n非常小時扎谎,就要想到99%是狀壓dp碳想。
狀壓dp的適用情況就是當(dāng)狀態(tài)可以由0或者1來表示時,我們所需狀態(tài)數(shù)組無法滿足毁靶。將狀態(tài)表示成二進制數(shù)轉(zhuǎn)化成十進制通過位運算的處理來進行狀態(tài)的轉(zhuǎn)移胧奔。所以位運算在狀壓dp中有著重要的作用。

n=int(raw_input())
a=map(int,raw_input().strip().split(' '))
a.sort()

b=[]
for i in range(n):
    for j in range(i+1,n):
        for k in range(j+1,n):
            if a[i]+a[j]>a[k]:
                b.append((1<<i)|(1<<j)|(1<<k))
       
dp=[0]*(1<<(n+1))
for i,t in enumerate(b):
    for j in range(len(dp)-1,-1,-1):
        if t&j==0:
            dp[j]=max(dp[j],dp[j|t]+1)

print max(dp)

這里要先構(gòu)造所有的3元數(shù)組合预吆,用來狀態(tài)轉(zhuǎn)移

https://hihocoder.com/contest/offers69/problem/2
題目2 : 特工配對
用優(yōu)先隊列是OK的龙填,或者數(shù)學(xué)上理解一下的話,可以發(fā)現(xiàn)如果最大值小于sum的一半的話,一定是可以全部match的

import heapq
n=int(raw_input())
a=map(int,raw_input().strip().split(' '))
pq=[-t for t in a]
heapq.heapify(pq)
res=0

while len(pq)>1:
    if len(pq)==2:
        res+=-min(pq)
        break
    
    m1,m2=-heapq.heappop(pq),-heapq.heappop(pq)
    if m1==m2:
        res+=m1
        continue
    
    m3=-pq[0]
    t=m2-m3+1
    res+=t
    if m1-t>0: heapq.heappush(pq, -(m1-t))
    if m2-t>0: heapq.heappush(pq, -(m2-t))

print res
n=int(raw_input())
a=map(int,raw_input().strip().split(' '))
ma=max(a)
su=sum(a)
if ma*2<=su:
    print su//2
else:
    print su-ma

https://hihocoder.com/contest/offers69/problem/3
題目3 : 階乘問題
思路:直接求有多少個k的因子是錯誤的岩遗,比如20胶背!有多少個10,其中2和5可以組合起來弄成一個10喘先,所以應(yīng)該先因式分解,然后求每個因子有多少個

n,k=map(int,raw_input().strip().split(' '))

d={}
for i in range(2,k+1):
    if i*i>n: break
    while k%i==0: 
        d[i]=d.get(i,0)+1
        k//=i
if k!=1: d[k]=d.get(k,0)+1

def cal(t,s):
    cnt=0
    while t:
        cnt+=t//s
        t//=s
    return cnt

res=float('inf')
for k in d:
    t=cal(n,k)
    res=min(res, t//d[k])
print(res)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末廷粒,一起剝皮案震驚了整個濱河市窘拯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌坝茎,老刑警劉巖涤姊,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異嗤放,居然都是意外死亡思喊,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門次酌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來恨课,“玉大人,你說我怎么就攤上這事岳服〖凉” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵吊宋,是天一觀的道長纲辽。 經(jīng)常有香客問我,道長璃搜,這世上最難降的妖魔是什么拖吼? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮这吻,結(jié)果婚禮上吊档,老公的妹妹穿的比我還像新娘。我一直安慰自己橘原,他們只是感情好籍铁,可當(dāng)我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著趾断,像睡著了一般拒名。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上芋酌,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天增显,我揣著相機與錄音,去河邊找鬼。 笑死同云,一個胖子當(dāng)著我的面吹牛糖权,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播炸站,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼星澳,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了旱易?” 一聲冷哼從身側(cè)響起禁偎,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎阀坏,沒想到半個月后如暖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡盒至,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了枷遂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡棋嘲,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出封字,到底是詐尸還是另有隱情黔州,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布阔籽,位于F島的核電站流妻,受9級特大地震影響笆制,放射性物質(zhì)發(fā)生泄漏绅这。R本人自食惡果不足惜在辆,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一证薇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧匆篓,春花似錦浑度、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至先慷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間论熙,已是汗流浹背福青。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工脓诡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人誉券。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓刊愚,卻偏偏與公主長得像踊跟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子商玫,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗牡借。 張土汪:刷leetcod...
    土汪閱讀 12,744評論 0 33
  • 小麥田邊刺角花拳昌, 臀大腰細紫頭發(fā)钠龙。 纖細長腿婷婷立炬藤, 更有蝴蝶來安家碴里。
    星空之美閱讀 439評論 1 7
  • 華燈初上羹膳,夜未央 塵霧緩起 煙雨迷離 晚風(fēng)在窗沿輕拂 喃聲細語 絮說根竿,昏黃陵像。 黛瓦白檐 細雨翻飛 那一墻被雨水洗白...
    遙涔閱讀 307評論 5 6
  • W:對于焦慮寇壳,我又有了新的思考醒颖。 I:說來聽聽壳炎。 W:其實图贸,這次的結(jié)論很簡單,以前我也聽過疏日,但重新去推敲偿洁,體驗是不...
    三葉日行記閱讀 257評論 1 1