zoukankan      html  css  js  c++  java
  • 2266: number

    2266: number

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 76  解决: 31
    [提交][状态][讨论版][命题人:admin]

    题目描述

    某人刚学习了数位DP,他在某天忽然思考如下问题:

    给定n,问有多少数对<x, y>满足:

    x, y∈[1, n], x < y

               x, y中出现的[0, 9]的数码种类相同

    输入

    一个整数n (n <= 107)

    输出

    输出一个数即答案

    样例输入

    30

    样例输出

    3

    提示

    <1, 11> <2, 22> <12, 21>

    #include<stack>
    #include<queue>
    #include<math.h>
    #include<vector>
    #include<string>
    #include<stdio.h>
    #include<iostream>
    #include<string.h>
    #include<algorithm>
    #include<map>
    #define maxn 1000005
    #define mem(a,b) memset(a,b,sizeof(a))
    #define ll long long
    #define mod 1000000007
    #define inf 0x3f3f3f
    using namespace std;
    ll ans[1<<9+1];
    int main(){
        int n;while(~scanf("%d",&n)){
             mem(ans,0);ll sum=0;
             for(int i=1;i<=n;i++){
                int x=i;int s=0,y=0;
                while(x){
                    y=x%10;
                    x/=10;
                    s|=(1<<y);//cout<<s<<" "<<(1<<y)<<" ";
                }
                //cout<<endl;
                sum+=ans[s];
                ans[s]++;
             }
            cout<<sum<<endl;
        }
    }



  • 相关阅读:
    c基础
    一维数组,字符数组
    循环结构
    分支结构
    结构体
    Python简介和入门
    Python基础(一)
    Markdown 基础学习
    PyCharm 专业版安装
    Python基础(二)
  • 原文地址:https://www.cnblogs.com/da-mei/p/9053244.html
Copyright © 2011-2022 走看看