看完这题题面,我觉得 20 分是白送的,直接输出 si,3= louxia 或 loushang 的 i 的数量即可。
然后我开心地写完了,还拼了个 8 分的暴力上去,结果交上去发现 8 分的状压 dp 过了,值 20 分的骗分挂了?
在疑惑不解中,我将代码不断精简,最后成为了这样:
#include <bits/stdc++.h>
using namespace std;
const int N=77780;
int T,n,m,ans,per[N]; string str;
struct node{int typ,x,y;}a[N];
int main(){
cin>>T;
while (T--){
cin>>n>>m,ans=0,iota(per,per+m+1,0);
for (int i=1;i<=n;i++) cin>>str;
for (int i=0;i<m;i++){
string A,B,C; cin>>A>>B>>C;
if (C=="loushang") ans++;
else if (C=="louxia") ans++;
}
cout<<ans<<endl;
for (int i=1;i<=m;i++) cout<<per[i]<<' ';
cout<<endl;
}
return 0;
}
我认为,这份代码是能拿 20 的,但是却是 0 分。在疑惑不解中,我仔细查看了出题人 Itst 神仙的题解,然后发现这 20 分果然就是白送的,唯一可能存在的坑点(即输出排列)也被我注意到了。因此,我的思路应该没有问题。但一分没有是为什么呢???经过长达二十分钟的检查,我没有发现任何问题。
万万没想到,即将参加省选的我被一个入门难度的部分分给创死了,而且还调不出来,于是即将退役的这个小丑就发了个帖子向各位谷民求助了。