题目链接:http://codeforces.com/contest/1009/problem/A
解题心得:
- 题意就是给你两个数列c,a,你需要从c中选择一个子串从a头开始匹配,要求子串中的连续的前k个数都要比对应的a中数小,问k最大是多少。
- 大比赛的时候自己在枚举题意,搞了好久心态差点崩了。
#include <bits/stdc++.h> using namespace std; const int maxn = 1100; int n,m; int a[maxn],c[maxn]; void init() { scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) scanf("%d",&c[i]); for(int i=1;i<=m;i++) scanf("%d",&a[i]); } void solve() { int ans = 0; int last = 1; for(int i=1;i<=m;i++) {//暴力枚举匹配 for(int j=last;j<=n;j++) { if(a[i] >= c[j]) { ans++; last = j+1; break; } else{ last = j+1; } } } printf("%d",ans); } int main() { init(); solve(); return 0; }