zoukankan      html  css  js  c++  java
  • 奇怪的排序

    P6: 奇怪的排序

    Description:

    春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业。但许多国家对它虎视眈眈,准备联合起来对赵国发起一场战争。

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

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

    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),总的战斗力达到最大!

    Input

    第一行: N表示有N组测试数据.(2<=N<=5)

    接下来有N行,每行有一个整数Ti 代表赵国部队的兵力. (1<=Ti<=1000)

    i=1,…N

    Output

    对于每一行测试数据,输出占一行,仅一个整数S,表示作战安排的最大战斗力。

    Sample Input

    2

    5

    4

    Sample Output

    6

    4

    分析:尽量把它拆为3

           详解:http://zhidao.baidu.com/link?url=BxQb3knqy7PqRifoPEVCsY41pk_2aBmTqHFnChgwchPLSiP9C1bpc5tSj4u7UEwFP3WDF7Lxb9_aMEmEV-5dvq

    #include<iostream>
    using namespace std;
    #define N 100
    int a[N];
    int main()
    {
        int fun(int);
        int n,m;
        int i,j;
        int k,count;
        cin>>m;
        while(m--)
        {
            cin>>n;
            count=n/3;
            k=n%3;
            if(k==1)
            {
                count--;
                k=4;
            }
            for(i=1,a[0]=1;i<=count;i++)
            fun(3);
            if(k!=0)
            fun(k);
            for(i=N;a[i]==0&&i>=0;i--)
            ;
            for(;i>=0;i--)
            cout<<a[i];
            cout<<endl;
    
        }
    
    }
    int fun(int s)
    {
        int i;
        for(i=0;i<N;i++)
        a[i]=a[i]*s;
        if(a[i]>=10)
        for(i=0;i<=N;i++)//大数据输出    
    { a[i
    +1]=a[i+1]+a[i]/10; a[i]=a[i]%10; } }
  • 相关阅读:
    01-NoSQL概述
    SSM快速整合
    C语言指针传参与C++引用传参,以及尾插法建立单链表使用到的引用
    IP地址相关
    二叉树的先序遍历、中序遍历、后序遍历-C语言描述
    华为5G认证练习题2
    华为5G认证练习题
    华为ICT学堂获取练习题及答案
    C++ cin对象的一些方法
    webpack学习笔记2:新建工程
  • 原文地址:https://www.cnblogs.com/yaobolove/p/4159351.html
Copyright © 2011-2022 走看看