您的位置:首页 > 其它

51nod 1279 扔盘子(思维题)

2017-04-01 13:48 239 查看


【分析】如果第i个井宽大于第i-1个,那么大于的那部分是完全没用的。就可以减掉那部分,于是井就变成了一个从上到下非递增的,两个指针O(n)就可以解决了

#include<iostream>
using namespace std;

int a[101000];
int b[101000];

int main(){
int n, m, ans = 0;
cin >> n >> m;
for(int i = 1; i <= n; i++) {
cin >> a[i];
if(i > 1 && a[i] > a[i - 1]) a[i] = a[i - 1];
}
for(int i = 1; i <= m; i++){
cin >> b[i];
}
for(int i = n, j = 1; i >= 1; i--){
while(a[i] < b[j] && i >= 1) i--;
if(a[i] >= b[j])ans++;
j++;
}
cout << ans << endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: