任何人都可以建议我在2-d矩阵中找到不同元素数量的更快方法,其中给出了凝视和结束位置..(矩阵元素小于20) 说矩阵是......
1 2 3
4 5 6
4 2 1
起点(1,1)..结束(3,2)然后ans将b 4 ..即1,2,4,5 .. 以下方法似乎很慢..
#include<iostream>
using namespace std;
main()
{
int n,a[301][301],b[12],count,x1,x2,y1,y2,i,j;
unsigned long long q;
cin>>n;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>a[i][j];
cin>>q;
while(q--)
{
count=0;
for(i=0;i<12;i++)
b[i]=0;
cin>>x1>>y1>>x2>>y2;
for(i=x1-1;i<=x2-1;i++)
for(j=y1-1;j<=y2-1;j++)
b[a[i][j]]++;
for(i=0;i<12;i++)
{
if(b[i])
count++;
}
cout<<count<<"\n";
}
return 0;
}