hdu 2089 不要62

本文通过实战案例介绍了数位动态规划(数位DP)的基本原理和应用技巧,详细解释了一个具体的编程问题解决过程,包括状态定义、转移方程推导及代码实现。

链接:http://acm.hdu.edu.cn/status.php


刚学数位dp,学dp真心是一件痛苦的事、、、但是又很有用,只有硬起头皮上了

看了别人的解题报告,这次又是理解别个代码思路,注释了自己的理解

#include<stdio.h>
#include<string.h>
int dp[8][3];
//dp[i][0],[10^(i-1),10^i)内有多少个吉利号码
//dp[i][1],[10^(i-1),10^i)内有多少个以2开头的吉利号码
//dp[i][2],[10^(i-1),10^i)内有多少个非吉利号码
void inidp()
{
	int i,j;
	memset(dp,0,sizeof(dp));
	dp[0][0]=1;//数字10^0=1是一个吉利号码
	for(i=1;i<=6;i++)//最大有6位数
	{
		dp[i][0]=dp[i-1][0]*9-dp[i-1][1];
		//在前一位所有吉利数上加一个除4外的任意数字,但是可能在以2开头的数字前加了6
		dp[i][1]=dp[i-1][0];
		//在前一位的吉利数前加一个2
		dp[i][2]=dp[i-1][0]+dp[i-1][1]+dp[i-1][2]*10;
		//在吉利数前加4,在以2开头吉利数前加6,在非吉利数前加任意数
	}
}
int solve(int n)
{
	int x=n,i,j,bit[10],len=0;
	while(n)
	{
		bit[++len]=n%10;
		n/=10;
	}
	bit[len+1]=0;
	int flag=0,ans=0;//ans保持非吉利数
	for(i=len;i>0;i--)
	{
		ans+=dp[i-1][2]*bit[i];//上一位的所有不吉利数之前加bit[i]个数
		if(flag)
			ans+=dp[i-1][0]*bit[i];
		else
		{
			if(bit[i]>4) ans+=dp[i-1][0];//4加在吉利数之前
			if(bit[i]>6) ans+=dp[i-1][1];//6加在2开头的数之前
			if(bit[i+1]==6&&bit[i]>2) ans+=dp[i][1]; //如果能和上一个数组成62,此时以2开头的吉利数为dp[i][1]个
		}
		if(bit[i]==4||bit[i+1]==6&&bit[i]==2)//如果之前这个数本身就包含4或62,那么后面的都为不吉利数
			flag=1;
		//比如n==4320,4会和dp[3][?]根据条件处理,然后就应该处理[4001,4320]之间的数。但是4已经决定这些数
		//都是不吉利的了
	}
	return x-ans;
}
int main()
{
	inidp();
	int n,m;
	while(scanf("%d%d",&n,&m)&&(n+m))
	{
		//满足区间减法
		printf("%d\n",solve(m+1)-solve(n));
	}
	return 0;
}


复杂几何的多球近似MATLAB类及多球模型的比较 MATLAB类Approxi提供了一个框架,用于使用具有迭代缩放的聚集球体模型来近似解剖体积模型,以适应目标体积和模型比较。专为骨科、生物力学和计算几何应用而开发。 MATLAB class for multi-sphere approximation of complex geometries and comparison of multi-sphere models 主要特点: 球体模型生成 1.多球体模型生成:与Sihaeri的聚集球体算法的接口 2.音量缩放 基于体素的球体模型和参考几何体的交集。 迭代缩放球体模型以匹配目标体积。 3.模型比较:不同模型体素占用率的频率分析(多个评分指标) 4.几何分析:原始曲面模型和球体模型之间的顶点到最近邻距离映射(带颜色编码结果)。 如何使用: 1.代码结构:Approxi类可以集成到相应的主脚本中。代码的关键部分被提取到单独的函数中以供重用。 2.导入:将STL(或网格)导入MATLAB,并确保所需的函数,如DEM clusteredSphere(populateSpheres)和inpolyhedron,已添加到MATLAB路径中 3.生成多球体模型:使用DEM clusteredSphere方法从输入网格创建多球体模型 4.运行体积交点:计算多球体模型和参考几何体之间的基于体素的交点,并调整多球体模型以匹配目标体积 5.比较和可视化模型:比较多个多球体模型的体素频率,并计算多球体模型与原始表面模型之间的距离,以进行2D/3D可视化 使用案例: 骨科和生物力学体积建模 复杂结构的多球模型形状近似 基于体素拟合度量的模型选择 基于距离的患者特定几何形状和近似值分析 优点: 复杂几何的多球体模型 可扩展模型(基于体素)-自动调整到目标体积 可视化就绪输出(距离图)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值