• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            The Fourth Dimension Space

            枯葉北風寒,忽然年以殘,念往昔,語默心酸。二十光陰無一物,韶光賤,寐難安; 不畏形影單,道途阻且慢,哪曲折,如渡飛湍。斬浪劈波酬壯志,同把酒,共言歡! -如夢令

            #

            優先隊列priority_queue 實現哈弗曼樹WPL的計算

            #include<iostream>
            #include
            <queue>
            #include
            <functional>
            using namespace std;

            priority_queue
            <int,vector<int>,greater<int>>myqueue;

            int main ()
            {

                
            int n;
                
            int i;
                
            int sum=0;
                scanf(
            "%d",&n);
                
            for(i=1;i<=n;i++)
                
            {
                    
            int temp;
                    cin
            >>temp;
                    myqueue.push(temp);
                }

                
            while(myqueue.size()!=1)
                
            {
                    
            int temp;
                    temp
            =myqueue.top();
                    sum
            +=temp;
                    myqueue.pop();
                    temp
            =myqueue.top();
                    sum
            +=temp;
                    myqueue.pop();
                    myqueue.push(sum);
                    sum
            =0;
                }

                cout
            <<myqueue.top()<<endl;
                system(
            "pause");
                
            return 0;
            }

            posted @ 2009-03-28 23:24 abilitytao 閱讀(421) | 評論 (0)編輯 收藏

            POJ 1700-過河問題 經典智力題

            題目描述:在漆黑的夜里,四位旅行者來到了一座狹窄而且沒有護欄的橋邊。如果不借助手電筒的話,大家是無論如何也不敢過橋去的。不幸的是,四個人一共只帶了一只手電筒,而橋窄得只夠讓兩個人同時過。如果各自單獨過橋的話,四人所需要的時間分別是1、2、5、8分鐘;而如果兩人同時過橋,所需要的時間就是走得比較慢的那個人單獨行動時所需的時間。問題是,如何設計一個方案,讓這四人盡快過橋。

            解題思路:
            當人數等于1,2,3的時候:答案很容易得出;
            當人數大于等于4時:

            若設過橋速度最快的那個人過橋時間為a,第二快為b;過橋第二慢的那個人過橋時間為y,最慢為z;
            此時有兩種過橋方案:
            一.最快和次快的人先過,然后最快的回來,然后最慢與次慢的人再過,次快的回來;
            二.最快的和最慢的過,快的回來,在和次慢的過,快的再回來;

            第一種方法時間為b*2+a+z
            第二種方法時間為y+z+2*a
            如果第一種大于第二種 有2*b+a+z>y+z+2*a
            化簡得
            2*b>y+a;
            此時只要比較2*b和a+y的大小即可知道那種方法更優 O(∩_∩)O~ 編程解決即可
            #include<iostream>
            #include
            <algorithm>
            #include
            <numeric>
            using namespace std;


            int a[1000];

            int main()
            {
                
            int testcase;
                
            int n;
                
            int i;
                
            int j;
                
            int sum=0;
                scanf(
            "%d",&testcase);
                
            for(j=1;j<=testcase;j++)
                
            {
                    sum
            =0;
                    scanf(
            "%d",&n);
                    
            for(i=1;i<=n;i++)
                        scanf(
            "%d",&a[i]);
                    sort(a
            +1,a+1+n);
                    
            while(n)
                    
            {
                        
                        
            if(n==1)
                        
            {
                            sum
            +=a[1];
                            n
            =0;
                        }

                        
            else if(n==2)
                        
            {
                            sum
            +=a[2];
                            n
            =0;
                        }

                        
            else if(n==3)
                        
            {
                            
                            sum
            +=(a[2]+a[3]+a[1]);
                            n
            =0;
                        }

                        
            else if(n>=4)
                        
            {
                            
                            
                            
            if(2*a[2]>a[1]+a[n-1])
                            
            {
                                sum
            +=(a[n-1]+a[n])+2*a[1];
                                n
            -=2;
                            }

                            
                            
            else
                            
            {
                                sum
            +=(a[2]+a[1]+a[n]+a[2]);
                                n
            -=2;
                            }

                        }

                        
                        
                    }

                    printf(
            "%d\n",sum);
                }

                system(
            "pause");
                
            return 0;
                
            }




            說句題外話,據說去年南大保研的面試題就是這道題,一模一樣,呵呵 只可惜我還沒到保研的時間。。。

            posted @ 2009-03-28 22:58 abilitytao 閱讀(3100) | 評論 (10)編輯 收藏

            POJ 2083-Fractal

            此題與上一題類似,一次AC;
            由于控制臺屏幕太小 這次我將結果保存在文件中;
            #include<iostream>
            #include
            <cmath>
            #include
            <algorithm>
            #include
            <cstdlib>
            #include
            <cstdio>
            #include
            <fstream>
            using namespace std;

            char mymap[2500][2500];

            int leftdot;
            int rightdot;
            int topdot;
            int bottomdot;


            void figure(int x,int y,int degree)
            {
                leftdot
            =min(leftdot,y);
                rightdot
            =max(rightdot,y);
                topdot
            =min(topdot,x);
                bottomdot
            =max(bottomdot,x);


                
            if(degree==1)
                
            {
                    mymap[x][y]
            ='X';
                }

                
            else
                
            {

                    
            int dis=(int)pow((double)3,degree-2)*2;
                    figure(x,y,degree
            -1);
                    figure(x,y
            +dis,degree-1);
                    figure(x
            +dis,y,degree-1);
                    figure(x
            +dis/2,y+dis/2,degree-1);
                    figure(x
            +dis,y+dis,degree-1);
                }




            }



            int main()
            {

                
            int n;
                
            int i,j;
                ofstream file;
                file.open(
            "test.txt");
                
            while(scanf("%d",&n))
                
            {
                    rightdot
            =-100000000;
                    leftdot
            =100000000;
                    topdot
            =1000000000;
                    bottomdot
            =-1000000000;
                    memset(mymap,
            ' ',sizeof(mymap));
                    
            if(n==-1)
                        
            break;
                    figure(
            1,1,n);
                    
            for(i=leftdot;i<=rightdot;i++)
                    
            {

                        
            for(j=topdot;j<=bottomdot;j++)
                            file
            <<mymap[i][j];
                        file
            <<endl;
                    }

                    file
            <<'-'<<endl;
                }

                file.close();
                
            return 0;
            }


            答案請見:/Files/abilitytao/test.txt

            posted @ 2009-03-27 23:44 abilitytao 閱讀(572) | 評論 (0)編輯 收藏

            POJ 1941-The Sierpinski Fractal 感悟遞歸之美^_^

            原題鏈接:http://162.105.81.212/JudgeOnline/problem?id=1941

            解題方法:剛開始拿到這道題,我的第一反應是要一行一行的輸出,不過做了幾分鐘之后發現:在題述意思下行與行之間似乎沒有規律可言;
            所以這種方法只能作罷;后來看了看discuss,有人提到用遞歸的方法來做這道題,這才恍然大悟:像種大問題嵌套類似之子問題的時候,遞歸不是最理想的方法么?
            開一個很大的二維矩陣(因為不知道N的最大值有多大,矩陣盡量開大一點可以避免越界),然后給出中間某個點的坐標,讓它成為整個圖形的坐下點坐標,然后遞歸得“畫出”三個子圖形(當然還要注意一下遞歸出口O(∩_∩)O~),即可;當然在不知道這個題目n的最大值時,我們可以每次畫圖后刷新一邊矩陣,不過為了優化速度,我只將n=10的圖形畫出,然后再由點與點之間的關系,求出各個參數的大小即可;
            最后輸出,這個沒什么可說的了。。。

            說句題外話,我交題的時候出現Access denied
            幸好過年的時候也遇到過同樣情況 用IP地址才可正常訪問 大家注意下:

            遇到Access denied的用戶請通過http://162.105.81.212訪問poj



            #include<iostream>
            #include
            <cmath>
            #include 
            <cstdlib>
            using namespace std;
            #define MAX 100000000
            #define MIN -100000000

            char mymap[5000][5000];

            int leftdot;
            int rightdot;
            int topdot;
            int bottomdot;

            void figure(int x,int y,int deep)
            {

                
            if(deep==1)
                
            {

                    mymap[x][y]
            ='/';
                    mymap[x][y
            +1]='_';
                    mymap[x][y
            +2]='_';
                    mymap[x][y
            +3]='\\';
                    mymap[x
            -1][y+1]='/';
                    mymap[x
            -1][y+2]='\\';
                }

                
            else
                
            {
                    
            int dis=(int)pow((double)2,deep);
                    figure(x,y,deep
            -1);
                    figure(x,y
            +dis,deep-1);
                    figure(x
            -dis/2,y+dis/2,deep-1);
                }

            }



            int main ()
            {

                
            int n;
                
            int i,j;
                leftdot
            =MAX;
                rightdot
            =MIN;
                topdot
            =MAX;
                bottomdot
            =MIN;
                memset(mymap,
            ' ',sizeof(mymap));
                figure(
            2500,2500,10);
                
                
            while(scanf("%d",&n))
                
            {

                    
            if(n==0)
                        
            break;

                    topdot
            =2500-(int)pow((double)2,10)+1;
                    bottomdot
            =topdot+(int)pow((double)2,n)-1;
                    leftdot
            =2500+(int)pow((double)2,10)-(int)pow((double)2,n);
                    rightdot
            =leftdot+(int)pow((double)2,n+1)-1;
                    
            for(i=topdot;i<=bottomdot;i++)
                    
            {

                        
            for(j=leftdot;j<=rightdot;j++)
                        
            {

                            printf(
            "%c",mymap[i][j]);
                        }

                        printf(
            "\n");
                    }

                    printf(
            "\n");
                    
                }

                
            return 0;
                system(
            "pause");
            }


            posted @ 2009-03-27 22:08 abilitytao 閱讀(2616) | 評論 (0)編輯 收藏

            注意一個細節

            #include<iostream>
            using namespace std;


            struct node {
                
            int a;
                
            char b;
            }
            ;

            int main ()
            {
                cout
            <<sizeof(node)<<endl;
                system(
            "pause");
                
            return 0;

            }

            這段代碼運行后 您認為應該輸出幾呢?
            上課的時候老師突然提出了這樣一個問題,當時我想都沒想 直接回答了 5。
            呵呵 答案當然是錯的 現在來運行一下這個程序 發現這個程序的結果是8;

             
            PS:感謝樓下兩位朋友的提問 讓問題變得更有意思了 內部原理究竟是怎樣的呢?希望知道的朋友能夠予以解答
            我在這里僅給出一些測試現象 
             struct node
            {
            };
            輸出為1

            struct node
            {
            char a;
            };
            輸出為1

            struct node
            {
            int a;
            double b;
            };
            輸出為16

            struct node
            {
            char a;
            char b;
            char c;
            char d;
            char e;
            }
            輸出為5

            posted @ 2009-03-26 00:10 abilitytao 閱讀(320) | 評論 (7)編輯 收藏

            POJ 2503 -Babelfish 再談字典查詢問題

            記得第一次做這個題目的時候 用了很復雜的c語言算法 代碼冗長 現在用類來做 代碼非常簡潔
            這個方法只有一個缺點 就是耗時比C風格的代碼大很多 所以建議參加ACM的同學還是盡量用C寫吧

            #include<iostream>
            #include
            <string>
            #include
            <map>
            #include
            <sstream>
            using namespace std;
            map
            <string,string>mymap;

            int main()
            {
                
            string line;
                
            string a;
                
            string b;
                
            while(getline(cin,line))
                
            {
                    
            if(line.length()==0)
                        
            break;
                    istringstream test(line);
                    test
            >>a>>b;
                    mymap[b]
            =a;
                }

                
            while(cin>>a)
                
            {
                    
            if(mymap[a].length()!=0)
                        cout
            <<mymap[a]<<endl;
                    
            else
                        cout
            <<"eh"<<endl;
                }

                
            return 0;
            }




            posted @ 2009-03-24 22:53 abilitytao 閱讀(526) | 評論 (0)編輯 收藏

            C++ 中庫函數bsearch的簡單研究(含示例)

            /*bsearch函數聲明如下:

            void *bsearch(const void *key, const void *base, size_t *nelem, 
                          size_t width, int(*fcmp)(const void *, const *)); 

            參數的意思和qsort的差不多,區別在于:
            1. qsort用來排序,bsearch用二分法來查找元素
            2. bsearch中的base必須是升序排列的數組!!!
            3. 如果數組里有重復的答案,則bsearch會返回其中一個的地址 (具體返回哪一個不確定)
            4. bsearch有五個自變量,第一個是要找的東西,剩下的跟qsort一模一樣
            5. bsearch如果沒找到所求則回傳NULL ,否則回傳該元素被找到的地址(void *) 
            */




            #include
            <iostream>
            #include
            <cstdlib>
            using namespace std;


            int compare(const void*a,const void *b)
            {
                
            return *((int*)a)-*((int*)b);
            }



            int main()

            {
                
            int a[100];
                
            int i;
                
            for(i=0;i<100;i++)
                    a[i]
            =i+1;
                i
            =50;
                
            int *result;
                result
            =(int*)bsearch((void*)&i,(void*)a,100,sizeof(a[0]),compare);
                cout
            <<i<<' '<<*result<<endl;
                system(
            "pause");
                
            return 0;
            }



            值得特別注意的是:函數的第一個元素是一個地址變量,而不是一個int型或者是float型的變量。

            posted @ 2009-03-24 11:27 abilitytao 閱讀(895) | 評論 (1)編輯 收藏

            C++標準庫簡介(轉)

            C++標準庫的所有頭文件都沒有擴展名。C++標準庫的內容總共在50個標準頭文件中定義,其中18個提供了C庫的功能。 <cname>形式的標準頭文件【 <complex>例外】其內容與ISO標準C包含的name.h頭文件相同,但容納了C++擴展的功能。在 <cname>形式標準的頭文件中,與宏相關的名稱在全局作用域中定義,其他名稱在std命名空間中聲明。在C++中還可以使用name.h形式的標準C庫頭文件名。

            C++標準庫的內容分為10類:

            C1.語言支持 C2.輸入/輸出 C3.診斷 C4.一般工具 C5.字符串

            C6.容器 C7.迭代器支持 C8.算法 C9.數值操作 C10.本地化


            C1 標準庫中與語言支持功能相關的頭文件 頭文件  描述 
            <cstddef> 定義宏NULL和offsetof,以及其他標準類型size_t和ptrdiff_t。與對應的標準C頭文件的區別是,NULL是C++空指針常量的補充定義,宏offsetof接受結構或者聯合類型參數,只要他們沒有成員指針類型的非靜態成員即可。
            <limits> 提供與基本數據類型相關的定義。例如,對于每個數值數據類型,它定義了可以表示出來的最大值和最小值以及二進制數字的位數。
            <climits> 提供與基本整數數據類型相關的C樣式定義。這些信息的C++樣式定義在 <limits>中
            <cfloat> 提供與基本浮點型數據類型相關的C樣式定義。這些信息的C++樣式定義在 <limits>中
            <cstdlib> 提供支持程序啟動和終止的宏和函數。這個頭文件還聲明了許多其他雜項函數,例如搜索和排序函數,從字符串轉換為數值等函數。它與對應的標準C頭文件stdlib.h不同,定義了abort(void)。abort()函數還有額外的功能,它不為靜態或自動對象調用析構函數,也不調用傳給atexit()函數的函數。它還定義了exit()函數的額外功能,可以釋放靜態對象,以注冊的逆序調用用atexit()注冊的函數。清除并關閉所有打開的C流,把控制權返回給主機環境。
            <new> 支持動態內存分配
            <typeinfo> 支持變量在運行期間的類型標識
            <exception> 支持異常處理,這是處理程序中可能發生的錯誤的一種方式
            <cstdarg> 支持接受數量可變的參數的函數。即在調用函數時,可以給函數傳送數量不等的數據項。它定義了宏va_arg、va_end、va_start以及va_list類型
            <csetjmp> 為C樣式的非本地跳躍提供函數。這些函數在C++中不常用
            <csignal> 為中斷處理提供C樣式支持

            C2 支持流輸入/輸出的頭文件 頭文件  描述 
            < iostream> 支持標準流cin、cout、cerr和clog的輸入和輸出,它還支持多字節字符標準流wcin、wcout、wcerr和wclog。
            <iomanip> 提供操縱程序,允許改變流的狀態,從而改變輸出的格式。
            <ios> 定義iostream的基類
            <istream> 為管理輸出流緩存區的輸入定義模板類
            <ostream> 為管理輸出流緩存區的輸出定義模板類
            <sstream> 支持字符串的流輸入輸出
            <fstream> 支持文件的流輸入輸出
            <iosfwd> 為輸入輸出對象提供向前的聲明
            <streambuf> 支持流輸入和輸出的緩存
            <cstdio> 為標準流提供C樣式的輸入和輸出
            <cwchar> 支持多字節字符的C樣式輸入輸出

            C3 與診斷功能相關的頭文件 頭文件 描述
            <stdexcept> 定義標準異常。異常是處理錯誤的方式
            <cassert> 定義斷言宏,用于檢查運行期間的情形
            <cerrno> 支持C樣式的錯誤信息

            C4 定義工具函數的頭文件 頭文件 描述
            <utility> 定義重載的關系運算符,簡化關系運算符的寫入,它還定義了pair類型,該類型是一種模板類型,可以存儲一對值。這些功能在庫的其他地方使用
            <functional> 定義了許多函數對象類型和支持函數對象的功能,函數對象是支持operator()()函數調用運算符的任意對象
            <memory> 給容器、管理內存的函數和auto_ptr模板類定義標準內存分配器
            <ctime> 支持系統時鐘函數

            C5 支持字符串處理的頭文件 頭文件 描述
            <string> 為字符串類型提供支持和定義,包括單字節字符串(由char組成)的string和多字節字符串(由wchar_t組成)
            <cctype> 單字節字符類別
            <cwctype> 多字節字符類別
            <cstring> 為處理非空字節序列和內存塊提供函數。這不同于對應的標準C庫頭文件,幾個C樣式字符串的一般C庫函數被返回值為const和非const的函數對替代了
            <cwchar> 為處理、執行I/O和轉換多字節字符序列提供函數,這不同于對應的標準C庫頭文件,幾個多字節C樣式字符串操作的一般C庫函數被返回值為const和非const的函數對替代了。
            <cstdlib> 為把單字節字符串轉換為數值、在多字節字符和多字節字符串之間轉換提供函數

            C6 定義容器類的模板的頭文件 頭文件 描述
            <vector> 定義vector序列模板,這是一個大小可以重新設置的數組類型,比普通數組更安全、更靈活
            <list> 定義list序列模板,這是一個序列的鏈表,常常在任意位置插入和刪除元素
            <deque> 定義deque序列模板,支持在開始和結尾的高效插入和刪除操作
            <queue> 為隊列(先進先出)數據結構定義序列適配器queue和priority_queue
            <stack> 為堆棧(后進先出)數據結構定義序列適配器stack
            <map> map是一個關聯容器類型,允許根據鍵值是唯一的,且按照升序存儲。multimap類似于map,但鍵不是唯一的。
            <set> set是一個關聯容器類型,用于以升序方式存儲唯一值。multiset類似于set,但是值不必是唯一的。
            <bitset> 為固定長度的位序列定義bitset模板,它可以看作固定長度的緊湊型bool數組

            C7 支持迭代器的頭文件 頭文件 描述
            <iterator> 給迭代器提供定義和支持

            C8 有關算法的頭文件 頭文件 描述
            <algorithm> 提供一組基于算法的函數,包括置換、排序、合并和搜索
            <cstdlib> 聲明C標準庫函數bsearch()和qsort(),進行搜索和排序
            <ciso646> 允許在代碼中使用and代替&&

            C9 有關數值操作的頭文件 頭文件 描述
            <complex> 支持復雜數值的定義和操作
            <valarray> 支持數值矢量的操作
            <numeric> 在數值序列上定義一組一般數學操作,例如accumulate和inner_product
            <cmath> 這是C數學庫,其中還附加了重載函數,以支持C++約定
            <cstdlib> 提供的函數可以提取整數的絕對值,對整數進行取余數操作

            C10 有關本地化的頭文件 頭文件 描述
            <locale> 提供的本地化包括字符類別、排序序列以及貨幣和日期表示。
            <clocale> 對本地化提供C樣式支持

             

            posted @ 2009-03-24 10:50 abilitytao 閱讀(11680) | 評論 (6)編輯 收藏

            istringstream類研究

            C++程序把輸入和輸出看作字符流,輸入時,程序從輸入流中提取字節,輸出時,程序把字節插入到輸出流中。對于輸入輸出流既可以來自標準輸入輸出設備,也可以來自文件,甚至可以來自String對象,三者分別屬于iostream family、fstream family、sstream family。
            對于iostream類,就是我們通常所說的標準流,它把程序跟標準I/O連接在一起,輸入來自鍵盤,輸出送往監視器。
            對于fstream類,它把程序跟文件關聯起來,輸入來自文件,輸出到文件。
            對于sstream類,它是提供程序和string對象之間的I/O,可通過ostringstream sout和istringstream sin來聲明兩個對象,分別對應輸出流和輸入流,這給編程帶來極大的方便,例如可以從文本文件中讀取一批數字字符到string對象中,再把string對象作為程序的輸入流,既可把從文件中讀取來的數字字符單個進行讀取,從而進行處理。

            以上內容為網上轉載,呵呵,原來iostream,fstream還有sstream呈三權分立之勢。

            #include<iostream>
            #include
            <fstream>
            #include
            <sstream>

            using namespace std;


            int main ()
            {
                
            char str[1000]="12 34.53 【O(∩_∩)O~(*^__^*)】 1234 12.12345678901234567890 #@$#@$#@$&*@#&#(!@#$";    
                istringstream test(str);
                
            //test="12 34.53 345342 34.123456789 【O(∩_∩)O~(*^__^*)】"
                int a;
                
            double b;
                
            char c[100];
                
            while(1)
                
            {
                    test
            >>a;
                    test
            >>b;
                    test
            >>c;
                }

            return 0;
            }



            以上程序在vc6.0上運行正常;
            值得一提的是,經過我的測試,我發現雖然sstream是純c++的東西,但是它也可以用char型數組進行初始化;
            而且輸入的數據默認情況下以空格為分隔符;
            輸入浮點類型的時候,最多只能取到小數點后15位,第15位會進行四舍五入;
            如果你的輸入格式和數據流格式不匹配,那么將導致程序完全運行錯誤,不過我很奇怪c++內部為什么不會報錯?
            只有一種情況例外
            對于一個浮點數 比如說123,456
            如果先以整數輸入,那么得到123
            再以浮點數輸入,得到0.456;

            小結:感覺istringstream和sscanf是同類型的函數,只不過一個屬于傳統的c語言而另一個屬于高級的c++;
            用它可以方便的分離字符串,并且可以在字符串長度未知的情況下進行操作,這是sscanf所無可比擬的。

            最后,要特別鳴謝的是張宏課上面的那位同學,多謝你的指點 :-)


            posted @ 2009-03-23 22:36 abilitytao 閱讀(4042) | 評論 (10)編輯 收藏

            Eight Queen Problem-淺究八皇后問題

                 摘要: 對Rss客戶端訂閱的朋友表示歉意。  閱讀全文

            posted @ 2009-03-23 21:58 abilitytao 閱讀(1770) | 評論 (1)編輯 收藏

            僅列出標題
            共42頁: First 33 34 35 36 37 38 39 40 41 Last 
            久久精品国产99国产精品澳门 | 亚洲欧美一区二区三区久久| A狠狠久久蜜臀婷色中文网| 亚洲伊人久久成综合人影院 | 国产精品久久国产精麻豆99网站| 色悠久久久久久久综合网| 91久久精品国产91性色也| 国产精品久久久久久福利69堂| 亚洲国产精品无码久久一区二区 | 狠狠色综合网站久久久久久久高清| 亚洲国产精品成人AV无码久久综合影院| 久久国产精品-国产精品| AAA级久久久精品无码片| 久久精品国产久精国产思思| 久久久久AV综合网成人| 久久成人国产精品| 99精品久久精品| 亚洲欧美精品伊人久久| 国产亚洲精午夜久久久久久| 久久精品无码av| 亚洲国产成人精品无码久久久久久综合 | 69国产成人综合久久精品| 99久久无色码中文字幕| 久久精品国产亚洲一区二区| 国产精品美女久久久久av爽| 久久久精品视频免费观看| 四虎久久影院| 久久久久久午夜成人影院| 亚洲国产精品久久66| 久久亚洲AV无码西西人体| 久久精品国产亚洲AV香蕉| 久久综合精品国产二区无码| 国产精品久久久久影院嫩草| 国产福利电影一区二区三区久久老子无码午夜伦不 | 久久精品国产日本波多野结衣| 久久99精品久久久久婷婷| 99精品久久久久久久婷婷| 久久婷婷五月综合97色直播| 久久免费线看线看| 亚洲色欲久久久久综合网| 2021精品国产综合久久|