四川大学第二回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;后でやっとはっと悟って、马后炮..
#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;
}