残缺的数字

AaBb301 2010-03-19 08:25:35
Description

可怜的小小在数数字……。本来有1..n这n个数,但是她一不小心数没了一个数X。如果这个事情被残酷的Evil Zig 发现,那么这个可怜的小女孩将会……。为了拯救小小我们必须找到那个失踪的数X!现在我们现在只知道 0..9个十个数字在这剩下的N-1个数中分别出现的次数,你必须以次求出N和X。若有多组解,则全部输出,每行一组。

Input

仅有一行,包含10个数,分别表示0 .. 9在n-1个数字中出现的次数。( 每个数均不大于300 )

Output

输入所有可能的N和X,每组一行。按从小到大的顺序排序(N为第一关键字,X为第二关键字)。若无解,输出“NO ANSWER”。

Sample Input


0 1 1 0 1 1 1 1 1 1

Sample Output


9 3
...全文
348 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ithiker 2010-03-20
  • 打赏
  • 举报
回复
mark
走好每一步 2010-03-20
  • 打赏
  • 举报
回复
前提:计算各个数字之和,只要其中某个数字比input多,找不到
for i 1~9 与input数字个数之和差1,找到答案,相等或超过找不到答案
10~99,与和差2,将相差的两个数字排列。若有排列小于i,找到答案。
与和差1,找到答案。同上
100~999,与和差3,将相差的三个数字排列,若有排列小于i,找到答案。
同上。。
1000~1029,与和差4.同上。
走好每一步 2010-03-20
  • 打赏
  • 举报
回复
//用穷举法。
//n上届为。(900*3 + 90*2 + 9*1) / 10 = 288.8
(1029-1000)*4 /10 = 11.6
11.6+288.8 = 300.4;

缺的那个数最多是4位数,去掉小数点0.4*10.刚好都不超过300(只是理想状态)
diablox0147 2010-03-20
  • 打赏
  • 举报
回复
我的回合! 抽牌!

发动场地卡:ACM的开始!
覆盖一张牌到场上然后献上2个祭品使用特殊召回:数学达人的降临!
并且使用魔法卡:20楼的保证!在第20回合的时候会获得解答!
icansaymyabc 2010-03-20
  • 打赏
  • 举报
回复
貌似可以用穷举法解决,算法复杂度为 0(n^n)。呵呵!
AlanBruce 2010-03-19
  • 打赏
  • 举报
回复
好好问个问题不行啊!

搞这么拽!

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