上排给出十个数,在其下排填出对应的十个数

2024-02-06 05:58

本文主要是介绍上排给出十个数,在其下排填出对应的十个数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数   
要求下排每个数都是先前上排那十个数在下排出现的次数。   
上排的十个数如下:   
【0,1,2,3,4,5,6,7,8,9】

举一个例子,   
数值: 0,1,2,3,4,5,6,7,8,9   
分配: 6,2,1,0,0,0,1,0,0,0   
0在下排出现了6次,1在下排出现了2次,   
2在下排出现了1次,3在下排出现了0次....   
以此类推..  

解题思路:关键是理解“要求下排每个数都是先前上排那十个数在下排出现的次数”。

做以下分析:设总共有n个数,上排a[0...n-1],下排b[0...n-1],。

1)下排n个数的累加和为n,即b[0]+b[1]+...+b[n-1] = n

2)ai*bi的累加和也为n,即a[0]*b[0]+a[1]*b[1]+...+a[n-1]*b[n-1] = n

3)对于b中任意一个元素b[j], 都存在i,a[i] = b[j].

4)对于b中任意一个元素b[j],都有b[j] >= 0

5)如果a中存在负数。其在b中出现的次数一定为0. 如果a中数值大于n,则其出现次数也为0.

6)a中至少有两个非0数值在b中出现的次数非0

a:由1)n > n*b[i],其中b[i]为最小值,则a b中一定均有数值0,否则无解。设a[0] = 0,b[0]为a[0]在b中出现次数。

b:由于b中一定存在0,则0的出现次数一定大于0,因此b[0]>0 且b[0] < n,b[1...n-1]中至少一个值为0. 非0元素出现的次数一共是n-b[0].

c:有2)和6)对任意a[i],a[i]*b[i] < n,即b[i] < n/a[i],对所有a[i]>=n/2的元素中,在b中出现的次数必须最多只有1个出现次数不为0,且为1.其余出现次数均为0,即[1, n/2)范围内最多只有n/2-1个元素,故0出现的次数必不小于n/2, [n/2,n)范围内的元素必有一个出现次数为1。因此a数列中也必须有1,否则无解。

d:有c得在数值范围为(0,n/2)中(假设有x这样的数)出现的次数和s为n - b[0]或n-b[0]-1。其中1出现的次数至少为1(由c得)。又如果1出现的次数为1,则1出现的次数已经为2,故1出现的次数必大于1.设为x,则x出现的次数至少为1,而x>1,如果x出现的次数大于1,那么必须要有其他数出现的次数为x,这样无法收敛。故x出现的次数只能为1,1出现的次数只能为2.

结论:

0出现的次数为n-4,1出现的次数为2.2出现的次数为1。n-4出现的次数为1.如果数列中无这四个数,无解。

这篇关于上排给出十个数,在其下排填出对应的十个数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/683334

相关文章

MybatisGenerator文件生成不出对应文件的问题

《MybatisGenerator文件生成不出对应文件的问题》本文介绍了使用MybatisGenerator生成文件时遇到的问题及解决方法,主要步骤包括检查目标表是否存在、是否能连接到数据库、配置生成... 目录MyBATisGenerator 文件生成不出对应文件先在项目结构里引入“targetProje

定位cpu占用过高的线程和对应的方法

如何定位cpu占用过高的线程和对应的方法? 主要是通过线程id找到对应的方法。 1 查询某个用户cpu占用最高的进程号 top -u 用户名 2 查询这个进程中占用cpu最高的线程号 top –p 进程号-H    3 查询到进程id后把进程相关的代码打印到jstack文件 jstack -l pid > jstack.txt 4 在jstack文件中通过16进制的线程id搜索到

一台电脑对应一个IP地址吗?‌探讨两台电脑共用IP的可能性

在当今数字化时代,‌IP地址作为网络世界中的“门牌号”,‌扮演着至关重要的角色。‌它负责在网络上唯一标识每一台设备,‌使得数据能够在庞大的互联网中准确无误地传输。‌然而,‌对于IP地址与电脑之间的对应关系,‌许多人可能存有疑惑:‌一台电脑是否必须对应一个IP地址?‌两台电脑又是否可以共用一个IP地址呢?‌本文将深入探讨这些问题,‌带您一窥IP地址背后的奥秘。‌ 一台电脑对应一个IP地址吗?‌

git如何灵活切换本地账号对应远程github的两个账号

git如何灵活切换本地账号对应远程github的两个账号 问题: 有时候我们会同时维护两个github的账号里面的仓库内容,这时候本地git需要频繁的切换ssh,以方便灵活的与两个账号的仓库可以通信。这篇日记将阐述我是怎么解决这个问题的。1. 第一个账户 生成本地SSH2. 注意 我们要设置第二个账户的 本地 SSH 时3. 两个账号来回切换 问题: 有时候我们会同时维护两个git

一台笔记本电脑的硬件都有哪些以及对应的功能

一台笔记本电脑的硬件通常包括多个关键组件,这些组件共同协作,确保电脑的正常运行。以下是笔记本电脑的主要硬件及其功能: 1. 中央处理器(CPU) 功能:CPU 是电脑的“大脑”,负责处理所有的计算和指令执行。它执行操作系统和应用程序的指令,控制其他硬件设备。常见品牌:Intel(如 Core i3/i5/i7/i9)、AMD(如 Ryzen 系列)。 2. 内存(RAM) 功能:内存用于存

Spring是如何找到URL请求对应的Controller的

文章来源 原文作者:Spring MVC 原文地址: https://blog.csdn.net/hl233211/article/details/77450697 http://ddrv.cn/a/58528 本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。 序:先贴一张SpringMVC整体的框架原理图 此文主要描述Spring在响应请求的时候是如何根据U

Eclipse下的插件tomcat和桌面的tomcat下的项目不对应问题

这两天遇到一个小问题,经过近两个小时的奋战,不断Google,百度,解决问题。 问题描述如下: 在Eclipse下运行一个动态web项目,如果Eclipse下安装了tomcat的插件,那么可以正常运行。 有个问题出现了,如果我想把这个编译后的web项目,挪到其他机器上的tomcat服务器下跑,怎么弄啊! 因为找不到编译后的文件在哪儿,无法挪动!要能把编译后的文件自动挪到机子上tom

NXOPEN1847开发环境搭建-对应VS2017

1、VS2017离线下载路径(半夜下载快) 链接:https://pan.baidu.com/s/1N_1Jyk4mHQx0tQ7V2vNckg 提取码:637g 2、NX1847下载路径 迅雷下载连接:magnet:?xt=urn:btih:B3C6A852FFACDFD226E53B12F3CFDFB57D4799B1 3、VS安装最好第一次把相关模块都选上,特别是 标准库模块 安装上,否则后

什么是Java中的模板方法模式?请给出示例。Java中的设计模式有哪些?请列举几个并解释其应用场景。

什么是Java中的模板方法模式?请给出示例。 Java中的模板方法模式(Template Method Pattern)是一种行为型设计模式,它定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重新定义算法的某些特定步骤。这种模式涉及到一个抽象类,这个类定义了一个或多个抽象操作,以便让子类实现。而模板方法定义了算法的骨架,它将调用这些抽象操作。

Http请求和HttpServletRequest中获得对应参数

Enumeration<String> key = request.getParameterNames();  这个能获取到所有前端传过来的参数;其实这篇转来的文字可以深入理解下 servlet 的知识, Http请求 GET /firstSample/hello HTTP/1.1 请求行Host: localhost:8080 请求头Conne