最强DE战斗力
最强DE战斗力
时间限制: 1 Sec 内存限制: 128 MB
提交: 40 解决: 14
[提交][状态]
题目描述
春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业。但许多国家对它虎视眈眈,准备联合起来对赵国发起一场战争。
显然,面对多个国家的部队去作战,赵国的兵力明显处于劣势。战斗力是决定战争成败的关键因素,一般来说,一支部队的战斗力与部队的兵力成正比。但当把一支部队分成若干个作战队伍时,这个部队的战斗力就会大大的增强。
一支部队的战斗力是可以通过以下两个规则计算出来的:
1.若一支作战队伍的兵力为N,则这支作战队伍的战斗力为N;
2.若将一支部队分为若干个作战队伍,则这支部队的总战斗力为这些作战队伍战斗力的乘积。
比如:一支部队的兵力为5时的战斗力分析如下:
|
情况 |
|
作战安排 |
总的战斗力 |
|
|
1 |
1,1,1,1,1(共分为5个作战队伍) |
1*1*1*1*1=1 |
|
2 |
1,1,1,2 (共分为4个作战队伍) |
1*1*1*2=2 |
|
3 |
1,2,2 (共分为3个作战队伍) |
1*2*2=4 |
|
4 |
1,1,3 (共分为3个作战队伍) |
1*1*3=3 |
|
5 |
2,3 (共分为2个作战队伍) |
2*3=6 |
|
6 |
1,4 (共分为2个作战队伍) |
1*4=4 |
|
7 |
5 (共分为1个作战队伍) |
5=5 |
显然,将部队分为2个作战队伍(一个为2,另一个为3),总的战斗力达到最大!
输入
第一行: N 表示有N组测试数据。 (2<=N<=5)
接下来有N行,每行有一个整数Ti 代表赵国部队的兵力。 (1 <= Ti <= 1000)i=1,…N
输出
对于每一行测试数据,输出占一行,仅一个整数S, 表示作战安排的最大战斗力。
样例输入
2
5
4
样例输出
6
4
提示
来源
要想使乘积最大显然最后肯定是2和3的乘积,于是我用了递归。。1000范围内肯定WA,200就不行了。。于是,大数,怎么大数呢,大数相乘?有点意思,不过你又错了,它从哪来的大数相乘啊。
前边说了乘的肯定是2或者3,所以就是一个大数乘以一个2或者3,能乘3肯定不乘2,那么问题来了,乘几次?数/3就好了
CODE:
#include<stdio.h>
#include<string.h>
int sum[205];
void multify(int n) // 函数,这个大数乘的是几 (2or3,要是数除3余1的话,乘4,因为乘3再乘1没有乘4大==||
{
int i, t = 0;
for(i = 0; i < 200; i++, t /= 10)
{
t = sum[i] * n + t;
sum[i] = t % 10; //
}
}
int main()
{
int n, t, x, i;
scanf("%d", &n);
while(n--)
{
memset(sum, 0, sizeof(sum));
sum[0] = 1;
scanf("%d", &t);
x = t / 3; // 需要乘以几次3
if(t % 3 == 1) x--; // 如果是1 ,就少乘一次3,乘一次4
for(i = 0; i < x; i++)
multify(3);
if(t % 3 == 1) multify(4); // 乘一次4
else if(t % 3 == 2) multify(2); //如果余2,就多乘以一次2。
for(i = 200; i >= 0; i--)
if(sum[i])
break; //找 开始的位数
for(; i >= 0; i--)
printf("%d", sum[i]); //按位输出
printf("\n");
}
return 0;
}
能不能好好想。
dissectible ~! Careful Analysis ~! cut it up ~! anatomize ~! scrutiny~!
(好好读题~题上也有说乘以2或者3最大。。
最强DE战斗力的更多相关文章
- NYOJ541 最强DE 战斗力(第五届省赛试题)
最强DE 战斗力 时间限制:1000 ms | 内存限制:65535 KB 难度: 描述 春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业.但许多国家对它虎视眈眈,准备联合起来对赵国发起一场 ...
- NYOJ--541--最强DE 战斗力(递推)
最强DE 战斗力 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业.但许多国家对它虎视眈眈,准备联合起来对赵国发 ...
- 最强DE 战斗力 (nyoj 541)
题解链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=541 几天前百度题解后用数学知识AC的,后来大牛说这是一道动态规划题. 网上的数学解题链接 ...
- NYOJ 541 最强的战斗力
最强DE 战斗力 时间限制:1000 ms | 内存限制:65535 KB 难度: 描写叙述 春秋战国时期,赵国地大物博,资源很丰富.人民安居乐业.但很多国家对它虎视眈眈.准备联合起来对赵国发起一 ...
- zoj 2334 Monkey King/左偏树+并查集
原题链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1389 大致题意:N只相互不认识的猴子(每只猴子有一个战斗力值) 两只 ...
- 【转】真正的Acmer
上海交大 戴文渊 大牛写的东西,建议大家看看 yiyiyi4321 2007-07-10 13:49:30.0 http://dwyak.spaces.live.com/?_c11_BlogPart_ ...
- 发布阶段 github和360移动助手及总结
经过一系列的冲刺和加工 最激动人心的无非在发布平台上公布上自己辛苦奋斗了一个周期的产品,这个时候的我们就像Iphone 6发布会上得CEO,为自己的产品完美画上了研发的句号. 接下来的日子就是准备ve ...
- DOTA自走棋卡牌及搭配阵容
这个游戏其实就根炉石jjc和A牌轮抽一样,前期要找着质量牌抓,保证你至少不漏.根据你的需求补一些你不会上场的阵容组件,最后根据你的组件和核心紫卡来哪张来决定打什么.另外也要考虑场上另外几家,如果有一家 ...
- 你是个好人,但不是个好leader
午餐时间,我翻看朋友圈,浏览到一条朋友A的最新动态,她刚创业半年多的公司因为资金周转不灵.项目搁浅.合伙人撤资等多方面原因,最终倒闭了. 朋友A有着多年的名企工作经验,985大学毕业,在学校时是学霸, ...
随机推荐
- spring cloud网关gateway
spring gateway使用基于netty异步io,第二代网关:zuul 1使用servlet 3,第一代网关,每个请求一个线程,同步Servlet,多线程阻塞模型.而spring貌似不想在支持z ...
- MSSQL sql常用判断语句
.判断数据库是否存在 if exists (select * from sys.databases where name = '数据库名') drop database [数据库名] 2 判断 ...
- Vue混入:基础
混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能. 一 App组件 <template> <div id="app"> & ...
- Game on a Tree Gym - 102392F(树上最大匹配)
思路: 本质是求一个树上的最大匹配能否覆盖所有的点. dfs遍历,用qian[]数组记录当前节点的子树内有几个没有匹配的点(初始化为-1因为可以匹配掉一个子树中未匹配的点),pipei[]数组记录当前 ...
- CPU高速缓存行与内存关系 及并发MESI 协议(转载)
原文链接 http://www.cnblogs.com/jokerjason/p/9584402.html 先来一个整体图 一. 大致关系: CPU Cache --> 前端总线 FSB (下图 ...
- python的运算符和while循环
一.运算符 计算机可以进行的运算有很多种,不只是加减乘除,它和我们人脑一样,也可以做很多运算. 种类:算术运算,比较运算,逻辑运算,赋值运算,成员运算,身份运算,位运算,今天我们先了解前四个. 算术运 ...
- canvas添加事件
https://blog.csdn.net/xundh/article/details/78722744
- 一波骚操作,我把 SQL 执行效率提高了 10,000,000 倍!
作者:风过无痕-唐 http://www.cnblogs.com/tangyanbo/p/4462734.html 场景 我用的数据库是mysql5.6,下面简单的介绍下场景 课程表: create ...
- pycharm修改字体大小和主题
一,修改文字大小: 二,修改主题:你可能对编辑器的外观仍不满意,例如你希望将文档字符串改变为另外一种颜色,下面介绍具体更改方法:
- Windows下svn使用教程
SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Subversion是什么? ...