亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? myapriori.cpp

?? 經(jīng)典的算法實(shí)例
?? CPP
字號(hào):
// MyApriori.cpp : 定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。
//

#include "stdafx.h"
#include "MyApriori.h"
#include "conio.h"
#include "stdlib.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// 唯一的應(yīng)用程序?qū)ο?
CWinApp theApp;

using namespace std;

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
	int nRetCode = 0;

	// 初始化 MFC 并在失敗時(shí)顯示錯(cuò)誤
	if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
	{
		// TODO: 更改錯(cuò)誤代碼以符合您的需要
		_tprintf(_T("致命錯(cuò)誤: MFC 初始化失敗\n"));
		nRetCode = 1;
	}
	else
	{
		// TODO: 在此處為應(yīng)用程序的行為編寫代碼。
		KeyTree *KT;
		ItemSet *IS,*preIS;
		char filename[30];
		double min_sup = 0.02;
		int Record_Count = 0,min_count;
		int k = 1;
		DWORD nStartTime,nEndTime,SumTime = 0;
		cout<<"輸入數(shù)據(jù)文件名:";
		cin>>filename;
		cout<<"輸入最小支持閾值min_sup:";
		cin>>min_sup;
		CString exstr1;
		exstr1 = "數(shù)據(jù)來源文件:";
		exstr1 += filename;
		exstr1 += "\r\n最小支持閾值:";
		exstr1.AppendFormat("%f\r\n\r\n",min_sup);
		nStartTime = GetTickCount();
		KT = ReadDataFromText(filename,&Record_Count);
		min_count = int(Record_Count*min_sup);
		IS = find_frequent_1_itemset(KT,min_count);   //實(shí)際是剪枝后生成鏈表
		nEndTime = GetTickCount();
		SumTime += nEndTime - nStartTime;
		PrintResult(IS,k,exstr1);
		while(IS != NULL)
		{
			k++;
			nStartTime = GetTickCount();
			preIS = apriori_gen(IS,k);
			if(preIS == NULL) break;
			IS = DeleteLink(IS);
			IS = find_frequent_k_itemset(KT,preIS,k,min_count);    //只是把preIS中的count字段作了更新并剪枝
			nEndTime = GetTickCount();
			SumTime += nEndTime - nStartTime;
			PrintResult(IS,k,exstr1);
		}
		IS = DeleteLink(IS);
		cout<<endl<<"My-Apriori算法運(yùn)行完畢,為您找到最高"<<k-1<<"-項(xiàng)集。"<<endl;
		cout<<"算法總耗時(shí):"<<SumTime<<"ms。"<<"按任意鍵結(jié)束!!!"<<endl;
		getch();
	}

	return nRetCode;
}

ItemSet* find_frequent_1_itemset(KeyTree* KT,int min_count)
{
	KT = SearchAndDelInTree(KT,min_count);//剪枝
	return GetDataLink(KT);    //生成鏈表
}

ItemSetLink* GetDataLink(KeyTree* KT)
{
	if(KT == NULL) return NULL;
	ItemSetLink* N;
	N = GetDataLink(KT->left);
	if(N == NULL){
		N = new ItemSetLink;
		N->datastr = KT->Key;
		N->count = KT->count;
		N->next = GetDataLink(KT->right);
	}
	else{
		ItemSetLink* tmpN = N;
		while(tmpN->next != NULL)    tmpN = tmpN->next;
		tmpN->next = new ItemSetLink;
		tmpN = tmpN->next;
		tmpN->datastr = KT->Key;
		tmpN->count = KT->count;
		tmpN->next = GetDataLink(KT->right);
	}
	return N;    //返回的是鏈表頭結(jié)點(diǎn)指針
}

