3 条题解
-
1
按题意模拟即可。
cyx是0。
#include<bits/stdc++.h> using namespace std; int n,cyx,zzp; string str; int main(){ cin>>n; while(n--){ int user=-1;//0->cyx 1->zzp bool love=false; cin>>str; if(str=="cyx") user=0; if(str=="zzp") user=1; cin>>str; getline(cin,str); if(str.find("/qq")!=string::npos) love=true; if(str.find("/yqq")!=string::npos) love=true; if(str.find("/bixin")!=string::npos) love=true; transform(str.begin(),str.end(),str.begin(),::tolower); if(str.find("meow")!=string::npos) love=true; if(str.find("cute")!=string::npos) love=true; if(str.find("lovely")!=string::npos) love=true; if(str.find("kawaii")!=string::npos) love=true; if(str.find("love")!=string::npos) love=true; if(str.find("tietie")!=string::npos) love=true; if(str.find("cyx")!=string::npos&&user==1&&!(str[str.find("cyx")+3]>='A'&&str[str.find("cyx")+3]<='z')&&!(str[str.find("cyx")-1]>='A'&&str[str.find("cyx")-1]<='z')) love=true; if(str.find("zzp")!=string::npos&&user==0&&!(str[str.find("zzp")+3]>='A'&&str[str.find("zzp")+3]<='z')&&!(str[str.find("zzp")-1]>='A'&&str[str.find("zzp")-1]<='z')) love=true; if(user==0&&love) cyx++; if(user==1&&love) zzp++; } cout<<cyx<<" "<<zzp<<endl; return 0; }
-
1
给一发 std:
// std written by Greenzhe_qwq(uid=7) // 2024/1/29 // clang-format #include <bits/stdc++.h> using namespace std; char s1[121], s2[121]; bool judge(string speaker, string msg) { // Detect emoji if (msg.find("/qq") != msg.npos) return true; if (msg.find("/yqq") != msg.npos) return true; if (msg.find("/bixin") != msg.npos) return true; // Change all the letters to lower for (int i = 0; i < msg.size(); ++i) msg[i] = tolower(msg[i]); // Detect words if (msg.find("meow") != msg.npos) return true; if (msg.find("cute") != msg.npos) return true; if (msg.find("lovely") != msg.npos) return true; if (msg.find("kawaii") != msg.npos) return true; if (msg.find("love") != msg.npos) return true; if (msg.find("tietie") != msg.npos) return true; // Detect names for (int i = 0; i + 2 < msg.size(); ++i) { string sub = msg.substr(i, 3); if ((sub == "cyx" || sub == "zzp") && sub != speaker) { if (i > 0 && isalpha(msg[i - 1])) continue; if (i + 3 < msg.size() && isalpha(msg[i + 3])) continue; return true; } } // Sadly there's no dog food return false; } int main() { int T, cyx = 0, zzp = 0; scanf("%d\n", &T); while (T--) { scanf("%s : %[^\n]", s1, s2); string speaker = s1, msg = s2; if (speaker == "cyx") cyx += judge(speaker, msg); else zzp += judge(speaker, msg); } printf("%d %d\n", cyx, zzp); return 0; }
花絮:本题数据大部分都是用《哈姆雷特》完成的。所以假如你打开数据就会发现两人在互相莎士比亚。
- 1
信息
- ID
- 790
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- 递交数
- 100
- 已通过
- 24
- 上传者