HDU 2451 Simple Addition Expression(组合数学)
主题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2451
The yacht is equipped with the most advanced navigation and driving system which can all be manipulated by a computer. When the captain notices that there is only gentle breeze and the sea waves are not high, he starts the autopilot. The yacht sails forward
smoothly, ploughs the waves. When it’s completely dark, the passengers start to feel a little funny for sudden forward rushes or sudden decelerations or slight swings. The captain immediately walks to the driving platform and switches the autopilot to human
manipulation. The yacht returns back to normal and the party restarts. Laughers come back, too.
The captain summons the engineer on board to do a thorough check of the navigation system. It turns out that only the computer is out of order, but the exact failure is still unclear. There is a computer scientist among the passengers who is also invited to
the cab to give a hand. He first inputs several groups of data to test the computer. When he inputs 1+2+3, the computer outputs 6, which is exactly right. But when he inputs 4+5+6, the computer outputs 5, which is wrong. Then he inputs 12+13+14, and gets 39,
another right answer, while he inputs 14+15+16, and gets 35, another wrong answer. After the test, the computer scientist says smilingly: “the failure is clear now. The computer's adder can not carry." After excluding the failure, the captain restarts the
autopilot and the yacht returns back to normal, sailing smoothly on the sea.
The captain and the engineer invite the computer scientist to sit down and have a talk. The computer scientist tells a story as following:
A former mathematician defined a kind of simple addition expression.
If there is an expression (i) + (i+1) + (i+2), i>=0, when carried out additive operations, no position has a carry, it is called simple addition expression.
For instance, when i equals 0, 0+1+2 is a simple addition expression, meanwhile when i equals 11, 11+12+13 is a simple addition expression, too. Because of that no position has a carry.
However, when i equals 3, 3+4+5 is not a simple addition expression, that is because 3+4+5 equals 12, there is a carried number from unit digit to tens digit. In the same way, when i equals 13, 13+14+15 is not a simple addition expression, either. However,
when i equals 112, 112+113+114 is a simple addition expression. Because 112+113+114 equals 339, there is no carry in the process of adding.
when the students have got the definition of simple addition expression, the mathematician puts forward a new question: for a positive integer n, how many simple addition expressions exist when i<n. In addition, i is the first number of a simple addition expression.
when the value of n is large enough, the problem needs to be solved by means of computer.
1
2
3
4
10
11
1
2
3
3
3
4
题意:
对于小于 n 的整数 i 中(i + i+1 + i+2)不会产生进位的一共同拥有多少种。
PS:
最高位满足1,2,3。中间的数要满足0,1,2,3。个位数满足0,1,2;
所以仅仅要找出小于 n 的数满足这个条件的个数。
代码例如以下:
#include <cstdio>
#include <cstring>
#include <cmath>
typedef __int64 LL;
int main()
{
char s[17];
while(~scanf("%s",s))
{
LL ans = 0;
int len = strlen(s);
int flag = 0;
for(int i = 0; i < len-1; i++)
{
if(s[i] > '3')
{
ans += pow(4.0,len-i-1)*3;//后面随便取都比原来的数小,所以直接结束
flag = 1;
break;
}
ans += (s[i]-'0')*pow(4.0,len-i-2)*3;/还须要考虑去了后面的数是不是比原来的数小
}
if(!flag)
{
if(s[len-1] > '3')
ans += 3;
else
ans += s[len-1]-'0';
}
printf("%I64d\n",ans);
}
return 0;
}
HDU 2451 Simple Addition Expression(组合数学)的更多相关文章
- 组合数学第一发 hdu 2451 Simple Addition Expression
		
hdu 2451 Simple Addition Expression Problem Description A luxury yacht with 100 passengers on board ...
 - HDU 2451 Simple Addition Expression
		
题目大意:有一个关于 简单加法表达式 的定义告诉你,就是 选一个数字i 如果 i+(i+1)+(i+2) 它的和,没有任何一位进位的话,那就是 一个i的简单加法表达式,求小于n的表达式数目. 题 ...
 - hdu 2451 Simple Addition Expression(数位DP )成败在于细节
		
亚洲区域赛的题,简单的数位DP题,注重细节. 任何细节都有可能导致wa,所以没有绝对的水题. 把握好细节,此题便A. #include<stdio.h> __int64 getans(__ ...
 - HDU 2451 Simple Addition Expression(找规律,考验智商)
		
