首页 > 其他分享 >数位dp windy数

数位dp windy数

时间:2024-09-22 09:47:18浏览次数:1  
标签:cnt 15 int ll windy dp 数位

学习笔记

因为这题总是涉及相邻位,所以在计算的时候要多计算几个。

#include<bits/stdc++.h>
using namespace std;
#define ll long long 
int n,m;
ll dp[15][15];
int a[15];
void init(){
	
	for(int i=0;i<=10;i++){
		dp[1][i]=1;
	}
	for(int i=2;i<=10;i++){
		for(int j=0;j<=9;j++){
			for(int k=0;k<=9;k++){
				if((abs(j-k)>=2)){//相邻 
					dp[i][j]+=dp[i-1][k];
				}
			}
		}
	}
}

ll dig(int x){
	int cnt=0;
	ll ans=0;
	do{
		a[++cnt]=x%10;
		x/=10;
	}while(x);
	a[cnt+1]=-1;
	
	for(int i=1;i<=cnt-1;i++){//除了最高位,其他数位的情况都无脑合法,因为我们是转移过来的
		for(int j=1;j<=9;j++){
			ans+=dp[i][j];
		}
	} 
	//因为windy数涉及高一位,但最高位没有高一位 
	for(int i=1;i<a[cnt];i++){//最高位最后一个数不能取,其他都i可以 
		ans+=dp[cnt][i];
	}
	
	for(int i=cnt-1;i>=1;i--){
		for(int j=0;j<a[i];j++){
			if(abs(j-a[i+1])>=2){
				ans+=dp[i][j];
			}
		}
		if(abs(a[i]-a[i+1])<2){//一次不合法,后面全部不合法 
			break;
		}
	} 
	
	return ans;
}

int main(){
	ios::sync_with_stdio(false);
	init();
	cin>>n>>m;
	cout<<dig(m+1)-dig(n)<<"\n";
	return 0;
}

标签:cnt,15,int,ll,windy,dp,数位
From: https://www.cnblogs.com/sadlin/p/18424946

相关文章

  • 如何在 WordPress 网站中使用 Importmap
    我一直在尝试开发一个基本的wordpress经典主题,无需构建步骤,我可以将其用作入门主题,以便将来开发客户端站点。在撰写本文时,我没有做任何自由职业,因为我正在为一家网络机构工作,并且我们正在构建的网站都涉及构建步骤。所以我想写一个关于如何在wordpress主题中使用importmap的......
  • 在 WordPress 中排队 CSS 和 JS 脚本以获得更好的性能
    wordpress是开源软件–用户可以按照自己的意愿安装、修改和分发它。由于每个人都可以访问源代码,数百万wordpress专家和开发人员可以创建工具和扩展并与公众分享。让我们看看如何将css和js文件加入到你的wordpress项目中。大多数新开发者都喜欢,里面“header.php”<ti......
  • 代码随想录训练营第39天|树形dp
    198.打家劫舍classSolution{public:introb(vector<int>&nums){nums.insert(nums.begin(),0);intn=nums.size();vector<int>dp(n,INT_MIN);dp[0]=0;dp[1]=nums[1];for(inti=2;i<n;i++......
  • 数位dp 不要62
    纯纯数位dp板子,可以顺着思路下来。传统技能学习笔记不要62libreoj设状态为\(dp[i][j]\)为第\(i\)位是\(j\)的可能情况数。枚举位数,这位的数,低一位的数,将每一位的组合可能存下来,但要把这位是4与这位是6低一位是2的情况排除掉。voidinit(){ dp[0][0]=1; for(in......
  • 2024ICPC网络赛(2)-K.Match——匹配、奇妙的n4 DP
    题目:https://qoj.ac/contest/1799/problem/9380题意:给两个长度为\(n\)的序列\(a,b\),若\(a_i\oplusb_j\geqk\)则连一条左侧\(i\)到右侧\(j\)的边,这样得到一张二分图。对于每个\(x=1,\dots,n\),询问大小为\(x\)的匹配的数量。\(1\leqn\leq200\).首先要知道一般二......
  • 数字产品护照 (DPP) 解决方案:利用 Blazor 和区块链实现产品全生命周期追踪
    数字产品护照(DPP)解决方案:利用Blazor和区块链实现产品全生命周期追踪随着全球对可持续发展和产品透明度的关注日益增加,企业需要一种可靠的方法来跟踪和管理产品生命周期中的关键数据。我们的数字产品护照(DigitalProductPassport,DPP)系统正是为此而生,提供了一种安全透明的方......
  • 基于UDP的网络编程
    基于UDP的网络编程@[toc]使用基于UDP的网络编程方法,完成远程计算等差数列的前n项和功能(1)客户端将一等差数列的首项a1,公差d和项数n发送给服务器;(2)服务器端接收到数据后对接收到的数据进行解析,将前n项和的计算结果发送给客户端;(3)客户端收到后输出到控制台。UDPSenderpackageMoocPart......
  • WordPress 迁移插件终极指南
    迁移WordPress网站就像收拾房子搬到新房子一样。确保所有内容(内容、主题、插件、媒体文件甚至数据库)完美移动且没有任何损坏的挑战似乎令人畏惧。但就像搬家公司让搬家变得更容易一样,WordPress迁移插件简化了将网站从一台主机移动到另一台主机的复杂过程。无论您是切换主机、从......
  • JAVA网络编程【基于TCP和UDP协议】超详细!!!
    ip地址:唯一标识主机的地址端口号:用于标识计算机上某个特定的网络程序InetAddress类方法说明InetAddressInetAddress.getLocalHost()静态方法,获取本机InetAddress对象(主机名+ip地址)InetAddressInetAddress.getByName("主机名")根据主机名或者域名获取ip地址对象(主机名+ip地址......
  • 解决QFC810.exe运行时错误:soundplayer.dll文件丢失,恢复音频播放的实用指南
    当遇到QFC810.exe运行时错误,提示soundplayer.dll文件丢失时,这通常意味着你的系统或应用程序目录中缺少了必要的动态链接库文件(DLL),导致音频播放功能无法正常工作。以下是一份恢复音频播放的实用指南:一、确认问题首先,确认错误消息确实是由于soundplayer.dll文件丢失引起的。这......