#23425: 測試執行AC,送出去卻是Na0%,求解


money110209@gmail.com (Zhe You)

學校 : 臺中市私立明道高級中學
編號 : 131422
來源 : [36.235.201.198]
最後登入時間 :
2025-07-12 20:13:14

#include <iostream>

using namespace std;

 

int main() {

int time,a=0,b=0,t=0,tt=0,k=0,u =0;

 

cin>>time;

cin.get();

for(int i=0;i<time;i++)

{

char n[1000000]={},p[1000000]={};

cin.getline(n,200);

while(1){

if(n[u]!='p'&&n[u]!='q'&&n[u]!='.')

break;

p[t] = n[u];

u = u+1;

if(p[t]=='.'){

continue;

}

if(p[t]=='p')

a = 1;

 

 

 

if(a==1&&p[t]=='q')

{

tt = tt+1;

a = 0;

b = 0;

 

t = t-2;

if(p[t]=='p')

a = 1;

}

t = t+1;

 

}

cout<<tt<<endl;

t = 0;

u = 0;

tt = 0;

}

 

 

}

 

#23428: Re:測試執行AC,送出去卻是Na0%,求解


money110209@gmail.com (Zhe You)

學校 : 臺中市私立明道高級中學
編號 : 131422
來源 : [36.235.201.198]
最後登入時間 :
2025-07-12 20:13:14

後來發現getline()的數字開成200但改了之後還是有一些問題,

#0: 20% WA (line:2)

您的答案為: 9
正確答案為: 8

#1: 20% WA (line:2)

您的答案為: 34
正確答案為: 33

#2: 20% WA (line:6)

您的答案為: 962
正確答案為: 961

#3: 20% WA (line:2)

您的答案為: 19703
正確答案為: 19702

#4: 20% WA (line:1)

您的答案為: 799452
正確答案為: 1998788

喔對,我開的陣列大小有改過



#23433: Re:測試執行AC,送出去卻是Na0%,求解


snakeneedy (蛇~Snake)

學校 : 國立高雄師範大學附屬高級中學
編號 : 7661
來源 : [114.40.8.251]
最後登入時間 :
2023-01-25 19:16:06

※原題並無長度限制,此處約定長度小於等於107。

提醒一下,這邊指的其實是 10^7,改完希望你就能過

 

大致看得出來,當 p[t] == 'q' && p[t-1] == 'p' 時 tt = tt + 1,可能可以改成只判斷 p[t] == 'p' && n[u] == 'q'(當然有更好的改法)

另外 <cstring> 有 strlen(n) 可以幫助你遍歷 n 的所有字元,而不是用 while(1)