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

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

?? jz.cpp

?? 距陣算法C++編寫的lib庫
?? CPP
字號:
// jz.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "mjz.h"
#include <stdio.h>
#include <math.h>
//#include "stdafx.h"
#include <string.h>
#include "mjz.h"

Mjz::Mjz(int m,int n)
{
	double *M;
	if(m>JZMax)	row=JZMax;else	row=m;
	if(n>JZMax)	col=JZMax;else	col=n;
	size=row*col;
	M=new double[size];
	pHead=M;
	int i,j;
	for (i=0;i<row;i++)
		for (j=0;j<col;j++)
			*M++=0.0;
}
Mjz::Mjz(int m)
{
	double *M;
	if(m>JZMax)	row=JZMax;else	row=m;
	col=row;
	size=row*col;
	M=new double[size];
	pHead=M;
	int i,j;
	for (i=0;i<row;i++)
		for (j=0;j<col;j++)
			*M++=0.0;
}

bool Mjz::SetAt(int n,double data)
{
	//if (IsIn(n))
	//{
		int i=0;
		double *M;
		M=pHead;
		while(i++ < n) M++;
		*M=data;
		return true;
	//}
	//return false;
}
bool Mjz::SetAt(int m,int n,double data)
{
	//if (IsIn(n))
	//{
		int i=0,mn;
		double *M;
		M=pHead;
		mn=m*row+n;
		while(i++ < mn) M++;
		*M=data;
		return true;
	//}
	//return false;
}

bool Mjz::GetAt(int n,double &data)
{
	//if (IsIn(n))
	//{
		int i=0;
		double *M;
		M=pHead;
		while(i++ < n) M++;
		data=*M;
		return true;
	//}
	//return false;
}
bool Mjz::GetAt(int m,int n,double &data)
{
	//if (IsIn(n))
	//{
		int i=0,mn;
		double *M;
		M=pHead;
		mn=m*row+n;
		while(i++ < mn) M++;
		data=*M;
		return true;
	//}
	//return false;
}
double Mjz::GetAt(int n)
{
	//if (IsIn(n))
	//{
		int i=0;
		double *M;
		M=pHead;
		while(i++ < n) M++;
		return *M;
	//}
	//return RetErr;
}
double Mjz::GetAt(int m,int n)
{
	//if (IsIn(n))
	//{
		int i=0,mn;
		double *M;
		M=pHead;
		mn=m*row+n;
		while(i++ < mn) M++;
		return *M;
	//}
	//return RetErr;
}
void Mjz::I()
{
	double *M;
	int i,j;
	size=row*row;
	M=new double[size];
	pHead=M;
	for (i=0;i<row;i++)
		for (j=0;j<row;j++)
			if(i==j)
				*M++=1.0;
			else
				*M++=0.0;
}

void Mjz::I(int m)
{
	double *M;
	if(m>JZMax)	row=JZMax;else	row=m;
	col=row;
	size=row*row;
	M=new double[size];
	pHead=M;
	int i,j;
	for (i=0;i<row;i++)
		for (j=0;j<col;j++)
			if(i==j)
				*M++=1.0;
			else
				*M++=0.0;
}
void Mjz::free()
{
	//M=pHead;
	try {
		if (pHead)
		{
		delete((double*)pHead);
		row=0;
		col=0;
		size=0;
		pHead=NULL;
		}
		//delete this;
	} catch (...) {
		;
	}
	
}

bool Mjz:: ReadTextFile(char* filename)
{
	FILE *f;
	if((f=fopen(filename,"r"))==NULL) {printf("\nErr:ReadFile[%s]",filename);return false;}
	int H,L,i,j;
	double data;
	fscanf(f,"%i %i",&H,&L);
	if (H>JZMax)H=JZMax;
	if (L>JZMax)L=JZMax;
	printf("H=%i,L=%i",H,L);
//	Mjz jz(H,L);
	if(H>JZMax)	row=JZMax;else	row=H;
	if(L>JZMax)	col=JZMax;else	col=L;
	size=row*col;
	pHead=new double[size];
	////
	for(i=0;i<H;i++)
		for(j=0;j<L;j++)
		{
			fscanf(f,"%lf",&data);
			SetAt(i*H+j,data);
		//	printf("H=%.3f",data);
		};
//	*this=jz;
	fclose(f);
	return true;
}
bool Mjz:: WriteTextFile(char* filename)
{
	FILE *f;
	if((f=fopen(filename,"w+"))==NULL) return false;
	int i,j;
	double data;
	fprintf(f,"%i %i\n",row,col);
	for(i=0;i<row;i++)
	{
		fprintf(f,"%s\n","");
		for(j=0;j<col;j++)
		{
			data=GetAt(i*row+j);
			fprintf(f,"%10.3lf",data);
		//	printf("H=%.3f",data);
		}
	}
	fclose(f);
	return true;
}

