zjn是
qdez
有名的帥哥之一,作為學生會的重要幹部,經常接到豐富多彩的學生活動的通知,下面就是一項科技實踐活動
~~~~~
計算機的大腦通常被稱為cpu
。現在國家xx
局交給zjn
乙個重要任務,要求他製作一種新型的
cpu,幸運的是,
cpu研究中心已經將好多個
cpu核心蝕刻在矽片上了,這種矽片很可愛,它是由3n2
個核心拼成的l
型。當n=5
的時候,矽片的形狀如下圖所示。
zjn的任務就是把
cpu核心從矽片上切割下來,封裝在乙個銅盒子裡拿出來賣錢。
由於技術原因,cpu
的蝕刻有可能失敗,如果某個
cpu核心蝕刻失敗了,它就不能賣錢了。在上圖中,有
3個核心蝕刻失敗,蝕刻失敗的核心的座標分別是c4,
f2,g5。顯然,如果矽片上有m個
cpu核心蝕刻失敗了,則有3n2
-m個核心是可以賣錢的,如果每個
cpu內只裝
1個核心(貌似這就是傳統的單核處理器
~),此時你就可以做出3n2
-m個cpu
。zjn還是日理萬機的忙,於是雇用了小弟你來替他完成這個東西。他把所有人物都交給了你,去幹更重要的事情了。你的任務就是幫助
zjn啊
~~~突然,國家發展和改革委員會決定要發展雙核處理器技術。東風來,萬樹cpu
花開,你要做的是雙核處理器了。上司告訴你,如果在
l型矽片上任意兩個相鄰的
cpu核心都是完好的,那麼你就可以把它們一起切下來做成乙個雙核
cpu。所謂相鄰,指的是
cpu核心有一條公共邊界。
由於你的薪水是按照做出的cpu
的個數決定的,現在你想算算最多能切出多少個雙核的
cpu。
雙核,無限可能~~~
【輸入檔案】
zjn.in
第一行包含2
個整數n,k
以下k行,每行包括乙個字母和緊跟著的乙個整數,代表乙個蝕刻失敗的
cpu的座標。檔案保證座標在
l型矽片內。
【輸出檔案】
zjn.out
一行,僅包含乙個整數,代表能切出的最多雙核cpu
個數。【樣例輸入】
2 3 d1
a3 c2
【樣例輸出】 4
【資料範圍】
在100%
的資料中
2<=n<=7, 0.1n
2<=k<=3n2。
測試資料中n
是平均分布的。
分析:noip時的練習題,以前用簡單的位運算做的複雜度太高了。。。學了插頭dp,許多類似的題都迎刃而解了
嘿嘿。。。想做的可以找我要資料。。。
**:
插頭DP 入門
強烈推薦 hdu 1693 eat the trees 多迴路的不用判聯通狀態,二進位制即可,轉移情況2 2種。時間o n m 2 n 空間o n 2 n 插頭dp include include const int maxm 13 const int maxn 1 12 typedef long ...
插頭Dp總結
題目大意 給出n m的方格,有些格仔不能鋪線,其它格仔必須鋪,可以形成多個閉合迴路。問有多少種鋪法?插頭dp板子題,題目要求可以是多個迴路,只需要兩個狀態,代表是否有插頭即可 plug 1 plug 2 0 0 新建乙個插頭插向兩邊 0 1 轉 不轉彎 1 0 同上 1 1 合併插頭 題目大意 乙個...
總結 插頭 dp
集中做完了插頭 dp 寫一下題解。一開始學的時候還是挺矇的。不過後來站在輪廓線 dp 的角度上來看就簡單多了。其實就是一種聯通性 dp 只不過情況比較多而已了。本來轉移方式有兩種。逐行和逐格轉移。不過逐行轉移因為分類太多所以被捨棄了。一般的插頭 dp 採用逐格轉移。插頭表示已經進入當前格仔的狀態,而...