klion26
klion26's blog
C++博客
|
首頁
|
發(fā)新隨筆
|
發(fā)新文章
|
聯(lián)系
|
聚合
|
管理
隨筆:71 文章:0 評(píng)論:17 引用:0
USACO 1_5_4 Checker Challenge (n皇后)
這題題就是n皇后,不過不超時(shí)可能比較困難,至于可能是因?yàn)橐话愕娜硕贾佑|過遞歸版的,表示那個(gè)時(shí)間和空間要求很高啊。下面我們用位運(yùn)算來解決這個(gè)問題。確切的說是
Matrix67大牛的原創(chuàng)
(再次膜拜),當(dāng)然建議先看前面兩篇,不然可能有點(diǎn)暈乎乎的。看完之后,你會(huì)發(fā)現(xiàn)自己提高了,呵呵。大牛已經(jīng)說的很清楚了,我就不多說了,貼個(gè)C語言版的代碼吧
CODE
1
max
=
(
1
<<
n)
-
1
;(n是皇后數(shù))
2
sum
=
0
;
//
最后結(jié)果在sum中
3
void
work(
int
row,
int
ld,
int
rd)
4
{
//
row是列禁止,ld是對(duì)角線禁止,rd是反對(duì)角線禁止
5
int
pos,p;
6
if
(row
==
max)
7
sum
++
;
8
pos
=
max
&
(
~
(row
|
ld
|
rd));
//
得到當(dāng)前行的可放皇后的位置
9
//
row|ld|rd是禁止位,然后取反,在和max與就是可以放皇后的位置
10
while
(
0
!=
pos)
11
{
12
p
=
pos
&
-
pos;
//
在可放的位置找第一個(gè),然后測試
13
pos
-=
p;
//
把已經(jīng)測試過的去掉
14
work(row
+
p,(ld
+
p)
>>
1
,(rd
+
p)
<<
1
);
//
移位是因?yàn)樵诋?dāng)前行是禁位的
//
話,那么在下一行就是左移一位或者右移一位了
15
}
16
}
17
理解了上面的代碼之后,這題剩下的就是求前三個(gè)了,那個(gè)可以用遞歸版的,也可以用這個(gè)求不過還得加一個(gè)參數(shù),里面在改一下,用log或者long10求log(2)p時(shí)注意精度,不然結(jié)果4會(huì)變成3,但是單獨(dú)把3拿出來之后,4就還是4,這或許是計(jì)算機(jī)內(nèi)部的原因吧,哪位路過大牛知道的告訴聲,感激不盡,對(duì)于13皇后,我的才用了0.2S。而且1A,小小的興奮下,哈哈,第一章結(jié)束了,下面是第二章,奮斗,加油。
似乎官方的是搜索,但是還沒看,往上應(yīng)該有的,就不傳上來了,如果要的話,留郵箱吧,不過基本也沒必要了,因?yàn)槟莻€(gè)搜索時(shí)間肯定不比這個(gè)少,但是對(duì)于學(xué)習(xí)知識(shí)到是不錯(cuò)的選擇。
發(fā)表于 2010-06-07 19:12
Klion
閱讀(309)
評(píng)論(0)
編輯
收藏
引用
所屬分類:
USACO
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
【推薦】100%開源!大型工業(yè)跨平臺(tái)軟件C++源碼提供,建模,組態(tài)!
相關(guān)文章:
USACO 4-1-4Cryptcowgraphy
USACO 4_1_3 Fence Loops
USACO 4_1_1 Beef McNuggets
USACO 3_3_4 Home On The Range
USACO 3_3_1 Riding The Fences
USACO 3_3_5 A Game
USACO 3_2_2 Stringsobits
USACO 3_2_6 Sweet Butter----最短路
USACO 3_1_4 Shaping Regions
USACO 2_3_5 Controlling Companies
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
<
2010年5月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
常用鏈接
我的隨筆
我的評(píng)論
我參與的隨筆
留言簿
(1)
給我留言
查看公開留言
查看私人留言
隨筆分類
(99)
DP(7)
(rss)
Linux學(xué)習(xí)之路(11)
(rss)
POJ(18)
(rss)
USACO(27)
(rss)
計(jì)算機(jī)專業(yè)(3)
(rss)
計(jì)算幾何
(rss)
數(shù)據(jù)結(jié)構(gòu)&字符串(14)
(rss)
數(shù)學(xué)(8)
(rss)
搜索(4)
(rss)
貪心(1)
(rss)
圖論(4)
(rss)
雜(2)
(rss)
隨筆檔案
(71)
2010年12月 (7)
2010年11月 (11)
2010年9月 (6)
2010年8月 (12)
2010年7月 (12)
2010年6月 (6)
2010年5月 (15)
2010年4月 (2)
好友鏈接
我的獨(dú)立域名
我的獨(dú)立域名
搜索
最新評(píng)論
1.?re: SQL Server 2005端口號(hào)設(shè)置
在程序中的數(shù)據(jù)庫連接字符串也應(yīng)該做相應(yīng)的更改,怎么操作啊?
--peijian
2.?re: SQL Server 2005端口號(hào)設(shè)置
如果是在本機(jī),客戶端IP還是寫localhost嗎?
--的
3.?re: VMware 安裝RedHat9時(shí)光盤無法掛載的問題[未登錄]
嗯 收獲了 謝謝
--jz
4.?re: Ubuntu死機(jī)那點(diǎn)事
確實(shí)有用,我用到第3點(diǎn),就可以了。
謝謝!
--Annie
5.?re: POJ_1195 二維樹狀數(shù)組
@yp
能有這效果,我表示非常高興
--klion26
閱讀排行榜
1.?Ubuntu死機(jī)那點(diǎn)事(4802)
2.?SQL Server 2005端口號(hào)設(shè)置(4721)
3.?POJ 1014 && 1742 多重背包的O(VN)解法(2948)
4.?三種簡單博弈問題的簡單介紹(2884)
5.?HDU_1907&2509 博弈(2298)
評(píng)論排行榜
1.?SQL Server 2005端口號(hào)設(shè)置(6)
2.?三種簡單博弈問題的簡單介紹(2)
3.?回歸CPP Blog(2)
4.?《自己動(dòng)手寫操作系統(tǒng)》第一步(2)
5.?POJ_1195 二維樹狀數(shù)組(2)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 Klion
99蜜桃臀久久久欧美精品网站
|
伊人久久大香线蕉综合5g
|
久久亚洲视频
|
久久人人爽人人爽人人片AV麻烦
|
久久久久亚洲AV无码永不
|
久久一区二区三区99
|
国产高清美女一级a毛片久久w
|
久久天天躁夜夜躁狠狠躁2022
|
69久久精品无码一区二区
|
波多野结衣AV无码久久一区
|
品成人欧美大片久久国产欧美... 品成人欧美大片久久国产欧美
|
久久精品人人做人人爽电影蜜月
|
狠狠久久亚洲欧美专区
|
亚洲综合精品香蕉久久网
|
精品久久久久久久国产潘金莲
|
四虎久久影院
|
日韩欧美亚洲综合久久
|
久久天天躁狠狠躁夜夜2020一
|
久久电影网
|
久久夜色精品国产欧美乱
|
2021精品国产综合久久
|
久久被窝电影亚洲爽爽爽
|
久久这里只有精品视频99
|
要久久爱在线免费观看
|
国产午夜免费高清久久影院
|
国产免费福利体检区久久
|
久久久精品国产
|
久久黄色视频
|
国产一区二区三区久久
|
久久精品国产99国产精品亚洲
|
狠狠色丁香久久婷婷综合五月
|
国产精品久久久久久久人人看
|
色综合久久88色综合天天
|
99久久久精品
|
18岁日韩内射颜射午夜久久成人
|
国产精品美女久久久久av爽
|
国产91久久精品一区二区
|
亚洲国产精品一区二区久久hs
|
国产99久久久久久免费看
|
.精品久久久麻豆国产精品
|
国产高潮国产高潮久久久
|