const Mjz& Mjz ::operator=(double x)
{
	int i,j;
	for (i=0;i<row;i++)
		for (j=0;j<col;j++)
			SetAt(i*row+j,x);
	return (Mjz) *this;
}

const Mjz& Mjz ::operator=(Mjz MjzSrc)
{
	int n,i,j;
	double data;
	Mjz M=Mjz(MjzSrc.row,MjzSrc.col);
	for (i=0;i<row;i++)
		for (j=0;j<col;j++)
		{
			n=i*row+j;
			data=MjzSrc.GetAt(n);
			M.SetAt(n,data);
		}
return M;
}
const Mjz& Mjz ::Set(double M[][DefCol])
{
	int n,i,j;
	double data;
	//Mjz(MjzSrc.row,MjzSrc.col);
	for (i=0;i<row;i++)
		for (j=0;j<col;j++)
		{
			n=i*row+j;
			data=M[i][j];
			SetAt(n,data);
		}
return (Mjz) *this;
}
const Mjz& Mjz ::operator+(double A)
{
	Mjz Mjzb(row,col);
	int n,i,j;
	double data;
	for (i=0;i<row;i++)
		for (j=0;j<col;j++)
		{
			n=i*row+j;
			data=GetAt(n)+A;
			Mjzb.SetAt(n,data);
		}

return Mjzb;
}
const Mjz& Mjz ::operator+(Mjz MjzSrc)
{
Mjz Mjzb(row,col);
if(RowColEq(MjzSrc))
{
	int n,i,j;
	double data;
	for (i=0;i<row;i++)
		for (j=0;j<col;j++)
		{
			n=i*row+j;
			data=GetAt(n)+MjzSrc.GetAt(n);
			Mjzb.SetAt(n,data);
		}
}
return Mjzb;
}
const Mjz& Mjz ::operator-(double A)
{
	Mjz Mjzb(row,col);
	int n,i,j;
	double data;
	for (i=0;i<row;i++)
		for (j=0;j<col;j++)
		{
			n=i*row+j;
			data=GetAt(n)-A;
			Mjzb.SetAt(n,data);
		}

return Mjzb;
}
const Mjz& Mjz ::operator-(Mjz MjzSrc)
{
Mjz Mjzb(row,col);
if(RowColEq(MjzSrc))
{
	int n,i,j;
	double data;
	for (i=0;i<row;i++)
		for (j=0;j<col;j++)
		{
			n=i*row+j;
			data=GetAt(n)-MjzSrc.GetAt(n);
			Mjzb.SetAt(n,data);
		}
}
return Mjzb;
}
const Mjz& Mjz ::operator*(double A)
{
	Mjz Mjzb(row,col);
	int n,i,j;
	double data;
	for (i=0;i<row;i++)
		for (j=0;j<col;j++)
		{
			n=i*row+j;
			data=GetAt(n)*A;
			Mjzb.SetAt(n,data);
		}
return Mjzb;
}

const Mjz& Mjz ::operator*(Mjz MjzSrc)
{
Mjz Mjzb(row,MjzSrc.col);
if(ColEq(MjzSrc))
{
	int n,al,bl,i,j,l,COL,Col;
	double A,B,data;
	COL=col;
	Col=MjzSrc.col;
    for (i=0;i<row;i++)
	  for (j=0;j<Col;j++)
	  {
		   data=0.0;
			for (l=0;l<COL;l++)
			{
				al=i*row+l;
				bl=l*row+j;
				A=GetAt(al);
				B=MjzSrc.GetAt(bl);
				data+=A*B;
			}
			n=i*row+j;
			Mjzb.SetAt(n,data);
	  }
}
//return (Mjz) *this;
return Mjzb;
}