KeyTree* SearchAndDelInTree(KeyTree* KT,int min_count)
{
	if(KT == NULL)    return KT;
	KT->left = SearchAndDelInTree(KT->left,min_count);
	KT->right = SearchAndDelInTree(KT->right,min_count);
	//刪除非頻繁節(jié)點(diǎn)
	if(KT->count < min_count)
	{
		KeyTree* TmpNode;
		if(KT->left && KT->right)   //兩個(gè)子樹
		{
			TmpNode = FindMin(KT->right);
			KT->Key = TmpNode->Key;
			KT->count = TmpNode->count;
			KT->IndexSet = TmpNode->IndexSet;
			KT->right = DeleteNode(KT->right,KT->Key);
		}
		else    //一棵或沒有子樹
		{
			TmpNode = KT;
			if(KT->left == NULL)
				KT = KT->right;
			else if(KT->right == NULL)
				KT = KT->left;
			delete TmpNode;
		}
	}
	return KT;
}

KeyTree* FindMin(KeyTree* KT)
{
	if(KT != NULL)
		while(KT->left != NULL)
			KT = KT->left;
	return KT;
}

KeyTree* DeleteNode(KeyTree* KT,CString str)
{
	KeyTree* TmpNode;
	if(KT == NULL)
		cout<<"Element not found!!!"<<endl;
	else if(str.CompareNoCase(KT->Key.GetBuffer()) < 0)
		KT->left = DeleteNode(KT->left,str);
	else if(str.CompareNoCase(KT->Key.GetBuffer()) > 0)
		KT->right = DeleteNode(KT->right,str);
	//找到了節(jié)點(diǎn)
	else if(KT->left && KT->right)  //兩個(gè)子樹
	{
		TmpNode = FindMin(KT->right);
		KT->Key = TmpNode->Key;
		KT->count = TmpNode->count;
		KT->IndexSet = TmpNode->IndexSet;
		KT->right = DeleteNode(KT->right,KT->Key);
	}
	else   //一棵或沒有子樹
	{
		TmpNode = KT;
		if(KT->left == NULL)
			KT = KT->right;
		else if(KT->right == NULL)
			KT = KT->left;
		delete TmpNode;
	}

	return KT;
}

KeyTree* ReadDataFromText(CString filename,int *count)
{
	CFile ftxt;
	KeyTree* KT = NULL;
	if(!ftxt.Open(filename,CFile::modeRead)){
		cout<<"無法打開數(shù)據(jù)文件";
		return NULL;
	}
	CString linestr;
	while((linestr = GetLine(&ftxt)) != "Wen_End")
	{
		(*count)++;
		if(!linestr.IsEmpty()){
			CString sw;
			int nStart = 0,nEnd;
			do{
				nEnd = linestr.Find(';',nStart);
				if(nEnd == -1)
					sw = linestr.Mid(nStart);
				else
					sw = linestr.Mid(nStart,nEnd - nStart);
				nStart = nEnd + 1;
				KT =UpdateKeyTree(KT,sw,*count);
			}while(nEnd != -1);
		}
	}
	ftxt.Close();
	return KT;
}

KeyTree* UpdateKeyTree(KeyTree* KT,CString sw,int count)
{
	if(KT == NULL){
		KT = new KeyTree;
		KT->Key = sw;
		KT->IndexSet.Format("%d",count);
		KT->count = 1;
		KT->left = KT->right = NULL;
	}
	else if(sw.CompareNoCase(KT->Key) < 0)
		KT->left = UpdateKeyTree(KT->left,sw,count);
	else if(sw.CompareNoCase(KT->Key) > 0)
		KT->right = UpdateKeyTree(KT->right,sw,count);
	else    //樹中已存在該關(guān)鍵詞
	{
		KT->IndexSet.AppendFormat(";%d",count);
		KT->count++;
	}
	return KT;
}

CString GetLine(CFile* const f)    //獲得文件中的一行字符
{
	UINT n=0,row=0;
	CString linestr;
	char buf;
	n=f->Read(&buf,1);
	if(n==0) return "Wen_End";   //已到文件尾
	do{
		if(buf=='\r'){
			n = f->Read(&buf,1);  //把'\n'讀出
			break;
		}
		linestr+=buf;
		n = f->Read(&buf,1);
	}while(n!=0);
	return linestr;
}

