首页 > 其他分享 >手机号码

手机号码

时间:2024-06-21 20:53:55浏览次数:20  
标签:11 int LL bool 手机号码 DP

手机号码

题意

\(11\) 位手机号,求 \([L,R]\) 之间所有满足以下条件的号码个数:

  1. \(4\) 和 \(8\) 不同时出现。

  2. 存在三个连续的数。

解析

拿来当数位 DP 板子(记搜版),记搜好用。

求 \([L,R]\) 的个数,我们用前缀和,求出 \([1,R]\) 和 \([1,L-1]\) 的个数,把限制条件变成一个。

dp 数组多开几维,把能记的状态都记上,转移按位枚举 \([0,9]\),并且注意限制条件。

数位 DP 有一个很常见的限制条件是某一位是否达到最大数,如果达到了,那后面的数不能无限制的填,否则 \([0,9]\) 都可以。

然后你会发现所有数位 DP好像长得差不多。

#include<cstdio>
#include<cstring>
#define LL long long
LL l,r,f[11][11][11][2][2][2][2];
int n[12];
inline LL dfs(int p,int a,int b,bool c,bool t,bool _4,bool _8)
{
//	p:now
//	a:p+1
//	b:p+2
//	c:whether reach the limit?
//	t:is there "three"
	if(_4&&_8) return 0;//this is top priority
	if(p<=0) return t;//pay attention the order
	if(f[p][a][b][c][t][_4][_8]!=-1) return f[p][a][b][c][t][_4][_8];
	LL res=0;int top=(c?n[p]:9);
	for(int i=0;i<=top;i++)
		res+=dfs(p-1,i,a,(c&&i==top),t||(i==a&&i==b),_4||i==4,_8||i==8);
	return f[p][a][b][c][t][_4][_8]=res;
}
LL work(LL x)
{
	if(x<1e10) return 0;//if smaller than 1e10,none.
	int len=0;
	while(x) n[++len]=x%10,x/=10;
	LL res=0;
	memset(f,-1,sizeof(f));
	for(int i=1;i<=n[len];i++)
		res+=dfs(10,i,0,i==n[len],0,i==4,i==8);
	return res;
}
int main()
{
	scanf("%lld%lld",&l,&r);
	printf("%lld\n",work(r)-work(l-1));
	return 0;
}

标签:11,int,LL,bool,手机号码,DP
From: https://www.cnblogs.com/ppllxx-9G/p/18261326

相关文章

  • 允许用户通过账号、邮箱或手机号码登录的两种处理办法
    在HTML前端,登录页面通常允许用户通过账号、邮箱或手机号码登录。后端处理这种需求时,1、使用这些正则表达式来检查用户输入:functionidentifyInput(input){constusernameRegex=/[1]{3,}$/;constemailRegex=/[2]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,6}$/;constphoneNumberRege......
  • 技术文章:使用Java进行微信ID和手机号码检测
    摘要本文将介绍一个Java程序,该程序能够检测文本中的微信ID和手机号码,并将其屏蔽。程序首先定义了一系列与微信相关的关键字,然后使用正则表达式来匹配合法的手机号码和微信ID。最后,该程序将检测到的手机号码和微信ID替换为星号,以保护用户隐私。1.程序介绍随着社交媒体的普及,个......
  • 挖数据平台的空号检测接口:识别实时手机号码中的空号问题
     在当今数字化的时代,手机号码已经成为了人们生活中不可或缺的一部分。然而,随着通信技术的不断发展,以及用户需求的增长,诸如手机号码质量问题的挑战也越来越明显。为了解决这个问题,挖数据平台推出了一项空号检测接口,旨在实时识别并过滤掉手机号码中的空号。该接口以大数据分析为......
  • 查询手机号码是否支持携号转网的API接口
      手机号码携号转网已经成为了一个热门话题,很多人在选择运营商时都会考虑这个因素。然而,要知道一个手机号码是否支持携号转网,并且查询其转网前及转网后所归属的运营商,是一件比较困难的事情。不过,幸运的是,有一些API接口可以帮助我们实现这个功能。今天,我要向大家介绍的就是一......
  • 浏览器脚本:获取MOKA简历中的手机号码自动生成二维码方便手机扫描拨号
    效果演示:对其中隐私部分已经隐藏,请自行测试JS控制台代码:letlastPhoneNumber='';constcheckPhoneNumber=()=>{constelements=document.querySelectorAll('[class*="sd-Icon-iconmobile"]');elements.forEach(element=>{cons......
  • 手机号码
    这道题目要注意一个点,“是否出现连续\(3\)个相同的数字”这一维是必须的试想一下,如果我们设\(f[i][j][k][0/1][0/1]\)表示填到第\(i\)位,第\(i\)位数字是\(j\),第\(i\)位前面由\(k\)个数字与\(j\)相同(\(k\)的取值是\(0,1,2\),如果\(k\)取\(2\)的话,那么表示至少有\(2\)个相同),是否出现......
  • 地图商家POI数据采集软件|百度地图采集|高德地图采集|腾讯地图采集|美团采集|手机号码
    1、可以导出地图搜索结果2、数据来源高德、腾讯、百度、Google地图、大众点评、企业名录3、可导出Excel、通讯录VCF4、可同时采集多个关键字(行业)5、可同时采集指定省份下多个城市6、可同时指定多个包含、排除关键词7、采集后可打开地图查看详情8、大数据采集支持地图KEY池管理避......
  • BIP移动端手动调整手机号码等样式
    conststyle=document.createElement('style')style.innerHTML=`[fieldid="507ccae8MobileArchive|phone"].ys-disabled-mobileLocale{display:flex;justify-content:center;align-items:......
  • 批量手机号码归属地查询工具
    在日常工作和生活中,手机号码归属地的查询需求越来越普遍。这款查询软件,具有高效、便捷、隐私保护等诸多优势,让您轻松解决手机号码归属地查询问题。可以快速批量查询手机号码归属地,为您节省宝贵的时间和精力。无需联网即可进行查询。无需上传号码到远程服务器,确保您的数据安全,本地......
  • 网站程序中手机号码判断方法
     需求:输入错误的手机号,会有提示语,正确的手机号码会有正确的图标  效果:  思路:  (1)排版(不细讲),使用input、button、span等标签,排版里面一个主要的小点是,需要写出两个span,通过v-show先进行隐藏,等后面判断手机号码的正确错误再进行显示与隐藏    (2)接着,就需要在input......