能量球

能量球 (enb.pas/c/cpp)

题目描述

sideman 有着一个你们所不知道的秘密。实际上, sideman不是地球人,而是遥远的Gliese 行星的生物。sideman 虽然身在地球,但是时刻盼望着能够回到Gliese 去。终于有一天, sideman得到了几颗蕴含着无数能量的能量球。经过漫长艰苦的研究, sideman 搞清楚了这些能量球的规律。首先,能量球上面有一个正整数N,运用激发手段可以使得能量球上的正整数变为原来的数的一个真因子( A 是B 的一个真因子,等价于B 是A 的整数倍且0<A<B),并且放出单位数量的能量。当然,变为哪一个真因子是可以自由选择的。现在sideman 想知道每颗能量球最多可以放出多少能量,以及有多少种方式达到这个目的(两种操作方式被认为是不同的,当且仅当它们的操作序列中存在不同的真因子)。

分析:

首先,我们对一个数进行质因数分解,能量数就是它的质因数,所以对一个是进行质因数分解,但是数据的范围为10^9,但我们可以循环到sqrt(n),这样我们可以求出n的质因数,(但一个数是质因数时,我们可以看当n mod 它1 到n的质因数后,若这个数还是>1,那么它是质因数,他的质因数个数+1);那么它的方案数呢?若我们知道他的所有质因数后,将这些质因数拼成因数,所以方案数就是组合数,ans=n!/(a1!*a2!.....),先分组后分配。(可以先处理出阶乘,也可以一起算,一边乘一边除)。

注意,当n=0时,能量为0,但这也算一种方案,所以方案是为1。

代码实现:

program
exam;

const

p=1000000000;

var

i,j:longint;

ans,i1,total,t,k:int64;

a,a1:array[1..400000] of int64;

c:array[1..400000] of int64;

jj:array[0..30] of int64;

b:array[1..4000000] of boolean;

begin

assign(input,‘enb.in‘);

reset(input);

assign(output,‘enb.out‘);

rewrite(output);

t:=0;

while not eof do

begin

inc(t);

readln(a[t]);

end;

for i:=1 to 20 do

begin

jj[i]:=1;

for j:=1 to i do

jj[i]:=jj[i]*j;

end;

fillchar(b,sizeof(b),true);

for i:=2 to trunc(sqrt(p)) do

if b[i]=true then

begin

k:=trunc(sqrt(p)) div i;

for j:=2 to k do

begin

i1:=i*j;

b[i1]:=false;

end;

end;

for i:=1 to t do

begin

total:=0;

ans:=1;

a1:=a;

fillchar(c,sizeof(c),0);

for j:=2 to trunc(sqrt(a[i])) do

if (a1[i] mod j=0) and (b[j]=true) then

repeat

inc(total);

inc(c[j]);

a1[i]:=a1[i] div j;

until a1[i] mod j<>0;

if a1[i]>1 then

inc(total);

ans:=jj[total];

for j:=1 to trunc(sqrt(a[i])) do

if c[j]>1 then

ans:=ans div jj[c[j]];

if total=0 then

writeln(0,‘ ‘,1)

else

writeln(total,‘ ‘,ans);

end;

close(input);

close(output);;

end.

时间: 2024-12-15 03:09:18

能量球的相关文章

openjudge 大师兄,师傅被妖怪抓走啦

描述 孙悟空听到沙僧大喊一句:“大师兄,师傅被妖怪抓走啦!”于是孙悟空直追白骨精而去.孙悟空在一条长度为L的森林小路上飞奔,上面有L+1个整点,依次为0,1,2……L.白骨精会使用一种大范围的攻击法术,产生N个能量球,其中第i个能量球的能量值为f[i],落在小路的整点k[i]上.当孙悟空的位置离能量球i的距离为s时,会受到f[i]-s的伤害,如果f[i]-s计算出的伤害为负值,则判定为0.孙悟空虽然救师心切,但也不能葬身于白骨精的法术之中,因此他想知道应该躲在哪一个整点处,才能让自己受到的总伤害

HDU 4043 FXTZ II (组合数学-排列组合)

FXTZ II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 498    Accepted Submission(s): 266 Problem Description Cirno is playing a fighting game called "FXTZ" with Sanae. Sanae is a ChuShou

2016福州大学软件工程Beta阶段团队作业成绩汇总