void PrintResult(ItemSet* IS,int k,CString exstr1)
{
	if(IS == NULL)  return;
	CString exstr;
	CFile fout;
	if(k == 1){  
		fout.Open("myapriori_output.txt",CFile::modeCreate|CFile::modeWrite);
		fout.Write(exstr1.GetBuffer(),exstr1.GetLength());
	}
	else{
		fout.Open("myapriori_output.txt",CFile::modeWrite);
		fout.SeekToEnd();
	}
	cout<<"頻繁"<<k<<"-項(xiàng)集:"<<endl;
	exstr.Format("頻繁%d-項(xiàng)集:\r\n",k);
	fout.Write(exstr,exstr.GetLength());
	while(IS != NULL){
		cout<<IS->datastr<<"  "<<IS->count<<endl;
		exstr.Format("%s  %d\r\n",IS->datastr.GetBuffer(),IS->count);
		fout.Write(exstr,exstr.GetLength());
		IS = IS->next;
	}
	cout<<endl;
	fout.Write("\r\n",2);
	fout.Close();
}

ItemSetLink* apriori_gen(ItemSet* IS,int k)
{
	ItemSetLink *preIS1 = IS,*preIS2;
	ItemSetLink *ISk,*ISkhead = NULL;
	while(preIS1)
	{
		preIS2 = preIS1->next;
		while(preIS2)
		{
			CString tmp;    //臨時(shí)存放候選節(jié)點(diǎn)
			tmp.Empty();
			if(k == 2)
				tmp = preIS1->datastr+ ';' + preIS2->datastr;
			else{    //注:各關(guān)鍵字集都是已經(jīng)按字母序排好序的
				int index1,index2;
				CString tmp1,tmp2;
				index1 = preIS1->datastr.ReverseFind(';');
				index2 = preIS2->datastr.ReverseFind(';');
				tmp1 = preIS1->datastr.Left(index1);
				tmp2 = preIS2->datastr.Left(index2);
				if(tmp1 == tmp2)
					tmp = tmp1 + preIS1->datastr.Mid(index1) + preIS2->datastr.Mid(index2);   //preIS1的子串排序在preIS2的子串前
			}
			if(!tmp.IsEmpty()){
				if(!has_infrequent_subset(tmp,IS))    //無非頻繁子集   tmp作為一個(gè)新結(jié)點(diǎn)的值插入候選鏈表中
					if(ISkhead == NULL){
						ISkhead = CreatePreItemSet(ISkhead,tmp,k);
						ISk = ISkhead;
					}
					else{
						ISk->next = CreatePreItemSet(ISk,tmp,k);    //直接從上一個(gè)節(jié)點(diǎn)開始插入新節(jié)點(diǎn),減少無謂的鏈表遍歷
						ISk = ISk->next;
					}
			}
			preIS2 = preIS2->next;
		}
		preIS1 = preIS1->next;
	}

	return ISkhead;
}

BOOL has_infrequent_subset(CString set,ItemSet* IS)
{
	int nStart = 0,nEnd;
	ItemSet* IShead = IS;
	CString subset;
	do{
		//把截出來的單詞去掉,得到k-1子集
		nEnd = set.Find(';',nStart);
		if(nStart == 0 && nEnd != -1)
			subset = set.Mid(nEnd+1);
		else if(nStart == 0 && nEnd == -1)
			subset = set;
		else if(nStart != 0 && nEnd == -1)
			subset = set.Left(nStart-1);
		else
			subset = set.Left(nStart)+set.Mid(nEnd+1);
		nStart = nEnd+1;
		//搜索該子集是否在k-1頻繁集中
		IS = IShead;
		while(IS)
		{
			if(subset.CompareNoCase(IS->datastr) == 0)
				break;
			IS = IS->next;
		}
		if(IS == NULL)
			return TRUE;    //有非頻繁子集
	}while(nEnd != -1);
	return FALSE;    //無非頻繁子集
}


ItemSetLink* CreatePreItemSet(ItemSetLink* preIS,CString str,int k)
{
	if(preIS == NULL){
		preIS = new ItemSetLink;
		preIS->datastr = str;
		preIS->count = 0;
		preIS->next = NULL;
		return preIS;
	}
//preIS->next為NULL
	preIS->next = new ItemSetLink;
	preIS = preIS->next;
	preIS->datastr = str;
	preIS->count = 0;
	preIS->next = NULL;
	return preIS;
}

