zoukankan      html  css  js  c++  java
  • hdoj5327【前缀和思想】

    题意:
    找给定区间的美丽数,美丽数的意思就是这个数每个位上的数都是唯一的。
    思路:
    前缀和的思想。
    感想:
    就是你当前位置代表某个特性的前面的所有和(瞎比比的,说了下感觉)。前提是你必须找到这样的特性,比如CF的很多题目都是这样子,给你1e5的查询,题解马上一堆线段树,这种区间的预处理,前缀和的思想很好。还有就有一题实现区间的压缩,也是很棒啊。

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    typedef unsigned long long ULL;
    const double eps=1e-6;
    const double pi=acos(-1.0);
    const int mod=998244353;
    const int INF=0x3f3f3f3f;
    
    const int N=1e5+10;
    
    bool vis[15];
    int d[N];
    
    int shi(int x)
    {
        int k;
        memset(vis,0,sizeof(vis));
        for(int i=1;;i++){
            k=x%10;
            if(!vis[k])
                vis[k]=1;
            else
                return 0;
            x/=10;
            if(!x)
                break;
        }
        return 1;
    }
    void init()
    {
        memset(d,0,sizeof(d));
        for(int i=1;i<=N;i++){
            if(shi(i))
                d[i]=1;
            else
                d[i]=0;
        }
        for(int i=2;i<=N;i++)
            d[i]+=d[i-1];
    }
    
    int main()
    {
        int t;
        cin>>t;
        init();
        while(t--){
            int a,b;
            scanf("%d%d",&a,&b);
            printf("%d
    ",d[b]-d[a-1]);
        }
        return 0;
    }
    
  • 相关阅读:
    Unique Binary Search Trees 解答
    Unique Paths II 解答
    Unique Paths 解答
    Maximum Subarray 解答
    Climbing Stairs 解答
    House Robber II 解答
    House Robber 解答
    Valid Palindrome 解答
    Container With Most Water 解答
    Remove Duplicates from Sorted List II 解答
  • 原文地址:https://www.cnblogs.com/keyboarder-zsq/p/5934413.html
Copyright © 2011-2022 走看看