摩天大楼问题

news/2024/11/29 8:50:31/

前几天呢,一位小老弟给我分享了这道很有意思的题目,可是捏,我找遍了网络,也没有找到这个题的题解,于是乎,余勇当此题拓荒者也!

来人哪,把题目献上来!

题目描述

摩天大楼是日本人创作的游戏。 它于1992年在纽约举行的第一届世界益智冠军赛上获得了首次广泛曝光,当时发行商Sekai Bunka-sha向竞争对手介绍了他们的《 Puzzer》杂志。 在美国,Kevin Stone对其进行了增强。
该游戏如下所示:在每个正方形中放置一个高度为1到5的摩天大楼,该行中任意两个摩天大楼的高度都不相同。输入的值共两个,分别是从左右能看到的大楼数量(高楼会挡住底楼哦)。

在上面的示例中,从左侧看,可以看到4座摩天大楼:#2,#3,#4和#5。 #1被#3阻挡。 从右侧看,只能看到一个摩天大楼。 #5阻止所有其他大楼。 因此,左侧的数据为4,右侧的数据为1。

输入描述

共一行输入,表示从左侧和从右侧看到的大楼数量。

输出描述

共一行,输出有几种摆放的情况可以满足输入。

样例

输入

1 2

输出

6

其实这个题说难也不难,简直可以约等于简单。这个题乍一看蛮唬人的,但是如果你仔细想想,就会发现这个题,不就是个模拟算法的题吗?真是《简单极了》!(话虽这么说,本蒟蒻想了不下四十分钟)因为这个题没有什么规律可言,所以说只能根据提描述来列举出所有情况进行模拟,过程如下:
列举1-5个楼高的所有排列方式。
判断从右往左可以看到几个楼。
判断从左往右可以看到几个楼。

判断左右测看到的楼高是否符合要求,符合则计数。

所以,上代码!

#include<iostream>
using namespace std;
int main(){int a[6],l,r,sum=0;cin>>l>>r;for(int i=1;i<=5;i++){for(int j=1;j<=5;j++){for(int k=1;k<=5;k++){for(int m=1;m<=5;m++){for(int n=1;n<=5;n++){if(i!=j&&i!=k&&i!=m&&i!=n&&j!=k&&j!=m&&j!=n&&k!=m&&k!=n&&m!=n){int suml=1,sumr=1;a[1]=i,a[2]=j,a[3]=k,a[4]=m,a[5]=n;int ll=a[1],rr=a[5];for(int ii=1;ii<=5;ii++){if(a[ii]>ll){suml++;ll=a[ii];}}for(int ii=5;ii>=1;ii--){if(a[ii]>rr){sumr++;rr=a[ii];}}if(suml==l&&sumr==r){sum++;}}}}}}}cout<<sum;
}

最后想弱弱问一句,有没有更简洁的方法(值代码行数少)?


http://www.ppmy.cn/news/932644.html

相关文章

世界摩天大楼TOP10

信息来源&#xff1a;南方都市报 2006年6月24日 A20版 位次名称高度楼层城市1台北101大厦508米101台湾2双子塔452米88吉隆坡3西尔斯大厦442米110芝加哥4金贸大厦421米88上海5国际金融中心二期420米90香港6中信广场391米80广州7地王大厦384米69深圳8帝国大厦381米102纽约9中环广…

什么是Java中的类加载器,它有哪些特性和用途?

Java中的类加载器是负责将Java类文件加载到内存中的一部分。它们的主要作用是将Java类文件中的字节码读取到内存中&#xff0c;并将其转换为方法可以直接调用的Java类。类加载器在Java程序的生命周期中起着至关重要的作用&#xff0c;因为Java类是动态的&#xff0c;可以在程序…

上门服务小程序|上门家政小程序开发

随着现代生活节奏的加快和人们对便利性的追求&#xff0c;上门家政服务逐渐成为了许多家庭的首选。然而&#xff0c;传统的家政服务存在着信息不透明、服务质量不稳定等问题&#xff0c;给用户带来了困扰。为了解决这些问题&#xff0c;上门家政小程序应运而生。上门家政小程序…

win7资源管理器菜单栏 无法隐藏

关闭资源管理器&#xff0c;打开注册表&#xff08;winR——输入"regedit"——确定&#xff09;&#xff0c;删除出下面这个键值&#xff0c;立刻生效。 HKEY_CURRENT_USER\Software\Microsoft\InternetExplorer\Toolbar\ShellBrowser\ITBar7Layout

计算机资源管理菜单包括哪些,玩转Win7之“资源管理器窗口” -电脑资料

WINDOWS的资源管理器一直是我们使用计算机时和文件打交道的重要工具&#xff0c;在WIN7中&#xff0c;我们会发现新的资源管理器使我们可以更容易地管理和搜索自己的目标文件和目录&#xff0c; 隐藏的文件菜单 初接触WIN7的用户可能会感到奇怪&#xff1a;无论是打开资源管理器…

Win10隐藏文件资源管理器中的我的电脑上方的7个文件夹

隐藏 音乐、视频、图片、文档、下载、桌面 六个文件夹&#xff1a; https://jingyan.baidu.com/article/75ab0bcbb47b09d6864db2cc.html 隐藏 3D 对象 文件夹&#xff1a; https://blog.csdn.net/x534119219/article/details/79158804 亲测有效&#xff01;

Win10 注册表 ---- 删除资源管理器中的图片/文档/音乐/视频文件夹

注意&#xff0c;本篇教程来自装机之家&#xff0c;原文地址。 第一步 找到注册表&#xff0c;定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace 不同的键值对应了资源管理器中不同的文件夹&#xff0c;想要删除对应的文件…

隐藏windows资源管理器中的文件夹图标

运行-regedit onedrive \HKEY_CLASSES_ROOT\CLSID{018D5C66-4533-4307-9B53-224DE2ED1FE6}注册表项中&#xff0c;双击System.IsPinnedToNameSpaceTree修改键值为0即可。 其他文件夹 \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\N…