• FZU2236 第十四个目标 dp+树状数组优化


    分析:这种题烂大街,n^2,然后数据结构优化下到nlogn,离散化

    #include <cstdio>
    #include <cstring>
    #include <queue>
    #include <set>
    #include <map>
    #include <stack>
    #include <cstdlib>
    #include <algorithm>
    #include <vector>
    #include <cmath>
    using namespace std;
    typedef long long LL;
    typedef pair<int,int>pii;
    const int N=1e5+5;
    const int INF=0x3f3f3f3f;
    const int mod=1000000007;
    int p[N],n,a[N],c[N];
    int cnt;
    void add(int x,int t){
       for(int i=x;i<=cnt;i+=i&(-i))
         c[i]=(c[i]+t)%mod; 
    }
    int ask(int x){
        if(x==0)return 0;
        int ans=0;
        for(int i=x;i>0;i-=i&(-i))
          ans=(ans+c[i])%mod;
        return ans; 
    }
    int main(){
        while(~scanf("%d",&n)){
          for(int i=1;i<=n;++i)
            scanf("%d",&a[i]),p[i]=a[i];
          sort(p+1,p+1+n);
          cnt=unique(p+1,p+1+n)-p-1;
          memset(c,0,sizeof(c));
          int ans=0;
          for(int i=1;i<=n;++i){
             int pos=lower_bound(p+1,p+1+cnt,a[i])-p;
             int tmp=(ask(pos-1)+1)%mod;
             add(pos,tmp);
             ans=(ans+tmp)%mod;
          }
          printf("%d
    ",ans); 
        }
        return 0;
    }
    View Code
  • 相关阅读:
    H5图片上传、压缩
    数据库基本操作
    数组遍历
    CURL
    获取IP
    Memcached的实战笔记
    修bug总结 (基于java语言)
    java开发工作的总结
    多线程测试类
    可清除的单例对象获取类
  • 原文地址:https://www.cnblogs.com/shuguangzw/p/5458623.html
Copyright © 2020-2023  润新知