题解 P4470 【[BJWC2018]售票】

引领天下

2018-05-06 15:47:00

Solution

抢到全网最优解之后发题解 其实此题有一个很好用的命令:strncmp,可以直接比较两个字符串的前n位 接下来就很方便了 代码: ```cpp #include <cstdio> #include <cstring> short n,l; char a[51][101],s[101],k[]={"********\n********\n********\n********"};//省的换行 int main(void){ scanf ("%d\n",&n); for (short i=0;i<n;i++)scanf ("%s\n",&a[i]); scanf ("%s",s),l=strlen(s); for (short i=0;i<n;i++)if (!strncmp(a[i],s,l)){//比较 char c=a[i][l]; if('A'<=c&&c<='E')k[c-'A'+3]=c; if('F'<=c&&c<='M')k[c-'A'+4]=c; if('N'<=c&&c<='U')k[c-'A'+5]=c; if('V'<=c&&c<='Z')k[c-'A'+6]=c;//设置为可见 } puts(k);//直接输出 } ```