• E. Minimum Array(贪心+二分)


      今天才知道可以在multiset里自带了lowbound和uppbound函数,而且用起来比三个参数的要快,multiset和set区别就是可以放重复元素,用迭代器删只会删指定的那一个,按数值删会把该值全删了。

    #include<bits/stdc++.h>
    using namespace std;
    #define ls rt<<1
    #define rs (rt<<1)+1
    #define ll long long
    #define fuck(x) cout<<#x<<"     "<<x<<endl;
    const int maxn=2e5+10;
    int d[4][2]={1,0,-1,0,0,1,0,-1};
    int a[maxn],b[maxn],c[maxn],n;
    multiset<int>st;
    int main(){
        int n,tmp;
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            scanf("%d",&(a[i]));
        for(int i=1;i<=n;i++)
            scanf("%d",&tmp),st.insert(tmp);
        multiset<int> ::iterator it1,it2;
        for(int i=1;i<=n;i++)
        {
            it1=st.lower_bound(n-a[i]);
            it2=st.begin();
            if(it1==st.end()) it1=it2;
            if((a[i]+*it1)%n<=(a[i]+*it2)%n)
            {
                printf("%d ",(a[i]+*it1)%n);
                st.erase(it1);
            }
            else
            {
                printf("%d ",(a[i]+*it2)%n);
                st.erase(it2);
            }
        }
        return 0;
    }
  • 相关阅读:
    登陆的一个大概流程
    过滤器实现编码过滤处理
    注册的一个大概流程
    lstm clip
    gemm c++
    lstm的debug模式下编译不行貌似
    caffe编译关于imread问题的解决
    c++ 走向高级之日积月累
    c++ 线程
    InitGoogleLogging坑爹
  • 原文地址:https://www.cnblogs.com/eason9906/p/11754739.html
Copyright © 2020-2023  润新知