ItemSet* find_frequent_k_itemset(KeyTree* KT,ItemSetLink* preIS,int k,int min_count)
{
	CString sw;
	ItemSet* IShead = preIS;
	CStringArray SA;
	SA.SetSize(k);
	while(preIS)    //對候選頻繁鏈表中的每個(gè)節(jié)點(diǎn)均進(jìn)行計(jì)數(shù)
	{
		int nStart = 0,nEnd;
		int n = 0;
		for(int i = 0; i < k; i++)
			SA[i].Empty();
		do{
			nEnd = preIS->datastr.Find(';',nStart);
			if(nEnd == -1)
				sw = preIS->datastr.Mid(nStart);
			else
				sw = preIS->datastr.Mid(nStart,nEnd - nStart);
			if(!sw.IsEmpty())
				SA.SetAt(n,FindInKeyTree(KT,sw));  //把找到的“關(guān)鍵字出現(xiàn)的記錄表”添加到鏈表中
			n++;
			nStart = nEnd + 1;
		}while(nEnd != -1);
		preIS->count = CountForKey(&SA,k);
		preIS = preIS->next;
	}
	IShead = Del_k_ItemSet(IShead,min_count);
	return IShead;
}

CString FindInKeyTree(KeyTree* KT,CString str)
{
	if(KT == NULL)
		return "";
	else if(str.CompareNoCase(KT->Key.GetBuffer()) < 0)
		return FindInKeyTree(KT->left,str);
	else if(str.CompareNoCase(KT->Key.GetBuffer()) > 0)
		return FindInKeyTree(KT->right,str);
	else    //找到了
		return KT->IndexSet;
}


int CountForKey(CStringArray* SA,int k)
{
	int count = 0;
	int *nValue = new int[k];    //記錄號(hào)
	int *nStart = new int[k];    //搜索起始下標(biāo)
	int *nEnd = new int[k];    //搜索到的下標(biāo)
	CString tmp;
	for(int i = 0; i < k; i++)
		nStart[i] = 0;  
	GetRecordNum(SA,nValue,nStart,nEnd,k);     //得到第一組記錄號(hào)

	while(1)
	{
		int mindex;
		mindex = MinnIndex(nValue,k);
		if(mindex == -1){    //各記錄號(hào)相等
			count++;
			if(SomeIsEnd(nStart,k))    //有記錄表已到達(dá)末尾
				break;
			//都讀下一個(gè)記錄號(hào)
			GetRecordNum(SA,nValue,nStart,nEnd,k);
		}
		else{
			//值最小者讀下一個(gè)記錄號(hào)
			if(nStart[mindex] == 0)    //值最小的串已經(jīng)到達(dá)末端
				break;
			tmp = SA->GetAt(mindex);
			nEnd[mindex] = tmp.Find(';',nStart[mindex]);
			if(nEnd[mindex] == -1)
				nValue[mindex] = atoi(tmp.Mid(nStart[mindex]).GetBuffer());
			else
				nValue[mindex] = atoi(tmp.Mid(nStart[mindex],nEnd[mindex] - nStart[mindex]).GetBuffer());
			nStart[mindex] = nEnd[mindex] + 1;
		}
	}
	delete nValue;
	delete nStart;
	delete nEnd;

	return count;
}

int MinnIndex(int nIndexArray[],int k)
{
	int mV = nIndexArray[0],mI = 0;
	BOOL equal = TRUE;
	for(int i = 1; i< k; i++){
		if(mV != nIndexArray[i]){
			equal = FALSE;
			mI = mV <= nIndexArray[i]? mI:i;
			mV = nIndexArray[mI];
		}
	}
	if(equal == TRUE)     //如果所有值相等,則返回-1
		mI = -1;
	return mI;
}

BOOL SomeIsEnd(int nStart[],int k)
{
	for(int i = 0; i < k; i++)
		if(nStart[i] == 0)
			return TRUE;
	return FALSE;
}

