*HDU 2451 数学
Simple Addition Expression
Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1723 Accepted Submission(s): 675
luxury yacht with 100 passengers on board is sailing on the sea in the
twilight. The yacht is ablaze with lights and there comes out laughers
and singing from the hall where an evening party is in full swing.
People are singing, dancing and enjoying themselves.
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.
2
3
4
10
11
2
3
3
3
4
//最近一段时间被数学搞晕了,各种烦躁,迷糊。这道题可以把数拆开来,首位可以取1,2,3,中间可以取0,1,2,3,最后一位可以取0,1,2。有多少个i,比如拆2345,
//先计算0~999有多少个,再计算1000~1999有多少个,再计算2000上面0~99,100~199,200~299有多少个,再计算300上面........如果第一位大于3,比如4321,那么他
//和9999没什么区别,中间的几位也是同样的道理。
#include<bits\stdc++.h>
#define ll long long
using namespace std;
char s[];
ll f[];
int main()
{
f[]=;f[]=; //10以下的有几个,下面的同理
for(int i=;i<=;i++)
{
f[i]=*f[i-];
}
while(scanf("%s",s)!=EOF)
{
ll ans=;
int len=strlen(s);
for(int i=;i<len;i++)
{
if(i==&&i!=len-)
{
if(s[i]-''>)
{ans+=f[len-i];break;}
else ans+=(s[i]-'')*f[len-i-];
}
else if(i!=&&i!=len-)
{
if(s[i]-''>)
{ans+=f[len-i];break;}
else ans+=(s[i]-'')*f[len-i-];
}
else if(i==len-)
ans+=s[i]-''>?:s[i]-'';
}
printf("%lld\n",ans);
}
return ;
}
*HDU 2451 数学的更多相关文章
- 组合数学第一发 hdu 2451 Simple Addition Expression
hdu 2451 Simple Addition Expression Problem Description A luxury yacht with 100 passengers on board ...
- HDU 5984 数学期望
对长为L的棒子随机取一点分割两部分,抛弃左边一部分,重复过程,直到长度小于d,问操作次数的期望. 区域赛的题,比较基础的概率论,我记得教材上有道很像的题,对1/len积分,$ln(L)-ln(d)+1 ...
- HDU 2451 Simple Addition Expression(组合数学)
主题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2451 Problem Description A luxury yacht with 100 pass ...
- HDU 5976 数学,逆元
1.HDU 5976 Detachment 2.题意:给一个正整数x,把x拆分成多个正整数的和,这些数不能有重复,要使这些数的积尽可能的大,输出积. 3.总结:首先我们要把数拆得尽可能小,这样积才会更 ...
- [ An Ac a Day ^_^ ] hdu 4565 数学推导+矩阵快速幂
从今天开始就有各站网络赛了 今天是ccpc全国赛的网络赛 希望一切顺利 可以去一次吉大 希望还能去一次大连 题意: 很明确是让你求Sn=[a+sqrt(b)^n]%m 思路: 一开始以为是水题 暴力了 ...
- hdu 4506(数学,循环节+快速幂)
小明系列故事——师兄帮帮忙 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Tot ...
- hdu 4432 数学杂题
http://acm.hdu.edu.cn/showproblem.php?pid=4432 6分钟写的代码,一上午去调试,, 哎,一则题目没看懂就去写了,二则,哎,,恶心了.在坚持几天然后ACM退役 ...
- hdu 4811 数学 不难
http://acm.hdu.edu.cn/showproblem.php? pid=4811 由于看到ball[0]>=2 && ball[1]>=2 && ...
- hdu 5288 数学 ****
给一个序列 定义函数f(l ,r) 为区间[l ,r] 中 的数ai不是在这个区间其他任意数aj的倍数 求所有f(l,r)之和 通过预处理,记录 a[i] 的左右边界(所谓的左右边界时 在从 a[i] ...
随机推荐
- 关于VPN的一些问题
在今在外出差,必须得连上公司的数据库,那就得使用VPN了,设置起来还算比较简单(我是win10), 简单介绍一下: 打开设置或者直接点击右下角的
- iOS_直播类app_HTTP Live Streaming
http://www.2cto.com/kf/201606/513980.html https://developer.apple.com/library/ios/technotes/tn2224/_ ...
- 数据结构与算法之链表-javascript实现
链表的定义: 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成.每个结点 ...
- webuploader在IE8/9下上传遇到的两个问题
最近在做图片上传功能. 点击一个按钮,弹出一个iframe,它是百度的webuploader插件 在点击关闭按钮时,IE9下总是会报错: __flash__removeCallback未定义错误 解决 ...
- 一个简单的消息提示jquery插件
最近在工作中写了一个jquery插件,效果如下: 就是一个简单的提示消息的一个东西,支持最大化.最小化.关闭.自定义速度.自定义点击事件,数据有ajax请求和本地数据两种形式.还有不完善的地方,只做了 ...
- C# 正则表达式总结
正则表达式 是一种匹配输入文本的模式..Net 框架提供了允许这种匹配的正则表达式引擎.模式由一个或多个字符.运算符和结构组成. 下面列出了用于定义正则表达式的各种类别的字符.运算符和结构. 字符转义 ...
- Bootstrap UI 编辑器
1. BootSwatchr BootSwatchr 是由 Drew Strickiand 独立开发和维护的,是唯一支持从右到左语言显示的 Bootstrap 自定义构建工具,这也是它的特色之一.Bo ...
- ExtJS 数据模型
自定义数据模型 数据模型类其实就是一个继承自Ext.data.Model 的类. Ext.define('MyApp.User', { extend: 'Ext.data.Model', fields ...
- Protocol Buffer搭建及示例
本文来源:http://www.tanhao.me/code/150911.html/ Protocol Buffer(简称Protobuf或PB)是由Google推出的一种数据交换格式,与传统的XM ...
- FragmentActivity_左右滑动的碎片
test1.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:an ...