题目 最近比赛的题目好多签到题都是找规律的考验智商的题目啊,,,我怎么越来越笨了,,,, 通过列举,可以发现规律: 从左往右按位扫这个数: 当数的长度大于1时: 当首位大于3时,答案就是4*4*4*… ...
 - 【HDOJ】2451 Simple Addition Expression
		
递推,但是要注意细节.题目的意思,就是求s(x) = i+(i+1)+(i+2),i<n.该表达中计算过程中CA恒为0(包括中间值)的情况.根据所求可推得.1-10: 31-100: 3*41- ...
 - 【计数】Simple Addition Expression
		
[来源] 2008年哈尔滨区域赛 [题目链接]: http://acm.hdu.edu.cn/showproblem.php?pid=2451 [参考博客]: HDU 2451 Simple Addi ...
 - HDU2451:Simple Addition Expression
		
Problem Description A luxury yacht with 100 passengers on board is sailing on the sea in the twiligh ...
 - *HDU 2451 数学
		
Simple Addition Expression Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Ja ...
 - 10994 - Simple Addition(规律)
		
Problem E Simple Addition Input: Standard Input Output: Standard Output Let’s define a simple recurs ...
 
随机推荐
- No matching code signing identity found
			
真机调试过程中弹出这个问题,网上找到的解决的方法,记录一下. .... 弄完这些步骤之后,上面多出一个 IOS disturbution.所以出现这个问题的解决办法应该是设置的证书没有刷新到本地所致.
 - Swift - 动画效果的实现方法总结(附样例)
			
在iOS中,实现动画有两种方法.一个是统一的animateWithDuration,另一个是组合出现的beginAnimations和commitAnimations.这三个方法都是类方法. 一,使用 ...
 - Introduction to Probability (三) Independence
			
两个事件独立性的定义是:事件A的发生对事件B的发生毫无影响,即从A的发生与否.我们不能猜測出B是否发生. 从概率等式的表示来看就是B在A发生的情况下发生的概率等于B发生的概率本身. 进而引出了A与B同 ...
 - 菜鸟版JAVA设计模式—从买房子看代理模式
			
今天学习了代理模式. 相对于适配器模式,或者说装饰器模式,代理模式理解起来更加简单. 代理这个词应该比較好理解,取代去做就是代理. 比方,我们买卖房子,那么我们会找中介,我要卖房子,可是我们没有时间去 ...
 - Linux下Qt4与qt5的程序使用输入法(ibus与fcitx)不冲突
			
这篇文章引用了较多其他作者的内容,也忘记引用的出处了,只能感谢了.以下转入正题. 对于qt5.5,要下载libqt库源码自己编译,参考解决Qt5 Creator无法切换输入法(fcitx),Ubunt ...
 - android使用篇(四) 注解依赖注入IOC实现绑定控件
			
在android使用篇(三) MVC模式中提到一个问题: 1) 视图层(View):一般採用XML文件进行界面的描写叙述,使用的时候能够很方便的引入,可是用xml编写了,又须要在Acitvity声明而 ...
 - IT痴汉的工作现状18-思维定式
			
前阵子周权出差给我带回来一个净水器,是直接安装在水龙头上的,小巧方便.我依照安装说明一步一步组装好了,感觉说明书还是比較靠谱的,没有遇到意外.但我发现它的净水.原水的button好像是有问题.它的结构 ...
 - 解决Myeclipse在port占用,导致tomcat无法启动。(Linux)
			
本文来源于:http://blog.csdn.net/svitter 引文:http://www.2cto.com/os/201305/209285.html { ubuntu查看占用某port的程序 ...
 - Spring Framework AOP具体解释
			
此前对于AOP的使用仅限于声明式事务,除此之外在实际开发中也没有遇到过与之相关的问题.近期项目中遇到了下面几点需求,细致思考之后,认为採用AOP来解决.一方面是为了以更加灵活的方式来解决这个问题,还有 ...
 - IBinder在进程之间传递一个对象的形式(一)
			
主张 什么时候service通常被称为远程时的,用到aidl来定一个接口供service和client来使用,这个事实上就是使用Binder机制的IPC通信.当client bind service成 ...