`
he91_com
  • 浏览: 410814 次
文章分类
社区版块
存档分类
最新评论

hdu 2451 Simple Addition Expression(数位DP )成败在于细节

 
阅读更多

亚洲区域赛的题,简单的数位DP题,注重细节。

任何细节都有可能导致wa,所以没有绝对的水题。

把握好细节,此题便A。

#include<stdio.h>
__int64 getans(__int64 s)
{
	__int64 ans=0,tmp=1000000000;//这里最大只能取10^9,取10^10就ce了
	if(s==0)return 0;//0单独考虑
	while(s<tmp)
		tmp/=10;
	while(s)
	{
        __int64 p=s/tmp,num;
		if(p>=4)//不是最后一位可以取0,1,2,3四个值,之前只考虑了0,1,2三个值,好伤。。。。。
		{
			num=1;
			while(s)
			{
				num*=4;
				s/=10;
			}
			ans+=num/4*3;//最后一位只能取0,1,2,
		}
		else
		{
			__int64 h=s;
			num=p;
			h/=10;
			if(h==0)//最后一位
                            ans+=num;
			else//不是最后一位
			{
			  while(h)
			  {
				num*=4;
				h/=10;
			  }
			  ans+=num/4*3;
			}
		}
		s%=tmp;
		tmp/=10;
	}
	return ans;
}
int main()
{
	__int64 n;
	while(scanf("%I64d",&n)!=-1)
	   printf("%I64d\n",getans(n));
	return 0;
}


分享到:
评论

相关推荐

    初探数位dp.pdf

    lazycal的集训队报告:初探数位DP 以HDU 2089,HDU 3652, URAL 1057等题目为例,介绍了数位DP的算法

    HDU DP动态规划

    【标题】"HDU DP动态规划"涉及到的是在算法领域中的动态规划(Dynamic Programming,简称DP)技术,这是解决复杂问题的一种高效方法,尤其适用于有重叠子问题和最优子结构的问题。动态规划通常用于优化多阶段决策...

    数位dp——某次队内分享任务

    在介绍数位DP之前,我们先来看一个具体的例子,即题目【不要62 HDU-2089】。这个问题要求计算在给定区间[n, m]中不包含数字4或连续数字62的吉利数的数量。朴素的解决方案是预处理1到1e6的所有数,判断它们是否吉利,...

    HDU DP 题集

    动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision process)的优化问题时,...

    HDU DP题解

    HDU上DP大集合,里面包括题,题解,代码,对DP入门者很实用,对DP老手也是有很大的提高

    ACM HDU题目分类

    1058 经典问题,丑数,DP;1081 经典 DP 等等。 搜索题 搜索题是 ACM HDU 题目分类中的一大类,例如,1010 搜索题,剪枝很关键;1016 经典的搜索;1026 搜索;1043 经典搜索题,八数码问题;1044 稍微有点麻烦的...

    HDU_2010.rar_hdu 2010_hdu 20_hdu acm20

    【标题】"HDU_2010.rar"是一个压缩包文件,其中包含了与"HDU 2010"相关的资源,特别是针对"HDU ACM20"比赛的编程题目。"hdu 2010"和"hdu 20"可能是该比赛的不同简称或分类,而"hdu acm20"可能指的是该赛事的第20届...

    DP.rar_DP_hdu_动态规划_动态规划 C++

    标题中的“DP.rar”表明这是一个关于动态规划的资料压缩包,而“DP_hdu”暗示了这些题目可能来自杭州电子科技大学(HDU)的在线编程平台。动态规划通常用于解决那些可以通过子问题的最优解来构建原问题最优解的问题...

    hdu.rar_hdu

    "hdu.rar_hdu"这个压缩包文件很可能是某位程序员整理的他在HDU上解决过的题目代码集合。这些代码通常包含了对各种算法的应用,例如排序、搜索、图论、动态规划等,对于学习算法和准备编程竞赛的初学者来说是一份宝贵...

    hdu1250高精度加法

    根据题目描述,该题目编号为HDU1250,其核心在于利用高精度加法解决问题。具体地,题目涉及到了斐波那契数列的一个变种:F(1)=1, F(2)=1, F(3)=1, F(4)=1, F(n&gt;4)=F(n-1)+F(n-2)+F(n-3)+F(n-4),其中n &gt; 4。这里的...

    acmhdu1005

    hdu 1005.比较简单的一道题,有兴趣的可以看看。

    HDU题目java实现

    【标题】"HDU题目java实现"所涉及的知识点主要集中在使用Java编程语言解决杭州电子科技大学(HDU)在线评测系统中的算法问题。HDU是一个知名的在线编程竞赛平台,它提供了大量的算法题目供参赛者练习和提交解决方案...

    hdu.rar_HDU 1089.cpp_OJ题求和_hdu_horsekw5_杭电obj

    【标题】"hdu.rar_HDU 1089.cpp_OJ题求和_hdu_horsekw5_杭电obj" 提供的信息是关于一个压缩文件,其中包含了一个名为 "HDU 1089.cpp" 的源代码文件,这个文件是为了解决杭州电子科技大学(Hangzhou Dianzi ...

    hdu 1257 最低拦截系统 lis

    题目名为“hdu 1257 最低拦截系统”,这里的“最低拦截系统”实际上是描述了一个问题场景,而具体的问题通过描述部分可以得知是要求找出给定数组中的最长递增子序列的长度。这里所谓的“最低拦截系统”可能是为了...

    HDU1059的代码

    HDU1059的代码

    hdu1001解题报告

    hdu1001解题报告

    hdu 1574 passed sorce

    hdu 1574 passed sorce

    hdu2101解决方案

    hdu2101AC代码

    ACM HDU

    【ACM HDU】指的是在ACM(国际大学生程序设计竞赛,International Collegiate Programming Contest)中,参赛者在杭州电子科技大学(Hangzhou Dianzi University,简称HDU)的在线评测系统上完成并已解决的题目集合...

Global site tag (gtag.js) - Google Analytics