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

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 }

原文地址:https://www.cnblogs.com/war1111/p/10798110.html

时间: 2024-11-13 23:01:11

http://codeforces.com/gym/100623/attachments E题的相关文章

http://codeforces.com/gym/100623/attachments H题

http://codeforces.com/gym/100623/attachments H题已经给出来的,包括后来添加的,都累加得到ans,那么从1-ans都是可以凑出来的,如果ans<a[now]-1,那么就添加一个ans+1,然后继续操作. 1 #include<iostream> 2 #include<cstdio> 3 #include<queue> 4 #include<algorithm> 5 #include<cmath>

Codeforces Round #257 (Div. 2) E题:Jzzhu and Apples 模拟

E. Jzzhu and Apples time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Jzzhu has picked n apples from his big apple tree. All the apples are numbered from 1 to n. Now he wants to sell them to

CodeForces 707A Brain&#39;s Photos (水题)

题意:给一张照片的像素,让你来确定是黑白的还是彩色的. 析:很简单么,如果有一种颜色不是黑白灰,那么就一定是彩色的. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <string> #include <cstdlib> #include <cmath> #include <iostream> #i

Codeforces 828B Black Square(简单题)

Codeforces 828B Black Square(简单题) Description Polycarp has a checkered sheet of paper of size n?×?m. Polycarp painted some of cells with black, the others remained white. Inspired by Malevich's "Black Square", Polycarp wants to paint minimum pos

Codeforces Round #243 (Div. 1) A题

http://codeforces.com/contest/425/problem/A 题目链接: 然后拿出这道题目是很多人不会分析题目,被题目吓坏了,其中包括我自己,想出复杂度,一下就出了啊!真是弱! 直接暴力求出矩阵数值,然后枚举每一个[I,J];再O[N]判断,分配好在[I,J]区间的数和之内的数,再排序下SOLO了 CODE:#include <cstdio> #include <cstring>#include <queue>#include <vect

codeforces 848B Rooter&#39;s Song 思维题

http://codeforces.com/problemset/problem/848/B 给定一个二维坐标系,点从横轴或纵轴垂直于发射的坐标轴射入(0,0)-(w,h)的矩形空间.给出点发射的坐标轴,位置,延迟时间,发生碰撞则交换方向.求最后每个点的射出位置. 首先我们观察能得出两个结论,1. 类似蚂蚁爬树枝的问题,相遇只会交换方向,所以最后的射出点集只会因为碰撞而改变动点与射出点的对应关系,而不会增加减少射出点集.2.我们根据其射入位置和延迟时间可以计算出一个值v=pos-time,只有这

Codeforces Round #634 (Div. 3) 补题

A. Candies and Two Sisters 签到题,直接输出即可 代码 #include<bits/stdc++.h> #define INF 0x3f3f3f3f typedef long long ll; using namespace std; inline void read(int &p) { p=0;int flag=1;char c=getchar(); while(!isdigit(c)) {if(c=='-') flag=-1;c=getchar();} w

CodeForces Gym 100685C Cinderella (水题)

题意:给定 n 个杯子,里面有不同体积的水,然后问你要把所有的杯子的水的体积都一样,至少要倒少多少个杯子. 析:既然最后都一样,那么先求平均数然后再数一下,哪个杯子的开始的体积就大于平均数,这是一定要倒的. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <string> #include <cstdlib> #inclu

Codeforces 1254C/1255F Point Ordering (交互题)

题目链接 http://codeforces.com/contest/1254/problem/C 题解 sb题. 第一次,通过\((n-2)\)次询问2确定\(p[2]\),也就是从\(1\)来看"最逆时针"的点. 第二次,通过\((n-2)\)次询问1确定每个点与\(a_1a_{p_2}\)这条直线的距离,并将所有点按该值排序.设排序后的数组是\(s_3,s_4,...\). 第三次,通过\((n-3)\)次询问2将所有点定序.我们实际上就是要将\((n-2)\)个点分成两组,一组