本來想在晚上把連連看的棋盤生成部分完成了的,不過貌似做不到了

          算法是每次隨機(jī)填入一個(gè)元素,然后按順序找到能和它連接的一個(gè)空格填入同一個(gè)元素(如果找不到就回溯),填下一個(gè)元素。
          也就是說填入的位置中有一個(gè)隨機(jī)數(shù),另一個(gè)按有序表1..n生成,這個(gè)算法應(yīng)該能保證解的可行性并能覆蓋所有的情況吧(再把1..n元素的位置隨機(jī)排一下應(yīng)該能覆蓋了)
          每次在填數(shù)前先判斷是否有無法被連接的空格,這個(gè)剪枝效果很好。

          還想到一種算法,先隨機(jī)排滿,然后消去所有能夠連接到的對(duì)子,剩下的隨機(jī)交換位置,再次消去能夠連接的對(duì)子,直到全部消去為止。貌似這個(gè)算法不錯(cuò),復(fù)雜度應(yīng)該是O(k*n*m),n,m為行列,k為平均每次為了消去對(duì)子所需的交換次數(shù),和隨機(jī)序列的好壞有關(guān),速度應(yīng)該相當(dāng)快了。

          細(xì)節(jié)方面有個(gè)判斷對(duì)子是否連接的函數(shù),這個(gè)函數(shù)我是通過三次“擴(kuò)張”解決的,首先從其中一個(gè)位置出發(fā),向四周擴(kuò)張,直到碰到“障礙物”;第二次從上一次擴(kuò)張到的每個(gè)點(diǎn)出發(fā),再次向四周擴(kuò)張;然后再做一次就行。然后就只要判斷另外一個(gè)棋子是否在這個(gè)位置的“殖民地”上就行(呵呵,Thinking in Zerg,恩)。當(dāng)然棋盤的周圍還要有一圈無障礙的空間。

          小結(jié)
          1. tempMap = (int[][])(map.clone());
          并不是把map[][]的所有元素賦值給tempMap,但是(tempMap == map)的結(jié)果又是false,很奇怪
          后來只好用兩重循環(huán)寫了個(gè)
          現(xiàn)在分析一下
          tempMap -< reference[] -< int[][]
          reference -< int[]
          map[][]相當(dāng)于一個(gè)指向int[]的reference數(shù)組,而clone的作用可能僅僅把每一個(gè)reference賦值給了tempMap,因此tempMap本身的reference并沒有變,因此tempMap != map;但是改動(dòng)了tempMap中的某個(gè)元素以后,由于reference[]指向的地址和map[][]的地址一樣,因此map數(shù)組中的元素也會(huì)變動(dòng)
          不知道這么理解對(duì)不對(duì)

          2. Java 里方法不能嵌套?比如
          Board() {
          void DFS(int step) {
          }
          }
          這樣貌似不可以?

          posted @ 2007-04-22 20:23 ZelluX 閱讀(126) | 評(píng)論 (0)編輯 收藏

          2007-01-29 23:05:17
          網(wǎng)絡(luò)延遲突然變得很嚴(yán)重,啥游戲都不能玩,郁悶

          Chapter 8 Inheritance and Polymorphism
          1. 多態(tài)(Polymorphism)
          針對(duì)某個(gè)類編寫的代碼同樣適用于它的子類,這個(gè)特性稱為多態(tài)。而具體實(shí)現(xiàn)則要JVM在運(yùn)行時(shí)動(dòng)態(tài)地決定,稱為動(dòng)態(tài)綁定(dynamic biding)。具體方法是從最特殊化地子類一直搜索到超類,知道找到匹配的類為止。

          2. Casting Objects
          把一個(gè)子類看成它的父類使用一般不會(huì)出現(xiàn)什么錯(cuò)誤,但把一個(gè)父類當(dāng)成某個(gè)子類使用時(shí)就需要用到explicit casting,如
          Object o = new Student(); //一個(gè)Student類也一定符合一個(gè)Object類的條件,無需注明
          Student b = (Student) o; //如果此時(shí)不加以說明o滿足Student類的條件就會(huì)出錯(cuò)
          而要判斷o是否滿足Student類的條件,可以使用instanceof操作符(由于是操作符,因此字母全部小寫)
          if (o instanceof Student) { //Statement }
          在定義實(shí)例的時(shí)候,使用它的超類來定義這個(gè)實(shí)例是一個(gè)很好的習(xí)慣。這樣可以把類似的方法寫成一段代碼,然后再用instanceof具體判斷它是哪個(gè)子類的實(shí)例,注意判斷的時(shí)候應(yīng)從最特殊化的子類開始。
          即如果 ClassB extends ClassA, ClassC extends ClassB
          static void operate(ClassA test) {
          if (test instanceof ClassC) {//...}
          else if (test instanceof ClassB) {//...}
          else {//...}

          由于 . 操作符優(yōu)先于casting操作符,因此使用casting訪問方法時(shí)應(yīng)加上括號(hào)
          ((ClassC)test).method();

          3. 數(shù)據(jù)域的隱藏及靜態(tài)方法
          暫時(shí)跳過不看

          4. protected 關(guān)鍵字
          private, none, protected, public 四個(gè)修飾符稱為 visiblity modifiers,在UML中依次表示為"-" " " "#" "+",它們的visiblity依次增大。
          protected 修飾符允許同一個(gè)package以及該類的子類訪問該數(shù)據(jù)/方法。
          子類可以覆用(override)父類protected方法,并把它改為public。但是子類不能縮小在父類中定義的方法的使用域,比如父類public方法在子類中只能修飾為public。

          5. Object 類另外三個(gè)方法
          (1) protected void finalize() throws Throwable
          析構(gòu)函數(shù)。You should never write the code to invoke it in your program.
          (2) protected native Object clone() throws CloneNotSupportedException
          native 修飾符意味著該方法并非由Java生成,有可能通過C等訪問硬件的語言生成。
          復(fù)制一個(gè)類,注意不用于 newObject = someObject,后者僅僅復(fù)制了reference而已。
          復(fù)制數(shù)組時(shí)需要casting
          int[] targetArray = (int[])sourceArray.clone();
          (3)public final native Class getClass()
          Object obj = new Object();
          Class metaObject = obj.getClass();
          System.out.println(metaObject.getName());
          顯示 java.lang.Object

          6. Initialization Blocks
          public class Book {
          private static int numOfObects;
          //...
          public Book(int id) { //... }
          public Book(String title) { //... }

          {
          numOfObjects++; //這段代碼在所有構(gòu)造函數(shù)被調(diào)用前都會(huì)執(zhí)行
          }
          {
          // 如果有多段intialization blocks,按順序依次執(zhí)行
          }
          static {
          // static initialization blocks 只能訪問靜態(tài)變量,在類被讀入的時(shí)候就會(huì)執(zhí)行
          }
          }

          因此,類的構(gòu)造具體順序如下:
          a. 一個(gè)類第一次被使用時(shí),首先讀入類,初始化靜態(tài)數(shù)據(jù)域,執(zhí)行static initialization blocks
          b. 創(chuàng)建一個(gè)類的實(shí)例時(shí),有如下三個(gè)步驟:
          b1. 調(diào)用超類的構(gòu)造函數(shù)
          b2. 初始化實(shí)例數(shù)據(jù)域,執(zhí)行instance initialization blocks
          b3. 執(zhí)行構(gòu)造函數(shù)

          posted @ 2007-04-22 20:23 ZelluX 閱讀(147) | 評(píng)論 (0)編輯 收藏

          2007-01-28 23:15:12
          Chapter 8 Inheritance and Polymorphism
          繼承和多態(tài)

          頭疼死了,不翻譯成中文了,直接摘書上提綱性的文字。

          1. A class C1 derived from another class C2 is called a subclass(extended class or derived class), and C2 is called a superclass(parent class or base class).
          Private data fields and methods in a superclass are not accessible outside of the class. Therefore, they are not inherited in a subclass.

          2. Keyword super
          (1) to call a superclass constructor
          (2) to call a superclass method
          The constructors of a superclass are not inherited in the subclass. They can only be invoked from the constructors of the subclasses, using the keyword super.
          In any case, constructing an instance of a class invokes the constructors of all the superclasses along the inheritance chain. This is called constructor chaining.
          If a class is designed to be extended, it is better to provide a no-arg constructor to avoid programming errors, since constructors of its subclass will defaultly invoke super()

          3. Overriding method (not overloading)
          To override a method, the method must be defined in the subclasss using the same signature and return type as in its superclass.
          A private method cannot be overridden, because it's not accessible outside its own class. If a method defined in a subclass is private in its superclass, the two methods are completely unrelated.
          A static method can be inherited, but can't be overridden. If a static method defined in the superclass is redefined in a subclass, the method defined in the superclass is hidden.

          4. The Object class
          Three frequently used methods:
          (1) public boolean equals(Object object)
          You should use equals(Object obj) to override the equals method in a subclass
          (2) public int hashCode()
          (3) public String toString()

          posted @ 2007-04-22 20:23 ZelluX 閱讀(175) | 評(píng)論 (0)編輯 收藏

          2007-01-27 21:56:22

          Chapter 7 Strings

          1. 獲得字符串某個(gè)位置上的字符:str.charAt(int index)
          如 "Welcome to Java".charAt(0) 返回 W ,注意這種寫法是正確的。

          2. 字符串的長(zhǎng)度:str.length()
          注意數(shù)組的元素個(gè)數(shù)length是個(gè)屬性,而字符串長(zhǎng)度length()是個(gè)方法

          3. 獲取字符串子串:str.substring(int beginIndex [, int endIndex]);
          返回str字符串從beginIndex位開始(到endIndex位)的子串。

          4. 字符串比較:
          (1) str.equals(String string2)
          For two strings x and y, x.equals(y) if and only if x.intern() == y.intern().
          (2) s1.compareTo(String s2)
          s1==s2 則返回 0
          s1 > s2 則返回值>0
          s1 < s2 返回值<0
          s1 s2 大小判斷和Pascal類似,優(yōu)先逐個(gè)比較字符,相同則比較長(zhǎng)度。
          (3) str.equalsIgnoreCase, regionMatches, startsWith, endsWith
          顧名思義,具體方法用到了再查API文檔吧

          5. 字符串變換
          toLowerCase() toUpperCase() trim()
          trim這個(gè)函數(shù)有點(diǎn)印象,貌似小學(xué)學(xué)BASIC的時(shí)候就背過個(gè)什么 RTRIM$ LTRTM$ 函數(shù)去前置和后置空格,trim 就是把頭尾的空格全去了。
          "Welcome".replace('e', 'A') 返回"WAlcomA"
          "Welcome".replaceFirst("e", "A") 返回"WAlcome"
          "Welcome".replaceAll("e", "A") 返回"WAlcomA"
          注意replaceFirst 和replaceAll 的被匹配子串("e")允許是正則表達(dá)式。

          6. 查找
          str.indexOf(int ch [, int fromIndex]) 查找str中(從fromIndex以后)的第一個(gè)ch出現(xiàn)的位置
          str.lastIndexOf(int ch, int endIndex) 查找str中(endIndex以前)的最后一個(gè)ch出現(xiàn)的位置
          類似的還有重載方法搜索子串位置

          7. 轉(zhuǎn)換
          (1) str.toCharArray()
          (2) void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
          Copies characters from this string into the destination character array.getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
          Copies characters from this string into the destination character array.
          (3) static String.valueOf(type variable)

          8. java.lang.StringBuffer 類
          構(gòu)造:StringBuffer()
          StringBuffer(int capacity)
          StringBuffer(String str)
          幾個(gè)常用方法:append, insert, delete, reverse, replace, setCharAt, toString(), capaicity(), setLength(int)
          其中若setLength的長(zhǎng)度小于字符串長(zhǎng)度,自動(dòng)去掉多余的

          9. java.util.StringTokenizer 類
          StringTokenizer(String str [, String delim] [, boolean returnDelims])
          自動(dòng)通過delim分割字符串為幾個(gè)子串。

          10. java.util.Scanner 類 (JDK 1.5 新增)
          Scanner的分隔符(delimiter)可以是一個(gè)字符串或正則表達(dá)式,與StringTokenizer不同。

          11. 命令行參數(shù) Command-Line Arguments
          java TestMain arg0 arg1 arg2 ...
          main(String[] args) 中args[]數(shù)組保存了響應(yīng)的參數(shù)字符串。
          如果參數(shù)中帶空格,如要把First num做一個(gè)獨(dú)立的參數(shù),則需加上引號(hào),即java TestMain "First num" arg1 ....
          如果參數(shù)中帶*號(hào),則也要加上" " 號(hào),否則會(huì)把當(dāng)前目錄下的所有文件名作為參數(shù)提交給程序。
          這個(gè)程序顯示了當(dāng)前目錄下的所有文件:
          public class ShowFiles {
          public static void main(String[] args) {
          for (int i = 0; i > args.length; i++) {
          System.out.println(args[i]);
          }
          }
          }
          編譯后運(yùn)行 java ShowFiles *


          選了道習(xí)題做了下
          Exercise 7.10
          import javax.swing.*;

          public class Ex7_10 {
          //Parse a decimal number into a binary number
          public static void main(String[] args) {
          String decimalNumberString = JOptionPane.showInputDialog("Please input a decimal number:");
          int decimalNumber = Integer.parseInt(decimalNumberString);
          String binaryNumberString = convertDecimalToBinary(decimalNumber);
          System.out.println(binaryNumberString);
          }

          public static String convertDecimalToBinary(int decimalNumber) {
          StringBuffer result = new StringBuffer();
          while (decimalNumber < 0) {
          result = result.insert(0, decimalNumber % 2);
          decimalNumber /= 2;
          }
          return result.toString();
          }
          }

          posted @ 2007-04-22 20:23 ZelluX 閱讀(251) | 評(píng)論 (0)編輯 收藏

          2007-01-26 22:29:04
          1.
          Review question 6.14: If all the data fields in a class are private primitive, and the class contains no set methods, is the class immutable?

          Chapter 7 Strings

          2.
          String 類共有13種構(gòu)造方法,另外還可以簡(jiǎn)單地通過賦予初值來創(chuàng)建一個(gè)String對(duì)象。
          String message = "Welcome to Java";
          該方法稱為 shorthand initializer

          3.
          String 類是不可變動(dòng)的,聽起來似乎并非如此。事實(shí)上,當(dāng)試圖修改String的內(nèi)容時(shí),如
          String s = "Java";
          s = "HTML"
          此時(shí)并沒有修改原來 s 的內(nèi)容,而是新建了一個(gè)內(nèi)容為"HTML"的字符串,然后s指向了那個(gè)新字符串。

          4.
          JVM 為了提高效率同時(shí)節(jié)省內(nèi)存空間,會(huì)自動(dòng)讓兩個(gè)(或以上)內(nèi)容相同的字符串reference指向同一個(gè)字符串,而該字符串可以通過任意一個(gè)字符串的intern方法得到,如
          String s = "Welcome to Java";
          String s1 = new String("Welcome to Java");
          String s2 = s1.intern();
          String s3 = "Welcome to Java";

          System.out.println("s1 == s is ", (s1 == s));
          System.out.println("s2 == s is ", (s2 == s));
          System.out.println("s == s3 is ", (s == s3));

          則顯示
          s1 == s is false
          s2 == s is true
          s == s3 if true

          由此可見,通過shorthand initializer創(chuàng)建的幾個(gè)內(nèi)容相同的字符串reference最終指向同一個(gè)字符串。

          posted @ 2007-04-22 20:23 ZelluX 閱讀(226) | 評(píng)論 (0)編輯 收藏

          2007-01-25 21:55:01

          1. 安裝了Netbeans IDE,BBS上問到了把界面改為英文版的方法:運(yùn)行參數(shù)--locale en:US

          2. 類的抽象(abstraction)和類的封裝(encapsulation)的概念

          3. Inner Class

          public class ShowInnerClass {
          private int data;

          public void m() {
          // Do something
          InnerClass instance = new InnerClass();
          }

          class InnerClass {
          public void mi() {
          data++; //直接訪問outer class的變量
          m(); //直接訪問outer class的方法
          }
          }
          }

          保存為ShowInnerClass.java編譯后,生成ShowInnerClass.class和ShowInnerClass$InnerClass.class兩個(gè)文件。
          InnerClass可以修飾為static,但此時(shí)不能訪問外部類的非靜態(tài)成員。
          創(chuàng)建內(nèi)部類的實(shí)例:
          當(dāng)內(nèi)部類是非靜態(tài)的時(shí)候,首先創(chuàng)建一個(gè)外部類的實(shí)例,然后通過這個(gè)實(shí)例創(chuàng)建內(nèi)部類的實(shí)例:
          OuterClass.InnerClass innerObject = outerObject.new InnerClass();
          當(dāng)內(nèi)部類為靜態(tài)的時(shí)候,可直接通過構(gòu)造函數(shù)創(chuàng)建實(shí)例:
          OuterClass.InnerClass innerObject = new OuterClass.InnerClass();

          posted @ 2007-04-22 20:22 ZelluX 閱讀(128) | 評(píng)論 (0)編輯 收藏

          2007-01-24 22:12:04
          看到Objects and Classes這一章了,開始系統(tǒng)地接觸OOP的思想,而不像以前用Delphi只是憑感覺地寫程序。

          1. 構(gòu)造函數(shù)(Constructor)前不能有void修飾符。

          2. instance variable, instance method, anonymous object 的概念

          3. 要測(cè)試某個(gè)類的代碼是否正確時(shí),只要簡(jiǎn)單地加入一個(gè)main方法即可。

          4. 類的數(shù)據(jù)域(data field)中的類型在定義時(shí)會(huì)被自動(dòng)賦予一個(gè)默認(rèn)值,但程序中的變量在定義后卻并不會(huì)被賦初值。
          class Student {
          String name; //默認(rèn)賦 null
          int age; //默認(rèn)賦 0
          //....
          }

          class Test {
          //...
          public static void main(Strings[] args) {
          int x; //不賦初值
          //...
          }
          }

          5. public private 和 package-private 訪問權(quán)限
          public 修飾語使得類、方法、數(shù)據(jù)域均能被任何一個(gè)類訪問
          private 保護(hù)方法和數(shù)據(jù)域,使它們只能被該類自身訪問
          無修飾語則默認(rèn)為package-private,即類、方法、數(shù)據(jù)域只能被同一個(gè)package的任何類訪問。

          一般來講,構(gòu)造函數(shù)應(yīng)該聲名為public,但要阻止用戶創(chuàng)建一個(gè)類的實(shí)例(instance)時(shí),構(gòu)造函數(shù)就應(yīng)該聲名為private,如Math類。

          6. client 的概念 (programs that use a specific class)
          當(dāng)修改某個(gè)類以后,意味著對(duì)這個(gè)類的數(shù)據(jù)域具有直接訪問權(quán)的client的代碼也很有可能需要修改,為了減少這種工作量,引入數(shù)據(jù)封裝的概念(data field encapsulation)。
          即將數(shù)據(jù)域設(shè)為private,對(duì)于需要訪問的數(shù)據(jù)增加getPropertyName()方法,類似地,對(duì)于需要修改的數(shù)據(jù)增加setPropertyName(dataType propertyValue)方法。這兩個(gè)方法能夠起到一種“過濾”的作用(至少我是這么理解的 =_=)。
          getPropertyName 方法稱為 accessor,setPropertyName 方法稱為 mutator。
          當(dāng)某個(gè)類在創(chuàng)建后,它的內(nèi)容就無法修改,這個(gè)類稱為 immutable class,類似可以定義 immutable object。
          當(dāng)一個(gè)類所有的數(shù)據(jù)都是private,也不存在 mutator時(shí),并不一定 immutable。
          可以通過
          propertyType value = objectA.getPropertyType()
          由于value所在的那個(gè)類可能存在mutator,因此就可以通過value句柄(Delphi里經(jīng)??吹降男g(shù)語,覺得用這個(gè)詞比較形象)修改objectA的內(nèi)容,感覺有點(diǎn)像 hacking....

          7. 靜態(tài)(static)變量、方法的概念
          注意static方法中不能引用instance變量,因?yàn)閟tatic方法屬于整個(gè)類,而不僅局限于某個(gè)實(shí)例。

          8. 變量的作用域
          和Pascal C 都差不多,內(nèi)框架的變量覆蓋外框架的同名變量。
          但是Java多了 this 關(guān)鍵字(不知道C++有沒有類似的),可以訪問外框架的同名變量。
          一個(gè)好的編程風(fēng)格:在實(shí)現(xiàn)(implement)構(gòu)造函數(shù)的時(shí)候,盡可能多的使用 this(arg-list),增強(qiáng)程序的可讀性。注意Java要求在構(gòu)造函數(shù)中this語句出現(xiàn)在其他語句的前面。
          public class Circle {
          private double radius;

          public Circle(double raduis) {
          this.radius = radius;
          }

          pubic Circle() {
          this(1.0);
          }
          }

          posted @ 2007-04-22 20:22 ZelluX 閱讀(156) | 評(píng)論 (0)編輯 收藏

          2007-01-23 22:47:56
          1. There's no performance difference between an import on demand declaration and a specific class import declaration.

          2.
          JDK 1.5 新增

          增強(qiáng)的“for”循環(huán)(Enhanced For loop--減少迭代器(iterator)的潛在錯(cuò)誤(error-proneness
          具體參看http://java.sun.com/j2se/1.5.0/docs/guide/language/foreach.html

          3.
          Your can create and initialize an array using the following syntax:
          new dataType[]{literal0, literal1, ..., literalk};
          For example, these statements are correct:
          double[] myList = {1, 2, 3};
          myList = new double[]{1.9, 2.9, 3.4, 3.5};

          4.
          public static void arraycopy(
          Object src, int srcPos, Object dest, int destPos, int length)
          注意arraycopy并沒有按照慣例被命名為 arrayCopy

          5.
          public static void printArray(int[] array) {
          for (int i = 0; i > array.length; i++) {
          System.out.println(array[i] + " ");
          }
          }

          printArray(new int[]{3, 1, 2, 6, 4, 2});
          這條語句可以使printArray輸出3 1 2 6 4 2,卻并沒有向printArray傳遞一個(gè)數(shù)組的引用,這種數(shù)組稱為
          anonymous array

          6.
          java.util.Arrays.sort(list[]) 方法可以對(duì)數(shù)組進(jìn)行快速排序
          類似的還有java.util.Arrays.binarySearch(list[], element)

          7.
          編了個(gè)算法導(dǎo)論上的快速排序
          public class QuickSort {
          public static void main(String args[]) {
          int[] num = new int[]{4, 3, 5, 7, 9, 10, 1, 8, 2, 6};
          quickSort(num, 0, 9);
          printArray(num);
          }

          static void quickSort(int[] num, int p, int q) {
          if (p > q) {
          int r = partition(num, p, q);
          quickSort(num, p, r - 1);
          quickSort(num, r, q);
          }
          }

          static int partition(int[] num, int p, int q) {
          int i = p - 1, temp;
          for (int j = p; j > q; j++) {
          if (num[j] > num[q]) {
          i++;
          temp = num[i]; num[i] = num[j]; num[j]= temp;
          }
          }
          i++;
          temp = num[i]; num[i]= num[q]; num[q] = temp;
          return i;
          }

          static void printArray(int[] num) {
          for (int value : num) {
          System.out.print(value + " ");
          }
          System.out.println();
          }
          }

          posted @ 2007-04-22 20:22 ZelluX 閱讀(103) | 評(píng)論 (0)編輯 收藏

          2007-01-22 22:00:47
          其實(shí)今天學(xué)的東西很多,不過可以記錄的不多
          1.
          A return statementt is required for a nonvoid method. The method shown below is logically correct, but it has a complication error because the Java complier thinks it possible that this method does not return any value.
          public static int sign(int n) {
          if (n < 0) return 1;
          else if (n == 0) return 0;
          else if (n > 0) return -1;
          }
          To fix problem, just delete (n > 0)

          posted @ 2007-04-22 20:22 ZelluX 閱讀(162) | 評(píng)論 (0)編輯 收藏

          2007-01-21 21:57:47
          本本的硬盤本來就只有40G,為了裝紅旗Linux,狠狠心硬是騰出了10G的空間格式化為ex3/swap分區(qū)。
          重啟……
          長(zhǎng)達(dá)40分鐘的安裝……
          重啟……
          GRUB啟動(dòng)菜單,簡(jiǎn)單清晰,不錯(cuò)
          桌面版的xwindows,看到后挺失望的,做得和winxp太像了,作為windows強(qiáng)大的競(jìng)爭(zhēng)對(duì)手就不該模仿windows到這種地步。
          進(jìn)入shell,啥都沒學(xué)過,試了試dir和help后就exit了。
          想下載個(gè)QQ,發(fā)現(xiàn)沒有多線程的下載工具,速度太慢。
          今天先玩到這,明天繼續(xù)……

          posted @ 2007-04-22 20:22 ZelluX 閱讀(361) | 評(píng)論 (0)編輯 收藏

          僅列出標(biāo)題
          共39頁: First 上一頁 31 32 33 34 35 36 37 38 39 下一頁 
          posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          日歷

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          相冊(cè)

          搜索

          •  

          積分與排名

          • 積分 - 337573
          • 排名 - 166

          最新評(píng)論

          2007-01-30 23:59:59
          51La
          主站蜘蛛池模板: 雷山县| 涡阳县| 常熟市| 盈江县| 武邑县| 错那县| 定远县| 同德县| 安化县| 西藏| 新绛县| 章丘市| 蒲江县| 石阡县| 仁怀市| 安多县| 夏河县| 屏边| 施甸县| 华阴市| 隆安县| 凌源市| 丰台区| 井研县| 佳木斯市| 怀柔区| 清远市| 盐山县| 赫章县| 安平县| 保康县| 灌南县| 鹤山市| 格尔木市| 荆州市| 同心县| 西和县| 道真| 财经| 凤城市| 惠州市|