1. 程式人生 > >http://codeforces.com/gym/100623/attachments E題

http://codeforces.com/gym/100623/attachments E題

turn sta nbsp opened fin int div str algo

http://codeforces.com/gym/100623/attachments E題
第一個優化
它雖然是鏡像對稱,但它畢竟是一一對稱的,所以可以匹配串和模式串都從頭到尾顛倒一下
第二個優化,與次數無關,所以排個序就完事了

技術分享圖片
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<queue>
 4 #include<algorithm>
 5 #include<cmath>
 6 #include<ctime>
 7 #include<set>
 8
#include<map> 9 #include<stack> 10 #include<cstring> 11 #define inf 2147483647 12 #define ls rt<<1 13 #define rs rt<<1|1 14 #define lson ls,nl,mid,l,r 15 #define rson rs,mid+1,nr,l,r 16 #define N 100010 17 #define For(i,a,b) for(int i=a;i<=b;i++) 18 #define p(a) putchar(a) 19
#define g() getchar() 20 21 using namespace std; 22 int n; 23 char a[110],b[110],c[110],d[110]; 24 25 struct node{ 26 int f; 27 int s; 28 bool operator < (const node & temp)const{ 29 if(f==temp.f) 30 return s<temp.s; 31 return f<temp.f;
32 } 33 }a1[110],a2[110]; 34 35 void in(int &x){ 36 int y=1; 37 char c=g();x=0; 38 while(c<0||c>9){ 39 if(c==-)y=-1; 40 c=g(); 41 } 42 while(c<=9&&c>=0){ 43 x=(x<<1)+(x<<3)+c-0;c=g(); 44 } 45 x*=y; 46 } 47 void o(int x){ 48 if(x<0){ 49 p(-); 50 x=-x; 51 } 52 if(x>9)o(x/10); 53 p(x%10+0); 54 } 55 int main(){ 56 freopen("enchanted.in","r",stdin); 57 freopen("enchanted.out","w",stdout); 58 cin>>(a+1)>>(b+1)>>(c+1)>>(d+1); 59 n=strlen(a+1); 60 For(i,1,n){ 61 a1[i].f=a[i]-A+1; 62 a1[i].s=b[n-i+1]-A+1; 63 } 64 For(i,1,n){ 65 a2[i].f=c[i]-A+1; 66 a2[i].s=d[n-i+1]-A+1; 67 } 68 sort(a1+1,a1+n+1); 69 sort(a2+1,a2+n+1); 70 For(i,1,n) 71 if(a1[i].f!=a2[i].f||a1[i].s!=a2[i].s){ 72 cout<<"No"; 73 return 0; 74 } 75 cout<<"Yes"; 76 return 0; 77 }
View Code

http://codeforces.com/gym/100623/attachments E題