📄 1.cpp
字号:
#include "iostream.h"
#include "stdlib.h"
#define N 1024
#define M 10
#include "math.h"
#define XX int
struct cpl
{
float r;
float b;
};
cpl mul(cpl x,cpl y)
{
cpl s;
s.r=x.r*y.r-x.b*y.b;
s.b=x.r*y.b+x.b*y.r;
return s;
}
cpl add(cpl x,cpl y)
{
cpl s;
s.r=x.r+y.r;
s.b=x.b+y.b;
return s;
}
float mo(cpl x)
{
return x.r*x.r+x.b*x.b;
}
cpl w[N][N];
void initw()
{
for(int i=0;i<N;i++)
for(int j=0;j<N;j++)
{
w[i][j].r=(i-N/2)*0.01;
w[i][j].b=(j-N/2)*0.01;
}
}
float idenww(cpl ww)
{
int k=0;
float e=1;
cpl ww1=ww;
while(k<1000&&e>0.1)
{
ww1=mul(ww1,ww1);
e=mo(ww1);
k++;
}
return e;
}
struct ww
{
int w;
int c;
};
ww a[N][N];
int c[N];
ww b[N][N];
int code()
{
int k=0;
int s=1;
for(s=M;s>=1;s--)
{
for(int i=0;i<(N>>s);i++)
for(int j=0;j<(N>>s);j++)
{
if(a[i][(N>>s)+j].w>1)
{
c[k]=1;
a[i][(N>>s)+j].c=1;
k++;
}
else
{
if(a[i][(N>>s)+j].c!=2)
{
for(int l=s-1;l>=1;l--)
{
for(int g=0;g<(1<<(s-l));g++)
for(int h=0;h<(1<<(s-l));h++)
{
if(a[(i<<(s-l))+g][(N>>l)+(j<<(s-l))+h].w>1)
{
c[k]=3;
}
}
}
if(c[k]!=3)
{
for(int l=s-1;l>=1;l--)
{
for(int g=0;g<(1<<(s-l));g++)
for(int h=0;h<(1<<(s-l));h++)
{
a[(i<<(s-l))+g][(N>>l)+(j<<(s-l))+h].c=2;
}
}
c[k]=2;
}
k++;
}
}
}
////////////////////////////////////1
for(i=0;i<(N>>s);i++)
for(int j=0;j<(N>>s);j++)
{
if(a[(N>>s)+i][j].w>1)
{
c[k]=1;
a[(N>>s)+i][j].c=1;
k++;
}
else
{
if(a[(N>>s)+i][j].c!=2)
{
for(int l=s-1;l>=1;l--)
{
for(int g=0;g<(1<<(s-l));g++)
for(int h=0;h<(1<<(s-l));h++)
{
if(a[(N>>l)+(i<<(s-l))+g][(j<<(s-l))+h].w>1)
{
c[k]=3;
}
}
}
if(c[k]!=3)
{
for(int l=s-1;l>=1;l--)
{
for(int g=0;g<(1<<(s-l));g++)
for(int h=0;h<(1<<(s-l));h++)
{
a[(N>>l)+(i<<(s-l))+g][(j<<(s-l))+h].c=2;
}
}
c[k]=2;
}
k++;
}
}
}
//////////////////////////////////////////2
for(i=0;i<(N>>s);i++)
for(int j=0;j<(N>>s);j++)
{
if(a[(N>>s)+i][(N>>s)+j].w>1)
{
c[k]=1;
a[(N>>s)+i][(N>>s)+j].c=1;
k++;
}
else
{
if(a[(N>>s)+i][(N>>s)+j].c!=2)
{
for(int l=s-1;l>=1;l--)
{
for(int g=0;g<(1<<(s-l));g++)
for(int h=0;h<(1<<(s-l));h++)
{
if(a[(N>>l)+(i<<(s-l))+g][(N>>l)+(j<<(s-l))+h].w>1)
{
c[k]=3;
}
}
}
if(c[k]!=3)
{
for(int l=s-1;l>=1;l--)
{
for(int g=0;g<(1<<(s-l));g++)
for(int h=0;h<(1<<(s-l));h++)
{
a[(N>>l)+(i<<(s-l))+g][(N>>l)+(j<<(s-l))+h].c=2;
}
}
c[k]=2;
}
k++;
}
}
}
}
return k-1;
}
void decode()
{
int k=0;
int s=1;
for(s=M;s>=1;s--)
{
for(int i=0;i<(N>>s);i++)
for(int j=0;j<(N>>s);j++)
{
if(b[i][(N>>s)+j].c!=2)
{
if(c[k]==1)
{
b[i][(N>>s)+j].w=2;
b[i][(N>>s)+j].c=1;
k++;
}
else if(c[k]==2)
{
b[i][(N>>s)+j].w=0;
b[i][(N>>s)+j].c=2;
for(int l=s-1;l>=1;l--)
{
for(int g=0;g<(1<<(s-l));g++)
for(int h=0;h<(1<<(s-l));h++)
{
b[(i<<(s-l))+g][(N>>l)+(j<<(s-l))+h].w=0;
b[(i<<(s-l))+g][(N>>l)+(j<<(s-l))+h].c=2;
}
}
k++;
}
else
{
b[i][(N>>s)+j].w=0;
b[i][(N>>s)+j].c=3;
k++;
}
}
}
////////////////////////////////////1
for( i=0;i<(N>>s);i++)
for(int j=0;j<(N>>s);j++)
{
if(b[(N>>s)+i][j].c!=2)
{
if(c[k]==1)
{
b[(N>>s)+i][j].w=2;
b[(N>>s)+i][j].c=1;
k++;
}
else if(c[k]==2)
{
b[(N>>s)+i][j].w=0;
b[(N>>s)+i][j].c=2;
for(int l=s-1;l>=1;l--)
{
for(int g=0;g<(1<<(s-l));g++)
for(int h=0;h<(1<<(s-l));h++)
{
b[(N>>l)+(i<<(s-l))+g][(j<<(s-l))+h].w=0;
b[(N>>l)+(i<<(s-l))+g][(j<<(s-l))+h].c=2;
}
}
k++;
}
else
{
b[(N>>s)+i][j].w=0;
b[(N>>s)+i][j].c=3;
k++;
}
}
}
//////////////////////////////////////////2
for( i=0;i<(N>>s);i++)
for(int j=0;j<(N>>s);j++)
{
if(b[(N>>s)+i][(N>>s)+j].c!=2)
{
if(c[k]==1)
{
b[(N>>s)+i][(N>>s)+j].w=2;
b[(N>>s)+i][(N>>s)+j].c=1;
k++;
}
else if(c[k]==2)
{
b[(N>>s)+i][(N>>s)+j].w=0;
b[(N>>s)+i][(N>>s)+j].c=2;
for(int l=s-1;l>=1;l--)
{
for(int g=0;g<(1<<(s-l));g++)
for(int h=0;h<(1<<(s-l));h++)
{
b[(N>>l)+(i<<(s-l))+g][(N>>l)+(j<<(s-l))+h].w=0;
b[(N>>l)+(i<<(s-l))+g][(N>>l)+(j<<(s-l))+h].c=2;
}
}
k++;
}
else
{
b[(N>>s)+i][(N>>s)+j].w=0;
b[(N>>s)+i][(N>>s)+j].c=3;
k++;
}
}
}
}
}
void main()
{
/*
for(int i=0;i<N;i++)
for(int j=0;j<N;j++)
{
if(i%2==0&&j%3==0)
{
a[i][j].w=2;
}
else
{
a[i][j].w=0;
}
}
int x=code();
int y=0;
decode();
for(i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
if(a[i][j].w!=b[i][j].w)
{
y++;
}
}
}
*/
int bh=1000;
int bw=1000;
short** p0=new short* [bh];
for(int i=0;i<bh;i++)
{
p0[i]=new short [bw];
}
for(int m=0;m<bh;m++)
for(int n=0;n<bw;n++)
{
//p0[m][n]=*(pBitmapData+3*(bh*m+n)+0);
}
short** p;
p=new short* [2];
p[0]=new short [2];
p[1]=new short [2];
p[0][0]=10;
cout<<p[0][0];
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -