摆箱子

Description

有一堆形状完全一样的箱子,但是他们的强度不同,如果一个箱子的强度为x,那么这个箱子上面最多可以放x个箱子。

现在我们已知一堆箱子的强度,我们想把这些箱子放置成一列一列的形状,每一列包含多个箱子,问最少可以放置多少列。


Input

输入为多组数据,第一行为样例数T。

每组数据先输入一个n(1 <= n <= 100),表示箱子的总数。

紧接着输入n个数x1,x2,x3,,,xn(0 <= xi <= 100),第i个数表示第i个箱子的强度。


Output

输出只包含一个整数,表示最少的数列。


Sample Input

2

3

0 0 10

5

0 1 2 3 4


Sample Output

2

1



原来正解是从小到大使用贪心。


#include<bits/stdc++.h>
using namespace std;

int a[100+10], b[100+10];
int main()
{
    int T, n;
    scanf("%d", &T);
    while(T--)
    {
        scanf("%d", &n);
        memset(a, -1, sizeof(a));
        memset(b, 0, sizeof(b));
        for (int i = 0; i < n; i++)
            scanf("%d", &a[i]);
        sort(a, a+n);
        int t = n, ans = 0;;
        while(t > 0)
        {
            int flag = 0, num = 0;
            for(int i = 0; i < n; i++)
            {
                if(b[i] == 0 && flag == 0)
                {
                    flag = 1;
                    b[i] = 1;
                    num++;
                    t--;
                }
                if(b[i] == 0 && flag == 1)
                {
                    if(a[i] >= num)
                    {
                        num++;
                        b[i] = 1;
                        t--;
                    }
                }
            }
            ans++;
        }
        printf("%d\n",ans);
    }
    return 0;
}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Funcode推箱子是一款休闲益智类游戏,玩家需要通过推动箱子来将它们全部放到目标位置上,以完成关卡的任务。 玩家在游戏中扮演的是推箱子工人的角色,游戏地图上会有墙壁、目标位置、箱子和工人四种元素。玩家通过控制工人的移动,将箱子推动到目标位置上即可过关。但是要注意,箱子只能被推动而不能被拉动,而且一个工人只能推动一个箱子。 游戏的难度会随着关卡的逐渐升级而增加,地图上的障碍物会变得越来越多,需要玩家进行合理规划和操作。有些关卡需要玩家进行多次推箱子的移动和交换位置,才能达到目标。而有些关卡则需要运用一些特殊的技巧或利用地图上的道具来解决难题。 游戏中还有计时的限制,要求玩家在规定的时间内完成任务,这增加了游戏的挑战性。如果无法在限定时间内完成任务,则需要重新尝试。 Funcode推箱子的设计简单而有趣,能够锻炼玩家的逻辑思维和空间想象力。更重要的是,推箱子可以帮助玩家放松身心,缓解压力,成为休闲娱乐的好选择。无论是在手机上还是在电脑上,Funcode推箱子都是一款非常受欢迎的游戏。 ### 回答2: 《FunCode 推箱子》是一款经典的益智游戏,玩家需要在规定的地图上将箱子推到指定的目标位置,以完成关卡任务。 玩家通过控制游戏角色在地图上移动,并推动箱子,沿着空位移动箱子,直到将其推至目标位置。同时,玩家需要避免陷入困境,比如将箱子堵住或者将自己困在某个位置无法移动。 游戏的难度逐渐递增,关卡设计有趣且挑战性。玩家需要仔细观察地图布局,合理规划移动路径,利用思维和逻辑进行推理,才能找到最佳解决方案。 《FunCode 推箱子》不仅能够锻炼玩家的空间想象力、逻辑思维和问题解决能力,还能培养耐心和执着精神。很多关卡都需要反复尝试和调整策略,只有坚持不懈,才能取得成功。 此外,《FunCode 推箱子》还提供了多个关卡和地图选择,玩家可以根据自己的兴趣和能力选择合适的挑战。同时,游戏内置了排行榜和成就系统,玩家可以和朋友们比较成绩,增加游戏的互动性和竞争性。 总体而言,《FunCode 推箱子》是一款兼具趣味性和教育性的益智游戏。不仅能够帮助玩家锻炼大脑,提升思维能力,还能带给玩家娱乐和挑战的享受。无论是孩子还是成年人,都能从中受益,值得一试。 ### 回答3: 《FunCode 推箱子》是一款经典的益智游戏。在游戏中,玩家需要将箱子推到预定的目标位置,通过这样的操作解决谜题,取得胜利。 这款游戏的规则相对简单。玩家可以通过上下左右四个方向的滑动来操纵主角移动。玩家需要利用地图上的障碍物、箱子和目标位置之间的关系,合理规划移动顺序,达到把所有箱子推进目标位置的目标。 游戏设置了多个关卡,难度逐渐加大。初始关卡比较简单,而后随着关卡的递增,地图上的障碍物和目标位置的数量和布局会变得更加复杂,需要思考更多步骤。玩家需要巧妙地运用游戏规则,创造性地解决难题才能通过每一关。 推箱子这款游戏有助于锻炼玩家的逻辑思维能力和空间想象力。在解决谜题的过程中,玩家需要分析地图布局,预估每一步的影响,避免陷入死胡同。这样的思考训练能够提高玩家的问题解决和决策能力,培养耐心和专注力。 《FunCode 推箱子》以其简单但紧张刺激的游戏体验受到许多玩家的喜爱。它提供了大量关卡可以挑战,玩家可以根据自己的能力选择不同的难度。这款游戏不仅可以带给玩家乐趣,还能够激发玩家的智力潜能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值