1 solutions

  • 0
    @ 2025-12-14 16:28:29

    题目

    思路

    怎么做?

    暴力。对于每个操作2,假设 xx 初始在数组的末尾,遍历数组内其他元素,如果有比 xx 大的,就将 xx 向前移动一格。(注意:对于 xx 前面的元素,须大于 xx 才要移动;对于 xx 后面的元素,大于等于 xx 就要移动。)

    怎么卡常优化?

    因本站评测机性能太差太好了,我们不得不运用局部变量加Ofast卡常优化套餐(开了Ofast就可以不开局部变量)。

    本站代码

    #include<bits/stdc++.h>
    #pragma GCC optimize("Ofast")    //被CCF禁用的神秘小代码,可以让程序变得很快(洛谷上不用开也能过)
    using namespace std;
    int n,q,u,v,x,cnt,a[8801];
    int main(){
        ios::sync_with_stdio(0);
        cin.tie(0);
        cout.tie(0);
        cin>>n>>q;
        for(int i=1;i<=n;++i){
            cin>>a[i];
        }
        for(int i=1;i<=q;++i){
            cin>>u>>x;
            if(u==1){
                cin>>v;
                a[x]=v;
            }
            else{
                cnt=n;
                for(int j=1;j<x;++j){
                    if(a[j]>a[x]){
                        --cnt;
                    }
                }
                for(int j=x+1;j<=n;++j){
                    if(a[x]<=a[j]){
                        --cnt;
                    }
                }
                cout<<cnt<<'\n';
            }
        }
    	return 0;
    }
    

    本站提交记录(有Ofast,无局部变量)

    洛谷代码

    #include<bits/stdc++.h>
    using namespace std;
    int n,q,u,v,x,a[8801];
    int main(){
        ios::sync_with_stdio(0);
        cin.tie(0);
        cout.tie(0);
        cin>>n>>q;
        for(int i=1;i<=n;++i){
            cin>>a[i];
        }
        for(int i=1;i<=q;++i){
            cin>>u>>x;
            if(u==1){
                cin>>v;
                a[x]=v;
            }
            else{
                int cnt=n;
                for(int j=1;j<x;++j){
                    if(a[j]>a[x]){
                        --cnt;
                    }
                }
                for(int j=x+1;j<=n;++j){
                    if(a[x]<=a[j]){
                        --cnt;
                    }
                }
                cout<<cnt<<'\n';
            }
        }
    	return 0;
    }
    

    洛谷提交记录(有局部变量,无Ofast)

    Information

    ID
    38
    Time
    1000ms
    Memory
    512MiB
    Difficulty
    10
    Tags
    # Submissions
    10
    Accepted
    1
    Uploaded By