Snowdream
posts - 403, comments - 310, trackbacks - 0, articles - 7
BlogJava
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
1.30 Java notes
Posted on 2007-04-22 20:23
ZelluX
閱讀(125)
評論(0)
編輯
收藏
所屬分類:
OOP
2007-01-30 23:59:59
本來想在晚上把連連看的棋盤生成部分完成了的,不過貌似做不到了
算法是每次隨機填入一個元素,然后按順序找到能和它連接的一個空格填入同一個元素(如果找不到就回溯),填下一個元素。
也就是說填入的位置中有一個隨機數,另一個按有序表1..n生成,這個算法應該能保證解的可行性并能覆蓋所有的情況吧(再把1..n元素的位置隨機排一下應該能覆蓋了)
每次在填數前先判斷是否有無法被連接的空格,這個剪枝效果很好。
還想到一種算法,先隨機排滿,然后消去所有能夠連接到的對子,剩下的隨機交換位置,再次消去能夠連接的對子,直到全部消去為止。貌似這個算法不錯,復雜度應該是O(k*n*m),n,m為行列,k為平均每次為了消去對子所需的交換次數,和隨機序列的好壞有關,速度應該相當快了。
細節方面有個判斷對子是否連接的函數,這個函數我是通過三次“擴張”解決的,首先從其中一個位置出發,向四周擴張,直到碰到“障礙物”;第二次從上一次擴張到的每個點出發,再次向四周擴張;然后再做一次就行。然后就只要判斷另外一個棋子是否在這個位置的“殖民地”上就行(呵呵,Thinking in Zerg,恩)。當然棋盤的周圍還要有一圈無障礙的空間。
小結
1. tempMap = (int[][])(map.clone());
并不是把map[][]的所有元素賦值給tempMap,但是(tempMap == map)的結果又是false,很奇怪
后來只好用兩重循環寫了個
現在分析一下
tempMap -< reference[] -< int[][]
reference -< int[]
map[][]相當于一個指向int[]的reference數組,而clone的作用可能僅僅把每一個reference賦值給了tempMap,因此tempMap本身的reference并沒有變,因此tempMap != map;但是改動了tempMap中的某個元素以后,由于reference[]指向的地址和map[][]的地址一樣,因此map數組中的元素也會變動
不知道這么理解對不對
2. Java 里方法不能嵌套?比如
Board() {
void DFS(int step) {
}
}
這樣貌似不可以?
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
為什么Python中的self必須保留?
Python中inner function的binding處理
C# From a Java Programmer's Perspective
Singleton模式與雙檢測鎖定(DCL)
C# 學習筆記 (1)
Java Puzzler - 數值處理中容易犯的錯誤
Java3D 入門筆記 (1)
Java 的類庫真是方便啊
Java泛型中的? super T語法
Project3 成功轉移到Ubuntu
Powered by:
BlogJava
Copyright © ZelluX
日歷
<
2007年4月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
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
1
2
3
4
5
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(21)
給我留言
查看公開留言
查看私人留言
隨筆分類
(390)
Algorithm(57)
C/C++(39)
Courses(15)
Economics(2)
Laboratory(25)
Linux(47)
Mathematics(12)
OOP(89)
Scripting(19)
Security(3)
System(28)
Web(10)
書、電影、音樂(11)
其他(14)
點滴(19)
隨筆檔案
(389)
2009年12月 (1)
2009年4月 (1)
2009年3月 (4)
2009年2月 (2)
2009年1月 (2)
2008年11月 (1)
2008年10月 (9)
2008年9月 (1)
2008年7月 (2)
2008年6月 (4)
2008年5月 (12)
2008年4月 (18)
2008年3月 (7)
2008年2月 (33)
2008年1月 (19)
2007年12月 (8)
2007年11月 (14)
2007年10月 (24)
2007年9月 (18)
2007年8月 (28)
2007年7月 (33)
2007年6月 (26)
2007年5月 (30)
2007年4月 (92)
文章檔案
(7)
2007年7月 (2)
2007年5月 (4)
2007年4月 (1)
相冊
Illustration
15ers
jonathan的BLOG
Right There...
宙斯魚的小魚缸
小鮑的世界
簡單幸福
逃遁的Persephone
阿繆爾的錦瑟
風之語的BLOG
友情鏈接
(04CS) ljh
(05CS) 小菜虎的窩
(06CS) FreePeter
(06SS) Overboming
(06SS) Sherry
(06SS) 十指飛揚
(06SS) 銀色子彈
luohandsome的專欄
平淡是真——啃啃不老閣
收藏夾
[ADN.cn]Library
Debian學習筆記
Dictionary of Algorithms and Data Structures
Gollum
Lex&Yacc
Max On Java
techInterview Discussion
核桃仁
程序員面試題精選100題
鐵手
搜索
積分與排名
積分 - 337114
排名 - 167
最新隨筆
1.?新博客
2.?慎用xen的make world...
3.?內存模型相關的資料
4.?安全方面的經典論文:A Logic of Authentication
5.?Lock-Free 算法的幾個鏈接
6.?10 Papers Every Programmer Should Read
7.?PieTTY中按Ctrl+S導致掛起的問題解決
8.?Finding and Reproducing Heisenbugs in Concurrent Programs
9.?Ubuntu 8.10 瀏覽網頁不穩定的解決方法
10.?[zz]蘇南經濟模式興衰親歷記
最新評論
1.?re: C/C++中的序列點
說的太好了,解決我長久的困擾!
--除美滅日平韓
2.?re: 原來GCC是支持尾遞歸的遞推優化的
評論內容較長,點擊標題查看
--darkhorse
3.?re: Arch下配置samba服務
我按照你的方法,安裝了SAMBA,但是 /etc/rc.d/samba start 啟動不了samba服務。提示不存在這個文件或目錄的,怎么辦?
--zhangbear
4.?re: [zz]LKM Rootkits on Linux x86 v2.6
rhel 5 系列 安裝了 Xen 內核, 怎么rootkit xen kernel 呢?
--消息
5.?re: CLRS 習題 16.2-6 部分背包問題的O(n)算法
@ynnej
T(n)=2T(n/2)+O(n) 才是 nlgn 注意其中有一個2
--荒廢庭院
閱讀排行榜
1.?[zz]vim+ctags+taglist插件安裝使用(18313)
2.?memcpy函數代碼分析(9388)
3.?[zz]Zotero與Endnote的互相導入(8780)
4.?BNF 文法 (1) - 語法樹 | 二義性的解決(8266)
5.?Java泛型中的? super T語法(6562)
評論排行榜
1.?C# 學習筆記 (1)(14)
2.?Windows - QQ、網頁Flash視頻無聲音的解決方法(14)
3.?URAL 1011(10)
4.?《編程之美》上的一道題目的討論(8)
5.?Singleton模式與雙檢測鎖定(DCL)(7)
主站蜘蛛池模板:
古蔺县
|
通山县
|
瑞安市
|
嵊州市
|
甘肃省
|
邹城市
|
将乐县
|
桂平市
|
文昌市
|
温泉县
|
洛川县
|
西吉县
|
武穴市
|
彭水
|
凤阳县
|
抚松县
|
临泽县
|
堆龙德庆县
|
旅游
|
雅安市
|
黑山县
|
黄石市
|
平顺县
|
九龙县
|
武邑县
|
四子王旗
|
喀什市
|
衡东县
|
宁化县
|
南岸区
|
搜索
|
鸡西市
|
礼泉县
|
乌鲁木齐县
|
肃宁县
|
石家庄市
|
西丰县
|
多伦县
|
宁晋县
|
怀柔区
|
望谟县
|