最强DE 战斗力
时间限制:1000 ms | 内存限制:65535 KB
难度:3
描述
春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业。但许多国家对它虎视眈眈,准备联合起来对赵国发起一场战争。

显然,面对多个国家的部队去作战,赵国的兵力明显处于劣势。战斗力是决定战争成败的关键因素,一般来说,一支部队的战斗力与部队的兵力成正比。但当把一支部队分成若干个作战队伍时,这个部队的战斗力就会大大的增强。

一支部队的战斗力是可以通过以下两个规则计算出来的:

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

找找规律就发现尽可能的把这个数分成更多的3就会使乘积最大。

  • Ti最多能分成x=Ti/3个3

    • Ti%3==1时 从x个3中取出一个三和1组合成2*2即3^(x-1)
    • Ti%3==2时,3^x直接乘以2
    • Ti%3==3时 ,3^x
      因为1000/3=333.而3^333次方肯定会溢出 所以涉及到大数问题

大数用java解决很简单 不过我也用c写了一下 字符串模拟乘法

java代码:

import java.math.BigInteger;
import java.util.*;public class Main {public static void main(String[] args) {Scanner sca=new Scanner(System.in);int t=sca.nextInt();while(t-->0){int x=sca.nextInt();if(x<3){System.out.println(x);continue;}int n=x/3;BigInteger res=new BigInteger("3");if(x%3==2){res=res.pow(n);res=res.add(res);}else if(x%3==1){res=res.pow(n-1);res=res.add(res);res=res.add(res);}else{res=res.pow(n);}System.out.println(res);}}
}

c语言字符串模拟乘法:

#include <stdio.h>
#include <string.h>
int main()
{int t;scanf("%d",&t);while(t--){int n;scanf("%d",&n);if(n<=4){printf("%d\n",n);continue;}int x=n/3;char res[300];int index=0;memset(res,0,sizeof(res));res[index]='1';res[++index]='\0';for(int i=0;i<x-1;i++){int mm=index;int r=0,k=0;for(int j=0;j<mm;j++){r=((res[j]-'0')*3+k)%10;k=((res[j]-'0')*3+k)/10;res[j]=r+'0';   }if(k!=0){res[index]=k+'0';res[++index]='\0';}}if(n%3==0||n%3==2){int mm=index;int r=0,k=0;for(int j=0;j<mm;j++){r=((res[j]-'0')*3+k)%10;k=((res[j]-'0')*3+k)/10;res[j]=r+'0';   }if(k!=0){res[index]=k+'0';res[++index]='\0';}}if(n%3==1){int mm=index;int r=0,k=0;for(int j=0;j<mm;j++){r=((res[j]-'0')*4+k)%10;k=((res[j]-'0')*4+k)/10;res[j]=r+'0';   }if(k!=0){res[index]=k+'0';res[++index]='\0';}}if(n%3==2){int r=0,k=0;int mm=index;for(int j=0;j<mm;j++){r=((res[j]-'0')*2+k)%10;k=((res[j]-'0')*2+k)/10;res[j]=r+'0';   }if(k!=0){res[index]=k+'0';res[++index]='\0';}} for(int i=index-1;i>=0;i--)printf("%c",res[i]);printf("\n");}
}

nyoj541 最强DE 战斗力 (大数问题)相关推荐

  1. NYOJ541 最强DE 战斗力(第五届省赛试题)

    最强DE 战斗力 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业.但许多国家对它虎视眈眈,准备联合起来对赵国发起一 ...

  2. B 最强DE 战斗力(大数+数论)

    最强DE 战斗力 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业.但许多国家对它虎视眈眈,准备联合起来对赵国发起一 ...

  3. NYOJ - [第五届河南省程序设计大赛]最强DE战斗力(大数)

    题目链接:http://nyoj.top/problem/541 内存限制:64MB 时间限制:1000ms 题目描述 春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业.但许多国家对它虎视眈眈, ...

  4. NYOJ 541 最强DE 战斗力(大数水)

    最强DE 战斗力 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业.但许多国家对它虎视眈眈,准备联合起来对赵国发起一 ...

  5. nyoj 541 最强DE 战斗力

    最强DE 战斗力 时间限制:1000 ms  |           内存限制:65535 KB 难度:3 描述 春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业.但许多国家对它虎视眈眈,准备联 ...

  6. Nylg541 最强DE 战斗力

    最强DE 战斗力 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业.但许多国家对它虎视眈眈,准备联合起来对赵国发起一 ...

  7. nyoj 541 最强DE 战斗力(大数问题)

    描述 春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业.但许多国家对它虎视眈眈,准备联合起来对赵国发起一场战争. 显然,面对多个国家的部队去作战,赵国的兵力明显处于劣势.战斗力是决定战争成败的关 ...

  8. nyist 541最强DE 战斗力

    描述 春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业.但许多国家对它虎视眈眈,准备联合起来对赵国发起一场战争. 显然,面对多个国家的部队去作战,赵国的兵力明显处于劣势.战斗力是决定战争成败的关 ...

  9. 第五届河南省程序设计大赛——B 最强DE战斗力(找规律、大数定理)

    题目描述: 春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业.但许多国家对它虎视眈眈,准备联合起来对赵国发起一场战争. 显然,面对多个国家的部队去作战,赵国的兵力明显处于劣势.战斗力是决定战争成 ...

最新文章

  1. Unity接入安卓sdk查看应用内存占用
  2. 解析json,是还是不是,
  3. Ext.form.TextArea文本区
  4. 一加7充电_刘作虎:一加7没有无线充电,Dash是最好的快充之一
  5. reactnative 获取定位_[RN] React Native 获取地理位置
  6. JMS学习之ActiveMQ-简单使用
  7. Algs4-1.2.14实现Transaction中的equals()方法
  8. C++::增加目标码(object code)的大小的操作
  9. 十一、JAVA接口的定义和使用
  10. pojo类中list存储其他字段_如何从其他包含pojo类对象的数组列表中删除数组列表记录...
  11. OpenCL编程实例: 向量计算
  12. 算法与数据结构面试题(6)-腾讯面试题
  13. ListView嵌套GridView使用解析
  14. springboot内嵌tomcat如何优雅开启http端口
  15. 鸿蒙中国壁纸高清全面屏,华为P50pro最新确认:麒麟1020+立体全面屏+鸿蒙系统,这才是华为...
  16. pycharm和webstorm下载安装流程
  17. C++知三角形三边求面积
  18. 紫光云:打造数字化转型的基座
  19. html多个好看的背景动态效果(附源码)
  20. 点餐系统(设计模式)

热门文章

  1. 读书笔记『Kotlin实战』
  2. 计算机操作系统-3-存储管理
  3. 网络入门基础模型, 网络大体框架, TCP/IP协议栈, 各种局域网和广域网刨析 (以图解的方式推开网络大门)
  4. 让更多的人知道如何用C#操作斑马条码打印机
  5. Cobaltstrike学习(二)beacon命令
  6. java timsort_JDK(二)JDK1.8源码分析【排序】timsort
  7. Arduino与Proteus仿真实例-光线传感器(LDR)驱动仿真
  8. Mybatis generator自动生成mybatis配置和类信息
  9. 南通大学计算机科学与技术在哪个校区,南通大学各校区分别哪些专业
  10. java 四则运算_java实现小学生四则运算