为什么只有10分啊,绝望了!!!求助!!!

P2801 教主的魔法

Belarus @ 2019-09-08 20:47:40

严谨二分法查找
竟然只有1AC,还有WA和TLE
就算是从l到r搜一遍时间复杂度也是O(n)啊
而n<=1e6啊

//p2801
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+9;
typedef long long ll;
int n,q;
ll a[maxn],b[maxn];
inline ll search(ll lft,ll rt,ll exp){
    ll tot=0;
    while(lft<rt){
        ll mid=(lft+rt)>>1;
        if(b[mid]>=exp) rt=mid;
        else{
            lft=mid+1;
            tot=n-lft+1;
            break;
        }
    }
    return tot;
}
int main(){
    ios::sync_with_stdio(0);
    cin>>n>>q;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        b[i]=a[i];
    }
    while(q--){
        ll l=0,r=0,c=0,w=0;
        char ch;
        cin>>ch;
        if(ch=='A'){
            cin>>l>>r>>c;
            memcpy(b,a,sizeof(b));
            sort(b+1,b+n+1);
            cout<<search(l,r,c)<<endl;
        }
        else if(ch=='M'){
            cin>>l>>r>>w;
            for(int i=l;i<=r;i++) a[i]+=w;
        }
    }
    return 0;
}

by le_星辰 @ 2019-09-08 21:09:32

他好像就是想块内排序然后二分找到询问的那个高度,然后从那个位置扫一遍@Polaris_Dane


by Polaris_Dane @ 2019-09-08 21:11:50

@le_星辰

但他写错了


by le_星辰 @ 2019-09-08 21:12:31

而且时间过不了


by Polaris_Dane @ 2019-09-08 21:14:33

@le_星辰

全部WA或者T了

RT


by le_星辰 @ 2019-09-08 21:16:05

@Polaris_Dane 我根本都不会分块(),一开始看这个题以为是线段树,一算时间复杂度好像过不了


by Polaris_Dane @ 2019-09-08 21:18:13

其实暴力吸氧都能过了

我无语了

@le_星辰


by le_星辰 @ 2019-09-08 21:18:59

呼叫chenzhe(哭笑


by le_星辰 @ 2019-09-08 21:19:12

@Polaris_Dane


by Polaris_Dane @ 2019-09-08 21:20:44

@le_星辰

笑哭

我做完就呼叫(


by Belarus @ 2019-09-08 22:12:21

@le_星辰 怎么是你?!


上一页 | 下一页