1.评分规则 本次Beta阶段团队作业评分方法如下: 团队得分=[[7次scrum过程评分+(小组互评得分+教师评分)/2]/2],其中过程.小组.教师各30分 说明:由于没有规定提交团队贡献比,因此本次团队得分将直接加在每个团队成员身上 小组名 小组互评得分 教师评分 助教评分 得分 Aruba 29 28 18.23 25.08 Clove 23 27 28.85 26.28 606 not connectd 26 23 24.92 24.64 TAC 24 25 28.85 25.94 N

Vijos1617 超级教主

传送门@百度.. 背景 Orz4-3 jump 描述 LHX教主很能跳,因为Orz他的人太多了.教主跳需要消耗能量,每跳1米就会消耗1点能量,如果教主有很多能量就能跳很高. 教主为了收集能量,来到了一个神秘的地方,这个地方凡人是进不来的.在这里,教主的正上方每100米处就有一个能量球(也就是这些能量球位于海拔 100,200,300……米处),每个能量球所能提供的能量是不同的,一共有N个能量球(也就是最后一个能量球在N×100米处).教主为了想收集能 量,想跳着吃完所有的能量球.教主可以自由控制

【HTML5】Web Audio API打造超炫的音乐可视化效果

HTML5真是太多炫酷的东西了,其中Web Audio API算一个,琢磨着弄了个音乐可视化的demo,先上效果图: 项目演示:别说话,点我!  源码已经挂到github上了,有兴趣的同学也可以去star或者fork我,源码注释超清楚的哦~~之前看刘大神的文章和源码,感觉其他方面的内容太多了,对初学者来说可能一下子难以抓到Web Audio API的重点,所以我就从一个初学者的角度来给大家说说Web Audio API这些事吧. Web Audio API与HTML5提供的Audio标签并不是同

Unity3D入门(二):碰撞检測

碰撞器由来 1.系统默认会给每一个对象(GameObject)加入?一个碰撞组件(ColliderComponent),一些背景对象则能够取消该组件. 2.在unity3d中,能检測碰撞发生的方式有两种,一种是利用碰撞器,还有一种则是利用触发器.这两种方式的应用很广泛.为了完整的了解这两种方式,我们必须理解下面概念: (一)碰撞器是一群组件,它包括了非常多种类,比方:Box Collider,Capsule Collider等,这些碰撞器应用的场合不同,但都必须加到GameObjecet身上.(

SpriteKit给游戏弹跳角色添加一个高度标示器

这是一个类似于跳跃涂鸦的小游戏,主角不断吃能量球得到跳跃能量向更高的地方跳跃,如果图中碰到黑洞就挂了- 在游戏调试过程中如果能实时知道主角的高度就好了,这将有助于程序猿动态的判断游戏胜败逻辑. 你可以用print将高度显示在控制台中,不过这观看起来可不是太方便,索性就让我们把高度标示和游戏主角自己紧密结合起来吧! ;] 因为在SpriteKit中任何SKNode对象及其子对象都可以包含孩子,它们可以和父节点一起移动,旋转,缩放-这正是我们想要的效果. 首先,在创建游戏主角的代码后面新增如下代码:

《飞机大战》安卓游戏开发源码(终)

前言:最 近闲来无事,而且也是因为刚接触安卓不久,所以萌生了以后在开发web 项目的过程中同样开发安卓手游,因前一段时间项目需要独立完成了一款功能型手机app ,该App比较简单,全是按钮操作,也就是Activity之间的相互传值与过渡,所以对安卓的基本知识有了一定了解,在我的印象当中,感觉安卓手游是比 较困难的,但是有困难就要克服,所以有了开发游戏的念头. 上一篇文章中写到了飞机的发射子弹,在本文中,将继续完善代码,该代码也是最终的代码,本游戏至此开发结束,游戏界面很粗糙,毕竟不是专业开发游

雷谛净水器技术参数

3X家庭净水计划 1. 双膜单出水净水机(润佳系列 RO-18) 雷谛净水器主要参数: 双膜单出水,节能节水 智能控制显示 韩国进口RO和UF膜组件 马来西亚椰壳活性炭 欧洲标准工艺流程与结构设计 水压要求:0.1-0.4MPa 净水流量:50G 冲洗方式:自动冲洗 过滤效果:99.99% 产品尺寸:395*170*500mm 滤芯组合:PP+CTO+UF+RO+T33 2. 复合智能净水机(润怡系列 RO-9) 雷谛净水器主要参数: 九级渐进过滤,强大的复合前置滤芯 发明专利弱碱性水机 智能控