const Mjz& Mjz ::operator/(double A)
{
	int n,i,j;
	double data;
	Mjz Mjzb(row,col);
	for (i=0;i<row;i++)
		for (j=0;j<col;j++)
		{
			n=i*row+j;
			data=GetAt(n)/A;
			Mjzb.SetAt(n,data);
		}
return Mjzb;
}

bool Mjz::RowEq (int n,Mjz MjzSrc)
{
	if(!ColEq(MjzSrc)) return false;
	int i,j;
	for(i=0;i<col;i++)
	{
		j=n*row+i;
		if (GetAt(j)!=MjzSrc.GetAt(j)) return false;
	}
	return true;
}
bool Mjz::RowEq (int n,double x)
{
	int i;
	double d;
	for(i=0;i<col;i++)
	{
		d=GetAt(n*row+i);
		printf("\nGetAt(%i,%i)=%.3f",n,i,d);
		if (d!=x) return false;
	}
	printf("\nGetAt==1");
	return true;
}
bool Mjz::ColEq (int n,double x)
{
	int i;
	for(i=0;i<row;i++)
		if (GetAt(i*row+n)!=x) return false;
	return true;
}
bool Mjz::ColEq (int n,Mjz MjzSrc)
{
	if(!RowEq(MjzSrc)) return false;
	int i,j;
	for(i=0;i<row;i++)
	{
		j=i*row+n;
		if (GetAt(j)!=MjzSrc.GetAt(j)) return false;
	}
	return true;
}
bool Mjz:: operator== (Mjz MjzSrc)
{
	if(!RowColEq(MjzSrc)) return false;
	int i,j,k;
	for(i=0;i<row;i++)
		for(j=0;j<col;j++)
		{
			k=i*row+j;
			if(GetAt(k)!=MjzSrc.GetAt(k)) return false;
		}

	return true;
}
bool Mjz:: operator!= (Mjz MjzSrc)
{
	if(!RowColEq(MjzSrc)) return true;
	int i,j,k;
	for(i=0;i<row;i++)
		for(j=0;j<col;j++)
		{
			k=i*row+j;
			if(GetAt(k)!=MjzSrc.GetAt(k)) return true;
		}

	return false;
}

void Mjz:: print(FILE *f)
{
	int i,j;
	fprintf(f,"\n***M[][]=");
	for (i=0;i<row;i++)
	{
		fprintf(f,"\nRow[%3i]:",i);
		for (j=0;j<col;j++)
		fprintf(f," %.3f",GetAt(i*row+j));
	}
	fprintf(f,"\n_______________");
}
//////////////////////Basic BH
void Mjz:: print(char *msg)
{
	int i,j;
	#ifdef _ads_h
		ads_printf("\n%s",msg);
	#else 
		printf("\n%s",msg);
	#endif
	#ifdef _ads_h
		ads_printf("\n***M[][]=");
	#else 
		printf("\n***M[][]=");
	#endif
	for (i=0;i<row;i++)
	{
		#ifdef _ads_h
			ads_printf("\nRow[%3i]:",i);
		#else 
			printf("\nRow[%3i]:",i);
		#endif
		for (j=0;j<col;j++)
			#ifdef _ads_h
				ads_printf(" %.3f",GetAt(i*row+j));
			#else 
				printf(" %.3f",GetAt(i*row+j));
			#endif
	}
	#ifdef _ads_h
			ads_printf("\n_______________");
	#else
			printf("\n_______________");
	#endif
}
int Mjz ::RowJH(int nn,int mm)
{
	if(nn==mm)return 1;
	int n,m;
	if(nn<0) n=0;else n=nn;
	if(mm<0) m=0;else m=mm;
	if(nn>=col) n=col-1;else n=nn;
	if(mm>=col) m=col-1;else m=mm;

	double tmp;
	int l,i,j;
	for(l=0;l<col;l++)
	{
		i=n*row+l;
		j=m*row+l;
		tmp=GetAt(j);
		SetAt(j,GetAt(i));
		SetAt(i,tmp);

	}
	return -1;
}
int Mjz ::ColJH(int nn,int mm)
{
	if(nn==mm)return 1;
	int n,m;
	if(nn<0) n=0;else n=nn;
	if(mm<0) m=0;else m=mm;
	if(nn>=col) n=col-1;else n=nn;
	if(mm>=col) m=col-1;else m=mm;

	double tmp;
	int h,i,j;
	for(h=0;h<row;h++)
	{
		i=h*row+n;
		j=h*row+m;
		tmp=GetAt(j);
		SetAt(j,GetAt(i));
		SetAt(i,tmp);

	}
	return -1;
}

