四川大学第二回SCUACM新入生試合(同期試合)F

8003 ワード

[テンプレート]接尾辞オートマトン


タイトルの説明:


これはテンプレート問題です.2つの文字列SとTが与えられ、Sに接尾辞Pが存在するかどうかを尋ね、Tの任意の接頭辞の辞書順がPより大きいようにします.注意:データには大文字と小文字が同時に含まれており、辞書の順序を比較する際にAscii符号化に厳格に従って比較する.すなわち、A

説明を入力:


各グループのデータには2行の英字のみを含む文字列があり、1行目はS、2行目はT(0

出力の説明:


各グループのデータは1行ずつ出力され、このようなPが存在する場合は「YES 5」を出力し、そうでない場合は「N 0」を出力する(引用符なし).

考え方:


この問題はまず迷わないで、直接テンプレートの問題をして、直接Tの中の最初の要素とSの中の要素を比較することができて、Sの中でT[0]より小さい存在があれば、いいです;
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include 
#include
#define PI 3.1415926535
#define MAX 10005
#define INF 0x3f3f3f3f
#define lowbit(x) (x&(-x))
#define fori(a,b) for(int i=a;i<=b;i++)
#define mem(a,b) memset(a,b,sizeof(a))
#define BASE 10000
#define BASE 10000
using namespace std;
typedef long long ll;
const int maxn=2e5+5;
using namespace std;
typedef struct fract fract;
char a[maxn],b[maxn];
int main()
{
    int t,i,battle=0;
    cin>>t;
    while(t--)
    {
        battle=0;
        cin>>a;
        cin>>b;
        int len=strlen(a);
        for(i=len-1;i>=0;i--)
        {
            if(b[0]>a[i])
            {
                battle=1;
                break;
            }
        }
        if(battle==1)
            printf("YE5
"
,i); else printf("N0
"
); } return 0; }

記録:


この問題はまずTの中の最初の比較Sの中の最後の1つを考えて、ガチョウWAは3回、それから顔を覆って、もしSの中の最後の1つが条件を満たさないならば、しかし前は依然として条件を満たして、しかし私は判断していないで、直接前後の2つの比較、直接PASS;后でやっとはっと悟って、马后炮..