社区讨论
刚刚入门赛H求调,更优做法暂不讨论
学术版参与者 5已保存回复 20
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 18 条
- 当前快照
- 1 份
- 快照标识符
- @losnjzp0
- 此快照首次捕获于
- 2023/11/10 21:27 2 年前
- 此快照最后确认于
- 2023/11/11 00:00 2 年前
CPP
#include <bits/stdc++.h>
#define int long long
#define INF 1e9
using namespace std;
const int maxn=2e5+5;
int n,m;
int ans[maxn],res[maxn];
int chuli(string s){
s=" "+s;
int l=1;
int fenmu=0,ss=1;
while(s[l]!='x'){
if(s[l]=='-') ss=-1;
else fenmu=fenmu*10+s[l]-'0';
l++;
}
fenmu=fenmu*ss;
l++;
int fj=0;
if(s[l]=='+') fj=1;
l++;
int n=0;
ss=1;
while(s[l]!='='){
n=n*10+s[l]-'0';
l++;
}
l++;
int shu=0;
ss=1;
while(l<s.length()){
if(s[l]=='-') s=-1;
shu=shu*10+s[l]-'0';
l++;
}
shu+=(fj==1?-n:n);
return shu/fenmu;
}
struct que{
int l,r;
int id;
friend bool operator<(que x,que y){
if(x.l==y.l) return x.r<y.r;
return x.l<y.l;
}
}q[maxn];
signed main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
cin>>n>>m;
for (int i=1;i<=n;i++){
string s;
cin>>s;
ans[i]=chuli(s);
}
for (int i=1;i<=m;i++){
cin>>q[i].l>>q[i].r;
q[i].id=i;
}
sort(ans+1,ans+1+n);
sort(q+1,q+1+m);
for (int i=1;i<=m;i++){
int sum=0;
int l=q[i].l,r=q[i].r;
for (int i=l;i<=r;i++){
int p=lower_bound(ans+1,ans+1+n,i)-ans;
if(p<=n && ans[p]==i) sum++;continue;
}
res[q[i].id]=sum;
}
for (int i=1;i<=m;i++) cout<<res[i]<<"\n";
return 0;
}
一半WA一半T。。如有指出真正问题者必关
回复
共 20 条回复,欢迎继续交流。
正在加载回复...