double Mjz::RowMul(int nn,double x)
{
	if(x==0.0)return 1.0;
	int n;
	if(nn<0) n=0;else n=nn;
	if(nn>=row) n=row-1;else n=nn;
	
	double tmp;
	int h,i;
	for(h=0;h<col;h++)
	{
		i=n*row+h;
		tmp=GetAt(i)*x;
		SetAt(i,tmp);

	}
	return x;
}
double Mjz::ColMul(int nn,double x)
{
	if(x==0.0)return 1.0;
	int n;
	if(nn<0) n=0;else n=nn;
	if(nn>=col) n=col-1;else n=nn;
	
	double tmp;
	int h,i;
	for(h=0;h<row;h++)
	{
		i=h*row+n;
		tmp=GetAt(i)*x;
		SetAt(i,tmp);

	}
	return x;
}
void Mjz::RowAdd(int on,int sn,double x)///Row(o)=Row(o)+Row(s)*x;
{
	if((x==0.0) || (on==sn))return;
	int o,s;
	if(on<0) o=0;else o=on;
	if(sn<0) s=0;else s=sn;
	if(on>=row) o=row-1;else o=on;
	if(sn>=row) s=row-1;else s=sn;
	
	double tmp;
	int h,i,j;
	for(h=0;h<col;h++)
	{
		i=o*row+h;
		j=s*row+h;
		tmp=GetAt(i)+GetAt(j)*x;
		SetAt(i,tmp);
	}
}
void Mjz::ColAdd(int on,int sn,double x)///Row(o)=Row(o)+Row(s)*x;
{
	if((x==0.0) || (on==sn))return;
	int o,s;
	if(on<0) o=0;else o=on;
	if(sn<0) s=0;else s=sn;
	if(on>=row) o=col-1;else o=on;
	if(sn>=row) s=col-1;else s=sn;
	
	double tmp;
	int h,i,j;
	for(h=0;h<row;h++)
	{
		i=h*row+o;
		j=h*row+s;
		tmp=GetAt(i)+GetAt(j)*x;
		SetAt(i,tmp);
	}
}
/////////////////////
double Mjz::HLS()
{
	double x=1.0,A,B;
	Mjz M;
	M=*this;
	int i,j,k,a,b;
	for(i=0;i<row;i++)
	  {
		a=i*row+i;//M[i,i]
		A=M.GetAt(a);
		if(A==0.0)
		{
			k=i;
			while((A==0.0) && (k++<row))
			{
				a=k*row+i;//M[i,i]
				A=M.GetAt(a);
			}
			if((A==0.0) && (k>=row)) return 0.0;
			M.RowJH(i,k);
			x*=-1.0;
		}
		for(j=i+1;j<row;j++)
		{
			b=j*row+i;
			B=M.GetAt(b);
			if(B!=0.0)
			{
			B/=A;
			M.RowSub(j,i,B);
			}
		}
	x*=A;
	}
	return x;
}
void Mjz::HLS(FILE *f)
{
	char s[100];
	double x=1.0,A,B;
	Mjz M(row,col);
	M=*this;
	int i,j,k,a,b;
	strcpy(s,"");
	fprintf(f,"\n***Sore=");
	M.print(f);
	fprintf(f,"\n***HLS Program***");
	for(i=0;i<row;i++)
	  {
		a=i*row+i;//M[i,i]
		A=M.GetAt(a);
		if(A==0.0)
		{
			k=i;
			while((A==0.0) && (k++<row))
			{
				a=k*row+i;//M[i,i]
				A=M.GetAt(a);
			}
			if((A==0.0) && (k>=row)) return;
			fprintf(f,"\nRow[%i]<-->Row[%i]:",i,k);
			M.RowJH(i,k);
			M.print(f);
			x*=-1.0;
			if (!strcmp(s,""))
				sprintf(s,"%.1f",x);
			else
				sprintf(s,"%s*-1.0",s);

		}
		for(j=i+1;j<row;j++)
		{
			b=j*row+i;
			B=M.GetAt(b);
			if(B!=0.0)
			{
			B/=A;
			printf("\nM[%i][%i]=M[%i][%i](%.3f) - M[%i][%i] (%.3f) * %.3f ",j,i,j,i,B,i,i,A,B);
			M.RowSub(j,i,B);
			M.print(f);
			}
		}
	x*=A;
	if (!strcmp(s,""))
		sprintf(s,"%.1f*%.1f",x,A);
	else
		sprintf(s,"%s*%.1f",s,A);

	}
	fprintf(f,"\nHLS=%s=%.3lf",s,x);	
}
int Mjz::R()
{
	int r;
	double A,B;
	Mjz M(row,col);
	M=*this;
	int i,j,k,a,b;
	for(i=0;i<row;i++)
	  {
		a=i*row+i;//M[i,i]
		A=M.GetAt(a);
		if(A==0.0)
		{
			k=i;
			while((A==0.0) && (k++<row))
			{
				a=k*row+i;//M[i,i]
				A=M.GetAt(a);
			}
			//if((A==0.0) && (k>=row)) return 0;
			M.RowJH(i,k);
			//x*=-1.0;
		}
		for(j=i+1;j<row;j++)
		{
			b=j*row+i;
			B=M.GetAt(b);
			if(B!=0.0)
			{
			B/=A;
			M.RowSub(j,i,B);
			}
		}
	//x*=A;
	}
	M.print();
	int rH=0,rL=0;
	for(i=0;i<row;i++)
	{
		printf("\nH[%i]==%i",i,M.RowEq(i,0));
		if(!M.RowEq(i,0.0)) rH+=1;
	}
	for(i=0;i<col;i++)
	{
		printf("\nL[%i]==%i",i,M.ColEq(i,0));
		if(!M.ColEq(i,0)) rL+=1;
	}

	printf("\nH=%i",row);
	printf("\nL=%i",col);
	printf("\nrH=%i",rH);
	printf("\nrL=%i",rL);
	r=min(rH,rL);
	rH=min(row,col);
	if(r>rH) r=rH;
	return r;
}
double Mjz::YZS(int H,int L)
{
	int i,j,ii,jj,ki,kj,Row,Col;
	Row=row-1;
	Col=col-1;
	Mjz M(Row,Col);
	for(i=0;i<row;i++)
	{
		ki=i;
		ii=i;
		if(i>H) ii=i-1;
		if(i>0 && i==H) ki=i-1;
		for(j=0;j<col;j++)
		{
			if(i!=H || j!=L)
			{
				kj=j;
				if(j>0 && j==L) kj=j-1;
				if(j<L) jj=j;
				if(j>L) jj=j-1;
				M.SetAt(ii*Row+jj,GetAt(ki*row+kj));
			}
		}
	}
		//printf("\nM[%i][%i]=",H,L);
		//M.print();
	//return 0;
	return M.HLS();
}
const Mjz& Mjz::T()
{
	int i,j;
	Mjz M(col,row);

	for(i=0;i<col;i++)
		for(j=0;j<row;j++)
		{
			M.SetAt(i*col+j,GetAt(j*row+i));
		}
	return M;
}
const Mjz& Mjz::N()
{
	
	int i,j;
	//Mjz MN(row,col);
	Mjz MN(row);
	double D=HLS();
	if(row!=col || D!=0) return MN=0.0;
	for(i=0;i<row;i++)
		for(j=0;j<col;j++)
		{
			MN.SetAt(i*row+j,Aij(j,i));
		}
		//MN.print();
	return MN/D;
}
const Mjz& Mjz::NZ()
{
	double x=1.0,A,B;
	int i,j,k,a,b;
	Mjz M(row);
	Mjz E(row);
	if(row!=col) return M=0.0;
	E.I(row);
	E.print();
	
	M=*this;
	/////Up sjx
	for(i=0;i<row;i++)
	  {
		a=i*row+i;//M[i,i]
		A=M.GetAt(a);
		if(A==0.0)
		{
			k=i;
			while((A==0.0) && (k++<row))
			{
				a=k*row+i;//M[i,i]
				A=M.GetAt(a);
			}
			if((A==0.0) && (k>=row)) return E=0.0;
			M.RowJH(i,k);
			E.RowJH(i,k);
			//x*=-1.0;
		}
		///M[i][i]=1
		M.RowDiv(i,A);
		E.RowDiv(i,A);
		for(j=i+1;j<row;j++)
		{
			b=j*row+i;
			B=M.GetAt(b);
			if(B!=0.0)
			{
			//B/=A;
			M.RowSub(j,i,B);
			E.RowSub(j,i,B);
			}
		}
	//x*=A;
	}
	/////////M[i][i]=1
	for(i=row-1;i>=0;i--)//col
	  {
		a=i*row+i;//M[i,i]
		A=M.GetAt(a);
		///M[i][i]=1
		for(j=i-1;j>=0;j--)//row
		{
			b=j*row+i;
			B=M.GetAt(b);
			if(B!=0.0)
			{
			//B/=A;
			M.RowSub(j,i,B);
			E.RowSub(j,i,B);
			}
		}
	//x*=A;
	}
	//////////////////
	return E;
}
///////////////////////////////Gol