void GetRecordNum(CStringArray* SA,int nValue[],int nStart[],int nEnd[],int k)
{
	CString tmp;
	for(int i = 0;i < k;i++){    //得到SA各節(jié)點(diǎn)的下一個(gè)記錄號(hào)
		tmp = SA->GetAt(i);
		nEnd[i] = tmp.Find(';',nStart[i]);
		if(nEnd[i] == -1)
			nValue[i] = atoi(tmp.Mid(nStart[i]).GetBuffer());
		else
			nValue[i] = atoi(tmp.Mid(nStart[i],nEnd[i] - nStart[i]).GetBuffer());
		nStart[i] = nEnd[i] + 1;
	}
}

ItemSet* Del_k_ItemSet(ItemSet* IS,int min_count)
{
	ItemSet *tmpNode,*preNode,*IShead = IS;
	while(IS)
	{
		tmpNode = NULL;
		if(IS->count < min_count){    //刪除當(dāng)前節(jié)點(diǎn)
			if(IS == IShead){    //是頭節(jié)點(diǎn)
				tmpNode = IShead;
				IShead = IS->next;
				preNode = IShead;
			}
			else{
				tmpNode = IS;
				preNode->next = IS->next;
			}
		}
		else    //當(dāng)前節(jié)點(diǎn)保留
			preNode = IS;
		IS = IS->next;
		if(tmpNode)
			delete tmpNode;
	}
	return IShead;
}

