B. Suffix Structures 模拟吧,情况比较多要想周全

这道题需要考虑的情况比较多,flag1表示情况是:b数组里有的字母而a里没有和b里面的同一个字母个数比a里面的多

flag2表示情况:b里面的左右字母能不能在a中同等顺序的存在

flag3表示情况:a里面同一个字母的个数与b里面是否相同

#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main(){
 //   freopen("in.txt","r",stdin);
    char a[105],b[105];
    int coua[50],coub[50];
    while(cin>>a>>b){
        for(int i=0;i<50;i++)
            coua[i]=coub[i]=0;
        int lena=strlen(a);
        int lenb=strlen(b);
        for(int i=0;i<lena;i++)
            coua[a[i]-'a']++;
        for(int i=0;i<lenb;i++)
            coub[b[i]-'a']++;
        int flag1=0,flag2=0,flag3=0;
        for(int i=0;i<50;i++){
            if((coub[i]!=0 && coua[i]==0)||coub[i]>coua[i]){
                flag1=1;
            }
            if(coub[i]!=coua[i])
                flag3=1;
        }
        for(int i=0,j=0;i<lenb,j<lena;){
            if(b[i]==a[j]){
                i++;j++;
            }else j++;
            if(i==lenb)
                flag2=1;
        }
        if((flag1==1 || lena<lenb)||((lena==lenb)&&flag3==1))
            cout<<"need tree"<<endl;
        if(flag1==0 && flag2==0 && lena>lenb )
            cout<<"both"<<endl;
        if(flag1==0 && flag2==1)
            cout<<"automaton"<<endl;
        if(flag1==0 && flag2==0 && lena==lenb && flag3==0)
            cout<<"array"<<endl;

    }
}

B. Suffix Structures 模拟吧,情况比较多要想周全

时间: 2024-10-12 00:29:55

B. Suffix Structures 模拟吧,情况比较多要想周全的相关文章

Codeforces Round #256 (Div. 2) B. Suffix Structures(模拟)

题目链接:http://codeforces.com/contest/448/problem/B ---------------------------------------------------------------------------------------------------------------------------------------------------------- 欢迎光临天资小屋:http://user.qzone.qq.com/593830943/ma

codeforces Div.2 B.Suffix Structures

题意是给我们两个字符串,再在第一个字符串中找第二个, 给了我们两种方法,一:在第一个字符串删掉一些字符后得到第二个字符串: 二:在第一个字符串中改变一些字符的先后顺序得到字符串二: 如果只用第一种方法输出:   automaton: 只用第二种输出:array 两种都用输出:both: 找不到输出:need tree: 直接找就行,,,,,,水 #include<stdio.h> #include<string.h> using namespace std; int main()

Codeforces Round #256 (Div. 2) B (448B) Suffix Structures

题意就是将第一个字符串转化为第二个字符串,支持两个操作,一个是删除,一个是更换字符位置. 简单的字符串操作!! AC代码如下: #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #define M 50010 #define inf 100000000 using namespace std; char a[1005],b[1005]; int la,lb; b

Codeforces Round #256 (Div. 2) B. Suffix Structures

Bizon the Champion isn't just a bison. He also is a favorite of the "Bizons" team. At a competition the "Bizons" got the following problem: "You are given two distinct words (strings of English letters), s and t. You need to trans

#256 (Div. 2)B. Suffix Structures

题意:2种操作,第一种删除任意字符,第二种交换任意2个字符位置,如果能让A,B字符串相等,只用第一种操作输出automaton,只用第二种输出array,2种都用both ,否则输出need tree 思路:我们肯定先判断26个字母的使用情况,然后判断是否只需要用第一种操作,即B的字符顺序在A中有. 1 #include<bits/stdc++.h> 2 using namespace std; 3 4 int a[30],b[30]; 5 int main(){ 6 string s1,s2

CODE FESTIVAL 2017 qual A--C - Palindromic Matrix(模拟所有情况,注意细节)

个人心得:其实本来这题是有规律的不过当时已经将整个模拟过程都构思出来了,就打算试试,将每个字符和总和用优先队列 装起来,然后枚举每个点,同时进行位置标志,此时需要多少个点的时候拿出最大的和出来,若不满足就输出No,结果一直卡在三组 数据.比赛完后一想,优先队列虽然用处大,不过当行列存在奇数的时候此时只要2个就可以,而如果你从最大的4个中拿出来, 那么下一层循环中必然有一个位置无法填充,如此就导致了算法的失败.所以后面建立个奇偶判定就好了. 感悟: 多注意思考和细节,从不同的层次看待问题,既可以全

Codeforces Round #256 (Div. 2/B)/Codeforces448B_Suffix Structures(字符串处理)

解题报告 四种情况相应以下四组数据. 给两字符串,推断第一个字符串是怎么变到第二个字符串. automaton 去掉随意字符后成功转换 array 改变随意两字符后成功转换 再者是两个都有和两个都没有 #include <iostream> #include <cstdio> #include <cstring> #include <stdlib.h> #include <algorithm> #include <cmath> usi

hdu 5583 Kingdom of Black and White(模拟,技巧)

Problem Description In the Kingdom of Black and White (KBW), there are two kinds of frogs: black frog and white frog. Now N frogs are standing in a line, some of them are black, the others are white. The total strength of those frogs are calculated b

利用PHP的register_shutdown_function来记录PHP的输出日志,模拟析构函数

最近在做的一个项目,由于全是通过远程HTTP请求来调用PHP的接口程序. 接收到的参数和返回的内容对开发人员来说都是未知不可见的. 虽然可以通过直接在脚本中模拟请求,但由于实际环境复杂的多,调试极其不方便. 于是想是否可以写一个函数用来记录对PHP接口调用的情况. 想到以前看到过的一个PHP函数 register_shutdown_function(). 该函数的作用是注册一个函数,当PHP脚本执行完成,或者代码中调用了 exit , die 这样的代码之后,执行预先注册好的函数. 这样我们就可