/////////////////////////////////
int main(int argc, char* argv[])
{
	printf("Hello World!\n");
	Mjz jz;
	jz.ReadTextFile("c:\\jz.txt");
	jz.print("I");
	printf("HLS=%lf",jz.HLS());
	jz.print("I");
	return 0;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩免费观看一区二区三区 | 一本色道亚洲精品aⅴ| 亚洲综合色噜噜狠狠| 精品精品欲导航| 色婷婷综合久色| 国产河南妇女毛片精品久久久| 一区二区三区在线观看网站| 久久你懂得1024| 欧美人成免费网站| 成人av在线影院| 国产在线精品不卡| 日韩精品一级中文字幕精品视频免费观看 | 奇米精品一区二区三区四区| 粉嫩蜜臀av国产精品网站| 亚洲成人动漫在线免费观看| 国产精品美女久久久久久| 欧美变态tickle挠乳网站| 日本精品一区二区三区高清| 成人一二三区视频| 国产一区二区看久久| 另类专区欧美蜜桃臀第一页| 亚洲电影在线免费观看| 成人免费一区二区三区视频 | 成人免费小视频| 久久久99精品免费观看| 日韩视频一区二区三区在线播放 | a级精品国产片在线观看| 狠狠网亚洲精品| 毛片av一区二区三区| 午夜视频在线观看一区二区| 一二三区精品福利视频| 亚洲人成影院在线观看| 国产精品免费视频观看| 中文字幕第一页久久| 国产亚洲欧美激情| 久久久久久久久97黄色工厂| 久久综合av免费| 久久蜜桃香蕉精品一区二区三区| 日韩欧美国产麻豆| 欧美电影免费观看高清完整版 | 97国产一区二区| 成人a免费在线看| 成人黄色小视频| 不卡一区二区在线| 94-欧美-setu| 色老汉av一区二区三区| 欧美性受xxxx黑人xyx| 欧美日韩免费在线视频| 日韩一区二区三区四区| 日韩美一区二区三区| 欧美不卡一区二区三区| 久久综合中文字幕| 欧美激情中文不卡| 亚洲人成亚洲人成在线观看图片| 中文字幕一区二区日韩精品绯色| 中文字幕一区二区不卡| 亚洲一区二区三区爽爽爽爽爽| 香蕉加勒比综合久久| 男人的天堂亚洲一区| 国内精品免费在线观看| 国产成人高清视频| 色婷婷久久久久swag精品 | 色偷偷88欧美精品久久久| 欧美无砖专区一中文字| 日韩一区二区在线免费观看| 久久久亚洲高清| 国产精品免费视频观看| 亚洲成人激情综合网| 精品一区二区av| 成人av片在线观看| 欧美在线免费观看视频| 日韩欧美一级精品久久| 国产日韩欧美精品一区| 亚洲女同女同女同女同女同69| 亚洲精品久久7777| 日韩精品一级中文字幕精品视频免费观看 | 国产一区二区91| 一本色道久久综合亚洲精品按摩| 欧美日韩三级在线| 久久久精品天堂| 亚洲永久精品大片| 裸体一区二区三区| 91在线播放网址| 日韩欧美一级二级| 亚洲三级电影网站| 久久99国产精品成人| 91在线观看污| 欧美成人三级电影在线| 亚洲品质自拍视频| 国产又粗又猛又爽又黄91精品| 色网综合在线观看| 免费成人在线网站| 99久久伊人网影院| 欧美sm极限捆绑bd| 亚洲自拍偷拍图区| 国产精品一区二区91| 欧美日韩国产在线观看| 中文字幕欧美日本乱码一线二线| 亚洲3atv精品一区二区三区| 丁香啪啪综合成人亚洲小说| 欧美一区二区三区公司| 亚洲欧美aⅴ...| 国产福利精品导航| 欧美一区二区视频在线观看2022| 亚洲欧美在线另类| 国产久卡久卡久卡久卡视频精品| 欧美日韩亚洲综合| 亚洲欧洲日本在线| 国产伦理精品不卡| 欧美一区二区在线免费播放| 一级精品视频在线观看宜春院| 国产91丝袜在线18| 精品播放一区二区| 日本v片在线高清不卡在线观看| 91麻豆免费观看| 中文字幕第一区第二区| 黄色日韩三级电影| 欧美第一区第二区| 三级亚洲高清视频| 欧美日本韩国一区| 亚洲一区二区不卡免费| 91无套直看片红桃| 亚洲欧美在线aaa| 大尺度一区二区| 久久久综合精品| 国产伦精一区二区三区| 久久只精品国产| 激情国产一区二区| 精品三级在线观看| 毛片av中文字幕一区二区| 亚洲永久免费视频| 日本精品一级二级| 亚洲激情图片小说视频| 97久久超碰精品国产| 亚洲欧美影音先锋| 一本到三区不卡视频| 亚洲欧美国产77777| 99精品久久只有精品| 国产精品免费久久久久| av在线不卡电影| 综合色中文字幕| 在线视频一区二区三| 亚洲国产精品自拍| 欧美电影在线免费观看| 日韩电影一区二区三区| 欧美一区二区在线不卡| 精品一区二区三区免费播放| 亚洲精品在线一区二区| 国产精品综合二区| 国产精品国产三级国产普通话99 | 欧美乱妇23p| 奇米一区二区三区av| 日韩精品一区二区三区老鸭窝 | 亚洲一区影音先锋| 欧美日韩一级大片网址| 日本午夜一区二区| 精品少妇一区二区三区免费观看| 狠狠色丁香久久婷婷综合丁香| 久久奇米777| 91浏览器打开| 视频一区中文字幕国产| 精品国产伦一区二区三区观看体验| 国产一区二区中文字幕| 中文字幕亚洲在| 欧美日韩小视频| 极品少妇一区二区三区精品视频| 国产亚洲成av人在线观看导航| 不卡在线视频中文字幕| 亚洲高清免费观看| 精品国产成人在线影院| 不卡高清视频专区| 一区二区高清视频在线观看| 欧美一区二区在线观看| 国产.欧美.日韩| 亚洲成国产人片在线观看| 精品国产一区二区三区不卡 | 欧美人与禽zozo性伦| 国产精品自拍毛片| 亚洲美女视频在线观看| 日韩欧美激情在线| 97久久久精品综合88久久| 青青草精品视频| 1区2区3区欧美| 欧美电影精品一区二区| 一本大道久久a久久精品综合| 欧美aa在线视频| 亚洲精品久久久久久国产精华液| 日韩精品一区二区三区在线观看| 91在线精品一区二区三区| 久久精品国产亚洲高清剧情介绍| 国产精品人人做人人爽人人添| 欧美日韩国产免费| 北条麻妃国产九九精品视频| 日本女优在线视频一区二区| 国产精品久久久久久久久久免费看 | 欧洲人成人精品| 国产剧情一区二区| 日本欧美肥老太交大片| 亚洲另类一区二区| 中日韩av电影|