试一试把getline后的string的最后一个字符去掉。
for(int i=1;i<=p;i++){ string s,t; cin>>t; t.erase(t.end()-1); belong[i]=mapi[t]; getline(cin,say[i]); say[i].erase(say[i].begin()); //say[i].erase(say[i].end()-1); //这句注释掉本地过,不注释掉洛谷过 //cout<<say[i]<<" "<<belong[i]<<endl; }