ItemSetLink* DeleteLink(ItemSetLink* IS)
{
	ItemSetLink* dIS;
	while(IS)
	{
		dIS = IS;
		IS = IS->next;
		delete dIS;
	}
	return NULL;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看一区日韩| 国内精品伊人久久久久av一坑| 日韩午夜激情免费电影| 欧美性猛交xxxx黑人交| 91福利视频在线| 91在线观看地址| 色琪琪一区二区三区亚洲区| 91亚洲精华国产精华精华液| 99久久er热在这里只有精品15 | 久久久午夜电影| 精品久久久久久久久久久久久久久久久| 欧美日韩大陆一区二区| 91精品综合久久久久久| 日韩欧美www| 国产日产亚洲精品系列| 中文字幕亚洲区| 亚洲成人一区在线| 麻豆freexxxx性91精品| 国产91高潮流白浆在线麻豆| 91亚洲午夜精品久久久久久| 欧美撒尿777hd撒尿| 日韩精品一区二区在线| 久久久久久久久久久久久久久99 | 午夜精品123| 青青草成人在线观看| 精品一区在线看| 国产精品资源网站| 在线免费观看日本欧美| 91精品国产91久久久久久最新毛片| 欧美精品一区二区三区蜜桃 | 99精品视频一区二区| 欧美日韩在线三区| 久久久午夜电影| 一区二区三区鲁丝不卡| 精品一区二区免费视频| 成人动漫av在线| 日韩欧美资源站| 亚洲天堂中文字幕| 精品一区二区三区视频| 色婷婷综合五月| 欧美刺激脚交jootjob| 亚洲视频一区在线观看| 韩国欧美一区二区| 911国产精品| 亚洲品质自拍视频网站| 精品一区二区三区不卡| 欧美日韩亚洲综合一区 | 成人av电影在线观看| 91精品国产综合久久香蕉的特点 | 午夜国产精品影院在线观看| 粉嫩av一区二区三区在线播放 | 亚洲国产日韩一级| 国产盗摄精品一区二区三区在线| 欧美精三区欧美精三区| 1024亚洲合集| 国产成人精品亚洲777人妖| 91精品在线免费| 亚洲成人av中文| 91在线国产福利| 中文幕一区二区三区久久蜜桃| 麻豆一区二区三区| 7777精品伊人久久久大香线蕉 | 日本一不卡视频| 欧美日韩一区二区三区免费看| 中文字幕一区二区三区精华液| 黄色精品一二区| 精品国产91乱码一区二区三区| 日韩在线一区二区| 欧美三级三级三级| 夜夜爽夜夜爽精品视频| 色婷婷av一区二区三区大白胸| 国产精品久久久久永久免费观看 | 91精品久久久久久久99蜜桃| 午夜精品久久久久影视| 欧美视频日韩视频在线观看| 亚洲视频在线一区二区| 91亚洲精品乱码久久久久久蜜桃| 国产精品毛片久久久久久| 风间由美性色一区二区三区| 久久久久88色偷偷免费| 国产精品一区二区在线观看不卡| 日韩精品一区二区在线观看| 精品午夜久久福利影院| 久久久久久久综合色一本| 国产精品中文欧美| 中文字幕在线观看不卡视频| 91蝌蚪国产九色| 亚洲国产精品久久久久婷婷884 | 国产真实乱对白精彩久久| 精品国产一区二区三区久久影院| 精品一区二区三区不卡 | 欧美精品一级二级三级| 免费人成精品欧美精品| 久久综合久久99| 成人黄页毛片网站| 一区二区三区四区在线| 欧美丰满少妇xxxxx高潮对白| 蜜桃在线一区二区三区| 国产视频在线观看一区二区三区 | 亚洲精品五月天| 欧美另类z0zxhd电影| 精品一区二区在线视频| 国产精品成人午夜| 欧美精品第一页| 国产成人在线电影| 亚洲自拍都市欧美小说| 欧美成人国产一区二区| www.av亚洲| 日本aⅴ精品一区二区三区| 久久嫩草精品久久久精品一| 色综合天天综合在线视频| 视频一区二区三区中文字幕| 国产清纯白嫩初高生在线观看91| 91麻豆免费视频| 波多野结衣的一区二区三区| 亚洲观看高清完整版在线观看| 久久久国产一区二区三区四区小说 | 综合在线观看色| 日韩午夜激情av| 91福利小视频| 懂色av一区二区夜夜嗨| 日韩中文字幕不卡| 亚洲精品欧美在线| 国产欧美日韩卡一| 欧美一区二区福利视频| 色婷婷久久一区二区三区麻豆| 久久不见久久见免费视频1| 亚洲综合免费观看高清完整版在线 | 国产婷婷精品av在线| 欧美久久久久中文字幕| 一本色道a无线码一区v| 丁香桃色午夜亚洲一区二区三区| 日韩激情一区二区| 一区二区三区波多野结衣在线观看| 久久久蜜臀国产一区二区| 日韩欧美中文字幕一区| 91精品国产综合久久香蕉麻豆| 在线视频综合导航| 色综合久久综合网97色综合| 成人深夜在线观看| 国产精品综合在线视频| 国内精品国产成人| 精品在线视频一区| 久久er99精品| 美脚の诱脚舐め脚责91| 日本强好片久久久久久aaa| 亚洲资源在线观看| 亚洲自拍偷拍图区| 亚洲在线视频免费观看| 一区二区三区不卡在线观看| 亚洲永久免费av| 亚洲综合免费观看高清在线观看| 国产精品麻豆网站| 亚洲日本成人在线观看| 日韩伦理免费电影| 艳妇臀荡乳欲伦亚洲一区| 一区二区久久久久久| 亚洲国产精品综合小说图片区| 一区二区三区欧美久久| 亚洲二区在线观看| 美女精品一区二区| 国产精品99久久久| 99国产精品久久久| 色综合久久66| 欧美群妇大交群的观看方式| 欧美一区二区精品| 久久精品免视看| 国产精品乱码妇女bbbb| 亚洲美女免费视频| 日日夜夜免费精品| 国模冰冰炮一区二区| 成人综合婷婷国产精品久久蜜臀| 日本国产一区二区| 555夜色666亚洲国产免| 精品精品国产高清a毛片牛牛| 国产亚洲欧洲997久久综合 | 欧美不卡视频一区| 久久久噜噜噜久噜久久综合| 中文字幕制服丝袜成人av| 亚洲一区在线观看免费观看电影高清| 亚洲h动漫在线| 国产a久久麻豆| 欧美日韩国产中文| 久久精品亚洲精品国产欧美| 亚洲精品免费看| 国产一区二区三区最好精华液| 成人av免费网站| 欧美一区二区三区免费观看视频| 国产清纯白嫩初高生在线观看91| 一区二区成人在线观看| 国产真实乱子伦精品视频| 91久久线看在观草草青青| 精品国产乱码久久久久久久 | 欧美亚洲综合在线| 久久综合999| 图片区小说区区亚洲影院| 成人午夜视频网站| 日韩视频免费直播| 一区二区三国产精华液| 成人综合日日夜夜|