博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
轻院校赛-zzuli 2266: number【用每位的二进制的幂的和来进行hash(映射)处理】...
阅读量:5144 次
发布时间:2019-06-13

本文共 1016 字,大约阅读时间需要 3 分钟。

zzuli 

大致题意:
 
给定n,问有多少数对<x, y>满足:
x, y∈[1, n], x < y
           x, y中出现的[0, 9]的数码种类相同
输入
一个整数n (n <= 107)
输出
输出一个数即答案
样例输入          
30 
样例输出        
  3

大致思路:

  N的值其实也不是很大,可以考虑跑一次循环把每个值全部分离一次,然后将用二进制上的第0-第9位的‘1’来表示数码0-9,并且要用数组进行标记防止加了两次!
 
  至于hash2 同样因为2^10也就1204,其实开到1000就够了!
 
  在hash2中1--1000每个数字都代表一种种类!
 
  求得是两个同种类型的组合,n个同类数可以构成n*(n-1)种不重不漏的组合!

 


AC 题解:

1 #define N 2005 2  3 int main(){ 4     int n; 5     int hash2[2001]; 6  7     while(scanf("%d",&n)!=EOF){ 8         memset(hash2,0,sizeof(hash2)); 9         for(int i=1;i<=n;i++){10             int x=i;11 12             int vis[10]={
0};13 int val=0;14 while(x>0){15 int y=x%10;16 if(!vis[y]){17 val+= 1<
=2){28 // printf("%d %d\n",i,hash2[i]);29 ans+=(ll)hash2[i]*(ll)(hash2[i]-1)/(ll)2;30 }31 32 }33 printf("%lld\n",ans);34 35 }36 37 return 0;38 }
View Code(头文件都私奔去了!)

 

转载于:https://www.cnblogs.com/zhazhaacmer/p/8933151.html

你可能感兴趣的文章
[面试算法题]有序列表删除节点-leetcode学习之旅(4)
查看>>
SpringBoot系列五:SpringBoot错误处理(数据验证、处理错误页、全局异常)
查看>>
kubernetes_book
查看>>
OpenFire 的安装和配置
查看>>
ZJOI2018游记Round1
查看>>
侧边栏广告和回到顶部
查看>>
https://blog.csdn.net/u012106306/article/details/80760744
查看>>
ios应用版本号设置规则
查看>>
海上孤独的帆
查看>>
error: more than one device and emulator 问题解决
查看>>
Android Studio 编译不通过,报错“找不到org.apache.http
查看>>
springmvc集成Freemarke配置的几点
查看>>
Django 学习
查看>>
Linux-以指定用户运行redis
查看>>
Linux-socket的close和shutdown区别及应用场景
查看>>
xpath
查看>>
parted分区
查看>>
图片标签img
查看>>
JavaScript语言中文参考手册.chm
查看>>
表哥的Access入门++以Excel视角快速学习数据库知识pdf
查看>>