一、题目

  

二、题意

  给定一个字母表(最多也就是英文小写字母的前10个字母),一个交换表,两个字符串,判断字符串A能否通过交换表的交换方式变成字符串B。

三、思路

  1、一开始,比赛时,我半模拟半记忆化地做,越做越糊涂,越做越复杂,最后直到比赛结束也没有做出来。T_T实力还是有很大地提升空间啊。

  2、比赛后,问了过了的队伍,秒懂,此法实在是妙啊。因为交换表中最多也只有45种交换,那么,可以枚举交换表中没有的交换关系,假设为两个字符为ab,那么,保留串A和串B中的所有a和b(即去掉非a且非b的元素),判断剩余的两个串是否相等,不想等则可以输出NO。因为如果你要把串A变成串B,就必须对串A的剩余串做元素位置交换,而交换表中不存在这种交换,所以,串A是无法变成串B的。最后,如果前面一直没有输出NO,则输出YES。就是这么简单。。。。。。诶,最近脑子比较进水啊。坚持下去,你就是最棒的!

四、注意事项

  1、题目中没说两个串一定相等,虽然可能所有测试样例都是长度相等的,但为了保险起见,还是判断一下好。

  2、题目中没说两个串含有的字符数量是相等的,即可能存在这样的样例:串A:abbbba,串B:bbbbba。这种情况也要判断一下。

  3、交换表中的交换关系是可以的对换的。即如果存在交换ab,那么,ba也是存在的。

  4、输入输出是要重定向到文件的。别被坑了。

五、源代码

  

#include<bits/stdc++.h>
using namespace std;
int n, m;
][];
][];
][];
];
];
bool test(char a, char b) {
    ; i < ; ++i) {
        s[i].clear();
        ; j < len[i]; ++j)
            if(str[i][j] == a || str[i][j] == b)s[i] += str[i][j];
    }
    ] == s[];
}

int main() {
    freopen("traces.in", "r", stdin);
    freopen("traces.out", "w", stdout);
    ];
    while(~scanf("%d%d", &n, &m)) {
        memset(mp, , sizeof(mp));
        memset(cnt, , sizeof(cnt));
        ; i < m; ++i) {
            scanf("%s", temp);
            mp[temp[] - ] - ] - ] - 'a'] = true;
        }
        scanf(]);
        scanf(]);
        len[] = strlen(str[]), len[] = strlen(str[]);

        bool flag = true;

        ;i < ;++i){
            ;j < len[i];++j){
                ++cnt[i][str[i][j] - 'a'];
            }
        }
        ][i - ][i - 'a'])flag = false;

        for(int i = 'a';flag && i < 'a' + n; ++i) {
            ; j < 'a' + n; ++j) {
                if(!mp[i - 'a'][j - 'a']) {
                    if(!test((char)i, (char)j)) {
                        i = 'a' + n;
                        flag = false;
                        break;
                    }
                }
            }
        }
        printf("%s\n", flag ? "YES" : "NO");
    }
    ;
}

  

CFGym 100211J 题解的更多相关文章

  1. CFGym 101490J 题解

    一.题目链接 http://codeforces.com/gym/101490 二.题面 三.题意 给你n个点,代表学生所在位置,n个点,代表老师所在位置.每个学生分配一个老师.让你找出一个最小的学生 ...

  2. CFGym 101490E 题解

    一.题目链接 http://codeforces.com/gym/101490 二.题面 三.题意 给你一个图,n个点,m条边,一个x,从顶点1走到顶点n.假设从顶点1走到顶点n的最短路为d,x代表你 ...

  3. CFGym 101161I 题解

    一.题目链接 http://codeforces.com/gym/101161/problem/I 二.题意 给定一棵树,一个初始的省会城市,若干个询问,0表示修改省会城市,1表示查询去省会必须经过指 ...

  4. CFGym 100198G 题解

    一.题目链接 http://codeforces.com/gym/100198/problem/G 二.题意 看样例就能明白,写表达式解析器. 三 .思路 一看这题目,立马就会想到“后缀表达式”,考虑 ...

  5. CFGym 101194L 题解

    一.题目链接 http://codeforces.com/gym/101194/problem/L 二.题意 有4个队伍,要打6场比赛(刚好每两个队伍都能相互比一次),若A和B比赛有3种结果: A赢B ...

  6. CFGym 101194D 题解

    一.题目链接 http://codeforces.com/gym/101194/problem/D 二.题意 给定一个数字n和一个数字k,一个n个整数的序列,让你在里面找尽可能多的长度为k的符合“要求 ...

  7. CFGym 101505I 题解

    一.题目链接 http://codeforces.com/gym/101505 二.题意 这题其实主要就是题意,理解题意后,就是水题了.我想了下,主要原因就是这几点: 1.题意太过英文化,很多句子不能 ...

  8. [CF-GYM]Abu Tahun Mod problem题解

    前言 这道题比较简单,但我还是想了好一会 题意简述 Abu Tahun很喜欢回文. 一个数组若是回文的,那么它从前往后读和从后往前读都是一样的,比如数组\(\left\{1\right\},\left ...

  9. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

随机推荐

  1. Tensorflow一些常用基本概念与函数(三)

    摘要:本系列主要对tf的一些常用概念与方法进行描述.本文主要针对tensorflow的数据IO.图的运行等相关函数进行讲解.为‘Tensorflow一些常用基本概念与函数’系列之三. 1.序言 本文所 ...

  2. [Kafka] - Kafka Java Consumer实现(二)

    Kafka提供了两种Consumer API,分别是:High Level Consumer API 和 Lower Level Consumer API(Simple Consumer API) H ...

  3. BigDecimalUtils BigDecimal加减乘除

    public class BigDecimalUtil { private static int DEF_DIV_SCALE = 10; // 默认精确的小数位 /** * 提供精确的加法运算. * ...

  4. SQL语法语句总结(《SQL必知必会》读书笔记)

    一.SQL语句语法 ALTER TABLE ALTER TABLE 用来更新已存在表的结构. ALTER TABLE tablename (ADD|DROP column datatype [NULL ...

  5. openfalcon源码分析之hbs

    openfalcon源码分析之hbs 本节内容 hbs功能 hbs源码分析 hbs设计优劣 1. hbs功能 hbs在整个open-falcon项目中承担的角色就是连接数据库,作为数据库缓存,缓存配置 ...

  6. web 常用富文本编辑器

    1. 百度家的 UEditor  官网地址http://ueditor.baidu.com/website/;在线演示地址:http://ueditor.baidu.com/website/onlin ...

  7. 彻底弄懂jQuery事件原理一

    jQuery为我们提供了一个非常丰富好用的事件API,相对于浏览器自身的事件接口,jQuery有以下特点: 1. 对浏览器进行了兼容性处理,用户使用不需要考虑浏览器兼容性问题 2. 事件数据是保持在内 ...

  8. 【LeetCode 8_字符串_实现】String to Integer (atoi)

    , INVALID}; int g_status; long long SubStrToInt(const char* str, bool minus) { ; : ; while (*str != ...

  9. java应用简单递归

    毕业后就怎么学过算法,还在上学的时候学过数据结构,现在基本上都还给老师了,可惜老师学费没有还给我... 情景: 类似于给定一个数字,算他由多少个数字组成,比如:36 现在有10.5.1 ,那么最佳帅3 ...

  10. memcache+tomcat7.0.37+nginx实现session共享

    一.session工作原理 由于http是无状态的协议,当我们访问了页面A,然后访问页面B,http无法确定这2个页面的访问是来自同一个人.因此,我们要用cookie或session来跟踪用户,根据授 ...