Submission #3191106
Source Code Expand
#include<bits/stdc++.h> #define ll long long #define db double #define lowbit(p) (p&(-p)) #define pb push_back #define mp make_pair #define pii pair<int,int> #define A first #define B second using namespace std; void read(int &x){ x=0; char c=getchar(); int p=1; for (;c<48;c=getchar())if (c=='-')p=-1; for (;c>47;c=getchar())x=(x<<1)+(x<<3)+(c^48); x*=p; } void read(ll &x){ x=0; char c=getchar(); int p=1; for (;c<48;c=getchar())if (c=='-')p=-1; for (;c>47;c=getchar())x=(x<<1)+(x<<3)+(c^48); x*=p; } void Min(int &x,int y){ if (x>y)x=y; } void Max(int &x,int y){ if (x<y)x=y; } void Min(ll &x,ll y){ if (x>y)x=y; } void Max(ll &x,ll y){ if (x<y)x=y; } /* ## 题意: 有一个(n*m)的矩阵,要求每次交换两行,或者两列.使得矩阵对称 a[i][j]=a[n-i+1][m-j+1] 单独考虑行和列? 12! */ int n,m,cnt[26],a[50][50]; char s[50]; bool chk1(int x,int y){ int i; for (i=0;i<26;i++)cnt[i]=0; for (i=1;i<=m;i++){ cnt[a[x][i]]++; cnt[a[y][i]]--; } for (i=0;i<26;i++)if (cnt[i])return 0; return 1; } bool chk2(int x,int y){ int i; for (i=0;i<26;i++)cnt[i]=0; for (i=1;i<=n;i++){ cnt[a[i][x]]++; cnt[a[i][y]]--; } for (i=0;i<26;i++)if (cnt[i])return 0; return 1; } void swa1(int x,int y){ for (int i=1;i<=m;i++){ swap(a[x][i],a[y][i]); } } void swa2(int x,int y){ for (int i=1;i<=n;i++){ swap(a[i][x],a[i][y]); } } void chk(){ int i,j; for (i=1;i<=n;i++){ for (j=1;j<=m;j++){ if (a[i][j]!=a[n-i+1][m-j+1]){ return ; } } } printf("YES\n"); exit(0); } void dfs2(int x){ if (x>=m-x+1){ // printf("?\n"); chk(); return ; } for (int i=x+1;i<=m-x+1;i++){ if (chk2(x,i)){ swa2(m-x+1,i); dfs2(x+1); swa2(m-x+1,i); } } } void dfs1(int x){ // printf("x=%d\n",x); if (x>=n-x+1){ dfs2(1); return ; } for (int i=x+1;i<=n-x+1;i++){ if (chk1(x,i)){ swa1(n-x+1,i); dfs1(x+1); swa1(n-x+1,i); } } } int main(){ // freopen(".in","r",stdin); // freopen(".out","w",stdout); // freopen("1.in","r",stdin); read(n); read(m); int i,j; for (i=1;i<=n;i++){ scanf("%s",s+1); for (j=1;j<=m;j++){ a[i][j]=s[j]-'a'; } }/* for (i=1;i<=n;i++){ for (j=1;j<=n;j++)can1[i][j]=chk1(i,j); } for (i=1;i<=m;i++){ for (j=1;j<=m;j++)can2[i][j]=chk2(i,j); }*/ for (i=1;i<=n;i++){ swa1(i,n/2); for (j=1;j<=m;j++){ swa2(j,m/2); dfs1(1); swa2(j,m/2); } swa1(i,n/2); } printf("NO\n"); return 0; }
Submission Info
Submission Time | |
---|---|
Task | E - Symmetric Grid |
User | Satori_____ |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 2544 Byte |
Status | WA |
Exec Time | 130 ms |
Memory | 256 KB |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:122:18: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%s",s+1); ^
Judge Result
Set Name | Sample | All | ||||||
---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 700 | ||||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample1.txt, sample2.txt, sample3.txt |
All | sample1.txt, sample2.txt, sample3.txt, 1.txt, 10.txt, 100.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 2.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 3.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 4.txt, 40.txt, 41.txt, 42.txt, 43.txt, 44.txt, 45.txt, 46.txt, 47.txt, 48.txt, 49.txt, 5.txt, 50.txt, 51.txt, 52.txt, 53.txt, 54.txt, 55.txt, 56.txt, 6.txt, 7.txt, 8.txt, 9.txt, sample1.txt, sample2.txt, sample3.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
1.txt | AC | 1 ms | 256 KB |
10.txt | WA | 1 ms | 256 KB |
100.txt | AC | 130 ms | 256 KB |
11.txt | AC | 1 ms | 256 KB |
12.txt | AC | 1 ms | 256 KB |
13.txt | WA | 1 ms | 256 KB |
14.txt | WA | 2 ms | 256 KB |
15.txt | AC | 1 ms | 256 KB |
16.txt | AC | 1 ms | 256 KB |
17.txt | AC | 1 ms | 256 KB |
18.txt | WA | 2 ms | 256 KB |
19.txt | AC | 1 ms | 256 KB |
2.txt | AC | 1 ms | 256 KB |
20.txt | AC | 1 ms | 256 KB |
21.txt | AC | 1 ms | 256 KB |
22.txt | AC | 1 ms | 256 KB |
23.txt | AC | 2 ms | 256 KB |
24.txt | AC | 1 ms | 256 KB |
25.txt | AC | 1 ms | 256 KB |
26.txt | AC | 2 ms | 256 KB |
27.txt | AC | 1 ms | 256 KB |
28.txt | AC | 2 ms | 256 KB |
29.txt | WA | 2 ms | 256 KB |
3.txt | AC | 1 ms | 256 KB |
30.txt | WA | 1 ms | 256 KB |
31.txt | AC | 2 ms | 256 KB |
32.txt | AC | 1 ms | 256 KB |
33.txt | AC | 1 ms | 256 KB |
34.txt | AC | 1 ms | 256 KB |
35.txt | AC | 2 ms | 256 KB |
36.txt | AC | 1 ms | 256 KB |
37.txt | AC | 1 ms | 256 KB |
38.txt | AC | 1 ms | 256 KB |
39.txt | AC | 1 ms | 256 KB |
4.txt | AC | 1 ms | 256 KB |
40.txt | AC | 1 ms | 256 KB |
41.txt | AC | 1 ms | 256 KB |
42.txt | AC | 1 ms | 256 KB |
43.txt | AC | 1 ms | 256 KB |
44.txt | WA | 1 ms | 256 KB |
45.txt | WA | 2 ms | 256 KB |
46.txt | WA | 1 ms | 256 KB |
47.txt | AC | 1 ms | 256 KB |
48.txt | AC | 2 ms | 256 KB |
49.txt | AC | 1 ms | 256 KB |
5.txt | AC | 1 ms | 256 KB |
50.txt | AC | 1 ms | 256 KB |
51.txt | AC | 1 ms | 256 KB |
52.txt | AC | 1 ms | 256 KB |
53.txt | AC | 1 ms | 256 KB |
54.txt | AC | 1 ms | 256 KB |
55.txt | AC | 1 ms | 256 KB |
56.txt | AC | 2 ms | 256 KB |
6.txt | AC | 1 ms | 256 KB |
7.txt | AC | 1 ms | 256 KB |
8.txt | WA | 1 ms | 256 KB |
9.txt | AC | 1 ms | 256 KB |
sample1.txt | AC | 1 ms | 256 KB |
sample2.txt | AC | 1 ms | 256 KB |
sample3.txt | AC | 1 ms | 256 KB |