1 条题解
-
0
Guest
-
1
思路
二分,枚举每个方向为
1
的小怪,当且仅当方向为0
的小怪的位置满足以下条件可以和相遇: 很显然,可以用排序+二分。code
#include<bits/stdc++.h> using namespace std; vector<int>a,b; long long n,m; string t; long long tmp; long long ans; int main(){ cin>>n>>m>>t; for(int i=0;i<n;i++){ cin>>tmp; if(t[i]=='0') b.push_back(tmp); else a.push_back(tmp); } sort(a.begin(),a.end()); sort(b.begin(),b.end()); for(int i=0;i<a.size();i++){ int x=upper_bound(b.begin(),b.end(),a[i])-b.begin(); int y=upper_bound(b.begin(),b.end(),a[i]+2*m)-b.begin(); ans+=y-x; } cout<<ans; return 0; }
进食后人
本题不开
long long
见祖宗,还有数据点很善,暴力一分不给(考场上试过)。
- 1
信息
- ID
- 902
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 6
- 已通过
- 1
- 上传者