求助,为什么后面8个全re,下了测试点,运行正确

P1628 合并序列

正解是二叉堆
by waioi_lin @ 2022-08-07 19:01:47


AC 代码,可以参考 ```c #include <cstdio> #include <queue> #include <string> #include <iostream> using namespace std; priority_queue<string, vector<string>, greater<string> > q; bool check(string s, string s2) { for(int i=0;i<s2.size();i++) { if(s[i]!=s2[i]) return 0; } return 1; } int main() { int n; string s, s2, t; scanf("%d", &n); while(n--) { cin>>s; q.push(s); } cin>>t; while(!q.empty()) { s2=q.top(); if(check(s2, t)) cout<<s2<<endl; q.pop(); } return 0; } ```
by waioi_lin @ 2022-08-07 19:02:15


其实这只是一个小根堆
by waioi_lin @ 2022-08-07 19:04:57


```cpp 这样也行 #include<bits/stdc++.h> using namespace std; string s[100005],a; int main() { int n,i; cin>>n; for(i=1;i<=n;i++) cin>>s[i]; cin>>a; sort(s+1,s+n+1); for(i=1;i<=n;i++) if(s[i].find(a)<1) cout<<s[i]<<'\n'; return 0; } ```
by FanSizhe127 @ 2022-08-10 13:20:25


|