zoukankan      html  css  js  c++  java
  • [JZOJ5817] 【NOIP提高A组模拟2018.8.15】 抄代码

    Description

    J 君是机房的红太阳,每次模拟她总是 AK 虐场。然而在 NOIP2117 中,居然出现了另一位 AK 的选手 C 君! 这引起了组委会的怀疑,组委会认为 C 君有抄袭 J 君代码的嫌疑,原因是考试时 C 君正好 坐在 J 君旁边。于是组委会需要你帮她们鉴定一下 C 君是否抄了 J 君的代码。 NOIP2117 一共有 T 道题,每道题需要提交一份阿语言代码 (阿语言是 NOIP2117 的唯一可 用编程语言)。 一份阿语言代码只有一行,仅由小写字母,数字,空格和分号组成。 组委会认为,如果 C 君的代码可以由 J 君的代码经过若干次修改变量名操作得到,C 君就 抄了 J 君的代码。 一次修改变量名操作被定义为将代码中的所有小写字母 x 替换为小写字母 y(此处 x, y 代指 任意小写字母)。 请你告诉组委会,对于每道题,C 君是否抄了 J 君的代码。

    Input

    第一行一个正整数 T。 接下来 2T 行,第 2i 行代表 J 君对于第 i 道题的提交代码,第 2i + 1 行代表 C 君对于第 i 道题的提交代码。 

    Output

    输出 T 行,如果对于第 i 道题,C 君抄了 J 君的代码,请在第 i 行输出1,否则请在第 i 行 输出0。 

    Sample Input

    5
    int x;
    int y;
    double a;
    double aa;
    float 1
    float 2
    string s;
    double d;
    print thisismycode;
    float tooooooooooo;

    Sample Output

    1
    0
    0
    1
    1

    Data Constraint

    10% 的数据满足代码中不包含字母。
    另外 30% 的数据满足代码中只包含字母。
    100% 的数据满足 T≤ 1000,每行代码中不会包含超过 1000 个字符。

    这甚至比B组的题还水, 直接用map模拟一遍。

    长度不一样直接返回0,一个是数字一个是字母返回0.

    其他的用map判断一下。

    复杂度O(TNlogN);


    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <string>
    #include <map>
    using namespace std;
    inline int read() {
        int res=0;char ch=getchar();
        while(!isdigit(ch))ch=getchar();
        while(isdigit(ch))res=(res<<3)+(res<<1)+(ch^48), ch=getchar();
        return res;
    }
    #define reg register
    int T;
    map <char, char> mp;
    
    int main()
    {
      freopen("copycat.in", "r", stdin);
      freopen("copycat.out", "w", stdout);
        T = read();
        while(T--)
        {
            mp.clear();
            string a, b;
            getline(cin, a);getline(cin, b);
            int la = a.length(), lb = b.length();
            if (la != lb) {puts("0");continue;}
            for (reg int i = 0 ; i < la ; i ++)
            {
                if (a[i] == b[i]) continue;
                if (a[i] < 'a' or a[i] > 'z' or b[i] < 'a' or b[i] > 'z') 
                    if (a[i] != b[i]) {puts("0");goto End;}
                if (!mp[a[i]]) mp[a[i]] = b[i];
                else if (mp[a[i]] != b[i]) {puts("0");goto End;}
            }
            puts("1");
            End:;
        }
        return 0;
    }
  • 相关阅读:
    iOS 苹果开发证书失效的解决方案(Failed to locate or generate matching signing assets)
    iOS NSArray数组过滤
    App Store2016年最新审核规则
    iOS 根据字符串数目,自定义Label等控件的高度
    iOS 证书Bug The identity used to sign the executable is no longer valid 解决方案
    Entity FrameWork 增删查改的本质
    EF容器---代理类对象
    Entity FrameWork 延迟加载本质(二)
    Entity FrameWork 延迟加载的本质(一)
    Entity FrameWork 增删查改
  • 原文地址:https://www.cnblogs.com/BriMon/p/9483442.html
Copyright © 2011-2022 走看看