标签:index int cin while 二刷 虎人 maxn 机试 include
基本思想:
想到贪心,但是觉得时间复杂度太高,结果一不小心写出来个更复杂的贪心;
关键点:
注意特殊用例,有可能无法遍历出正确结果,即没有切换得到正确的值,此时要避免进入死循环;
#include<iostream> #include<vector> #include<algorithm> #include<string> #include<cmath> #include<set> using namespace std; const int maxn = 5010; int n,m; int dp[maxn][maxn]; vector<string>v1; vector<string>v2; int main() { while (cin>>n){ string s; for (int i = 0; i < n; i++) { cin >> s; v1.push_back(s); } cin >> m; for (int i = 0; i < m; i++) { cin >> s; v2.push_back(s); } int cnt = 0; int index = 0; bool flag = true; while (index != m&&flag) { int mx = 0; int mindex = 0; int st = index; for (int i = 0; i < n; i++) { int j = st; while (j<m&&v1[i] != v2[j]){ j++; } if (mx < j - index) { mx = j - index; mindex = j; } } if (mindex == 0) flag = false; cnt++; index = mindex; } if(flag) cout << cnt-1 << endl; else cout << -1 << endl; } return 0; }
标签:index,int,cin,while,二刷,虎人,maxn,机试,include 来源: https://www.cnblogs.com/songlinxuan/p/12386391.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。