#3,#7错了,哪位大犇救救蒟蒻啊

P1200 [USACO1.1] 你的飞碟在这儿 Your Ride Is Here

请使用cin读入
by lovely_fcukh @ 2023-07-16 13:01:38


@[battlefield5](/user/1036897) 很显然,p 数组只有26的长度,但是你枚举到 30,就会越界。
by while_true @ 2023-07-16 13:02:42


@[battlefield5](/user/1036897) 两个循环改成这样就行了: ```cpp for(int i=0;i<le1;i++){ for(int j=1;j<=26;j++){ if(a[i]==p[j]){//查找字符,找到后相乘 s1*=j; } } } for(int i=0;i<le2;i++){ for(int j=1;j<=26;j++){ if(b[i]==p[j]){ s2*=j; } } } ```
by while_true @ 2023-07-16 13:03:29


@[battlefield5](/user/1036897) 你的程序还有两点忠告: 1. 尽量使用`string`,并用`cin`读入,在`main()`开头加上以下代码可以大大提升读入速度: ```cpp ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); ``` 2. 你的双重循环和 p 数组根本没有意义,可以改成: ```cpp for(int i=0;i<le1;i++){ s1*=(a[i]-'A'+1); } for(int i=0;i<le2;i++){ s2*=(b[i]-'A'+1); } ```
by while_true @ 2023-07-16 13:08:14


ac了,谢谢谢谢
by battlefield5 @ 2023-07-16 13:12:31


|