- 图像变换
- 2023-07-14 21:33:36 @
有一个点总是超时
#include<bits/stdc++.h>
using namespace std;
int n,m,k;
short a[1605][1605],b[1605][1605];
char ch;
void shun()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
b[j][n+1-i]=a[i][j];
swap(n,m);
memcpy(a,b,sizeof b);
}
void ni()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
b[m+1-j][i]=a[i][j];
swap(n,m);
memcpy(a,b,sizeof b);
}
void shui_ping()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
b[i][m+1-j]=a[i][j];
memcpy(a,b,sizeof b);
}
void chui_zhi()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
b[n+1-i][j]=a[i][j];
memcpy(a,b,sizeof b);
}
int main()
{
cin>>n>>m>>k;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];
for(int i=1;i<=k;i++)
{
cin>>ch;
switch(ch)
{
case 'A':shun();break;
case 'B':ni();break;
case 'C':shui_ping();break;
case 'D':chui_zhi();break;
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
cout<<a[i][j]<<' ';
cout<<endl;
}
return 0;
}
1 条评论
-
2230134娄耀 (2212238) LV 8 @ 2023-07-15 22:10:53
//有优化,但是不多 #include<bits/stdc++.h> using namespace std; int n,m,k; short a[1605][1605],b[1605][1605]; char c[1005]; void shun() { for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) b[j][n+1-i]=a[i][j]; swap(n,m); memcpy(a,b,sizeof b); } void ni() { for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) b[m+1-j][i]=a[i][j]; swap(n,m); memcpy(a,b,sizeof b); } void shui_ping() { for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) b[i][m+1-j]=a[i][j]; memcpy(a,b,sizeof b); } void chui_zhi() { for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) b[n+1-i][j]=a[i][j]; memcpy(a,b,sizeof b); } int main() { cin>>n>>m>>k; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>a[i][j]; for(int i=1;i<=k;i++) cin>>c[i]; bool ok=true; while(ok) { ok=false; for(int i=1;i<=k;i++) { if(c[i]=='A'&&c[i+1]=='B') { for(int j=i;j<=k;j++) c[j]=c[j+2]; k-=2;ok=true; } else if(c[i]=='B'&&c[i+1]=='A') { for(int j=i;j<=k;j++) c[j]=c[j+2]; k-=2;ok=true; } else if(c[i]=='C'&&c[i+1]=='C') { for(int j=i;j<=k;j++) c[j]=c[j+2]; k-=2;ok=true; } else if(c[i]=='D'&&c[i+1]=='D') { for(int j=i;j<=k;j++) c[j]=c[j+2]; k-=2;ok=true; } else if(c[i]=='A'&&c[i+1]=='A'&&c[i+3]=='A'&&c[i+4]=='A') { for(int j=i;j<=k;j++) c[j]=c[j+4]; k-=4;ok=true; } else if(c[i]=='B'&&c[i+1]=='B'&&c[i+3]=='B'&&c[i+4]=='B') { for(int j=i;j<=k;j++) c[j]=c[j+4]; k-=4;ok=true; } } } for(int i=1;i<=k;i++) { switch(c[i]) { case 'A':shun();break; case 'B':ni();break; case 'C':shui_ping();break; case 'D':chui_zhi();break; } } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) cout<<a[i][j]<<' '; cout<<endl; } return 0; }
- 1
信息
- ID
- 1934
- 难度
- 9
- 分类
- (无)
- 标签
- 递交数
- 134
- 已通过
- 1
- 通过率
- 1%
- 被复制
- 2
- 上传者