七段码 杨辉三角

news2024/11/18 15:28:54

题目:

小蓝要用七段码数码管来表示一种特殊的文字。

上图给出了七段码数码管的一个图示,数码管中一共有 77 段可以发光的二 极管,分别标记为 a,b,c,d,e,f,g。

小蓝要选择一部分二极管(至少要有一个)发光来表达字符。在设计字符 的表达时,要求所有发光的二极管是连成一片的。

例如:b 发光,其他二极管不发光可以用来表达一种字符。

例如 c 发光,其他二极管不发光可以用来表达一种字符。这种方案与上 一行的方案可以用来表示不同的字符,尽管看上去比较相似。

例如:a,b,c,d,e 发光,f,g 不发光可以用来表达一种字符。

例如:b,f 发光,其他二极管不发光则不能用来表达一种字符,因为发光 的二极管没有连成一片。

请问,小蓝可以用七段码数码管表达多少种不同的字符?

思路:

最开始考虑为以每条边为起始边,寻找长度为0-7的路径。但是发现代码写不出来,呜呜。

去看了一下题解,发现了一种更简单的思路,得到所有的子序列,逐个对子序列进行判断是否连接,如果连接则表示可以表达为一种字符。其中:itertools.combinations(list_name, x)这个函数,可以得到list_name中长度为x的序列。

代码:

import os
import sys
from itertools import combinations
# 请在此输入您的代码
date = {'a': ['b', 'f'], 'b': ['a', 'c', 'g'], 'c': ['b', 'd', 'g'], 'd': ['c', 'e'], 'e': ['d', 'f', 'g'], 'f': ['a', 'e', 'g'], 'g':['b', 'c', 'e', 'f']}

roads = []
for i in range(8):
  for j in combinations(date.keys(), i): #返回长度为0-7的所有子序列
    roads.append(j)
#print(roads[1])

for road in roads:
  flag = True
  for i in range(len(road)-1):
    if road[i+1]  not in date[road[i]]:  # 判断连接的条件是,后一个字符在前一个字符映射的字典中
      flag = False
      continue
  if flag == False:
    roads.remove(road) #将不连接的序列删除

print(len(roads))

题目:

如果我们按从上到下、从左到右的顺序把所有数排成一列,可以得到如下数列: 1,1,1,1,2,1,1,3,3,1,1,4,6,4,1,⋯

给定一个正整数 N,请你输出数列中第一次出现 N 是在第几个数?

输入描述

输入一个整数 N。

输出描述

输出一个整数代表答案。

  

思路:

试图使用暴力,一个一个的创建杨辉三角,当前值为输入值时,停止创建并输出当前序列。提交后测试通过4个,呜呜。 

看了题解,发现这个题目需要去找一个杨辉三角的规律,不仅是说某个数等于其肩上两个数之和。还有一些其他的规律,然后尝试根据该规律在某一斜行进行挨个查找,结果就是部分用例超时了。最后使用二分查找来提高效率。

参考:C++语言 分析   python 代码参考

代码:

import os
import sys

# 请在此输入您的代码
n = int(input())
date = [[0 for i in range(1000)] for i in range(1000)]
count = 0
flag = True
for i in range(1000):
  if flag :
    for j in range(i+1):
      if i == 0 or j == i:
        date[i][j] = 1
        count += 1
      else:
        date[i][j] = date[i-1][j-1] + date[i-1][j]
        count += 1
      if date[i][j] == n:
        flag = False
        print(count)
        break
  else:
    break
     
import os
import sys

# 请在此输入您的代码
n = int(input())

def C(a, b):  # 计算C(a, b) a为上限,b为下限
  res = 1
  while a > 0:
    res *= b/a
    a -= 1
    b -= 1
  return res


for i in range(16, -1, -1):
  flag = True
  low = 2*i # 起始下限 也就是对称轴位置的元素
  high = n  # 这里说是终点下限 其实不懂为啥下限是n

  while low <= high and flag:
    mid = low + (high - low) // 2
    val = C(i , mid)
    if val > n:
      high = mid - 1
    elif val < n:
      low = mid + 1
    else:
      flag = False
      print(int((mid + 1) * mid / 2) + i + 1)  # 这里最开始是对整个公式进行int(),会有两个用例测试不通过,看见有博主说是因为精度问题 只将前部分进行int()转换,就能全部通过啦

  if flag == False:
    break
      

 Tips:

遇到题目,要学会去找其中的数学规律,这是很重要的!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/398290.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI已到,普通人的机会在哪里?

“普通人赚到钱很难 但是被骗到钱很容易”。每当火起来一个行业&#xff08;或者仅是一个概念&#xff09;&#xff0c;都会有人来问&#xff1a;现在去做点什么&#xff0c;能够踩上风口&#xff1f;普通人的赚钱机会在哪&#xff1f;怎么做能够暴富&#xff1f;让我们先来看看…

【卷积神经网络】中间层网络的参数归一化方法 | BN / LN / IN / GN

文章目录一、为什么神经网络需要归一化二、常用的归一化方法三、Batch Normalization四、Layer Normalization五、Instance Normalization六、Group Normalization本文主要介绍神经网络中常用的归一化方法&#xff0c;主要是在神经网络内部对中间层的输入进行归一化&#xff0c…

【论文阅读】Robust Multi-Instance Learning with Stable Instances

1、摘要与引言 以往的MIL算法遵循i.i.d假设&#xff1a;训练样本与测试样本都分别来自于同一分布中&#xff0c;而这一假设往往与现实应用中有所出入。研究人员通过计算训练样本与测试样本之间的密度比对训练样本进行加权&#xff0c;以解决分布变化带来的问题。 分布的变化发…

SpringBoot + Druid + Mybatis-Plus + Mysql 实现数据库监控

1. 简介 在日常的WEB开发中都会使用数据库存储信息。大多数情况我们只是使用了数据库&#xff0c;而无法感知业务对数据库的压力&#xff0c;从而无法有目的的提升性能。在使用数据库时&#xff0c;都会选用常见的C3P0、DBCP、Hikari、Druid连接池&#xff0c;虽然SpringBoot官…

JavaScript中的数据类型以及存储上的差别?

前言 在JavaScript中&#xff0c;我们可以分成两种类型&#xff1a; 基本类型复杂类型 两种类型的区别是&#xff1a;存储位置不同 一、基本类型 基本类型主要为以下6种&#xff1a; NumberStringBooleanUndefinednullsymbol Number 数值最常见的整数类型格式则为十进制…

最强分布式锁工具:Redisson

1 Redisson概述1.1 什么是Redisson&#xff1f;Redisson是一个在Redis的基础上实现的Java驻内存数据网格&#xff08;In-Memory Data Grid&#xff09;。它不仅提供了一系列的分布式的Java常用对象&#xff0c;还提供了许多分布式服务。其中包括(BitSet, Set, Multimap, Sorted…

学python的第六天---字符串

一、只出现一次的字符其他&#xff1a;round(XXX,1)忽略大小写比较字符串大小字符串几个可以使用的函数二、去掉多余的空格写法一&#xff1a;写法二&#xff1a;三、信息加密写法一&#xff1a;写法二:写法三&#xff1a;自己的写法四、单词替换五、倒排单词写法一&#xff1a…

面试官:什么是双亲委派模型?如何打破它?

本文已经收录进 JavaGuide(「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。) 参加过校招面试的同学,应该对这个问题不陌生。一般提问 JVM 知识点的时候,就会顺带问你双亲委派模型(别扭的翻译。。。)。 就算是不准备面试,学习双亲委派模型对于我…

if-else if与switch的练习1:输入两个数,输出两个数的加减乘除的值

1.if-else if的练习 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice…

所有科研人警惕,掠夺型期刊和劫持型期刊的区别,千万别投错了

当今&#xff0c;新形式的学术出版物——例如数字式或开源式的学术期刊日益普及&#xff0c;热门期刊的数量逐年增长【1】。 人们获取学术出版物也越来越容易&#xff0c;使得更多的科研人员&#xff08;特别是在低收入国家&#xff09;能够及时了解各自研究领域的最新发展态势…

ubuntu20.04搭建detectron2环境

Ubuntu22.04安装Cuda11.3 Linux下驱动安装 # 以下命令按顺序执行 sudo apt update && sudo apt upgrade -y # or sudo apt update # 查看显卡信息 ubuntu-drivers devices sudo ubuntu-drivers autoinstall # or sudo apt install nvidia-driver-510 reboot nvidia-s…

毕业设计 基于51单片机WIFI智能家居系统设计

基于51单片机WIFI智能家居系统设计1、毕业设计选题原则说明&#xff08;重点&#xff09;2、项目资料2.1 系统框架2.2 系统功能3、部分电路设计3.1 STC89C52单片机最小系统电路设计3.2 ESP8266 WIFI电路设计3.3 DHT11温湿度传感器电路设计4、部分代码展示4.1 LCD12864显示字符串…

JavaEE简单示例——Spring的入门程序

简单介绍&#xff1a; 在之前我们简单的介绍了有关于Spring的基础知识&#xff0c;那么现在我们就来一步步的把理论融入到实践中&#xff0c;开始使用这个框架&#xff0c;使用过程也是非常的简单&#xff0c;大致可以分为几个基础的步骤&#xff1a; 1.首先引入Spring的Mave…

TypeScript深度剖析:TypeScript 中泛型的理解?应用场景?

一、是什么 泛型程序设计&#xff08;generic programming&#xff09;是程序设计语言的一种风格或范式 泛型允许我们在强类型程序设计语言中编写代码时使用一些以后才指定的类型&#xff0c;在实例化时作为参数指明这些类型 在typescript中&#xff0c;定义函数&#xff0c;…

一文快速入门 HTML 网页基础

专栏简介: 前端从入门到进阶 题目来源: leetcode,牛客,剑指offer. 创作目标: 记录学习JavaEE学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现在,学习能力代表未来! 目录 1.HTML 结构 1.1. 认识 HTML 标签 1.2 HTML 文件结构…

[MySQL核心]1.表操作

MySQL核心--表操作表操作一表操作二&#xff08;CRUD操作&#xff09;表操作一 创建表 比较规范的写法&#xff0c;关键字应该要大写&#xff0c;其他比如表名&#xff0c;字段这些自定义的可以小写 ENGINEINNODB DEFAULT CHARSETutf8 指定存储引擎以及默认的字符集&#xff0c…

04-CSS

一、其他样式 1、圆角边框在 CSS3 中&#xff0c;新增了圆角边框样式&#xff0c;这样我们的盒子就可以变圆角了。border-radius 属性用于设置元素的外边框圆角。语法&#xff1a;border-radius:length;参数值可以为数值或百分比的形式如果是正方形&#xff0c;想要设置为一个圆…

IBM ILOG CPLEX Optimization Studio 22.1 Crack

BM ILOG CPLEX 优化工作室 建立和解决复杂的优化模型以确定最佳行动 通过数据科学改变您的业务决策 IBM ILOG CPLEX Optimization Studio 使用决策优化技术来优化您的业务决策&#xff0c;快速开发和部署优化模型&#xff0c;并创建可显着改善业务成果的真实应用程序。 如何&…

ROS 摄像头的使用

参考&#xff1a; ​ youtubeArticulated Robotics ​ 作者Josh Newans博客 建议&#xff1a; 这个只是我的看法&#xff0c;强烈建议看原视频或博客 png&#xff1a;无损压缩 jpeg&#xff1a;有损压缩 Driver Node 负责连接硬件设备&#xff0c;读取摄像头数据"ima…

Learning C++ No.13【STL No.3】

引言&#xff1a; 北京时间&#xff1a;2023/3/7/15:33&#xff0c;还有27分钟就要去上课啦&#xff01;刚刚把最近因为考试原因欠的课给还干净了&#xff0c;已经准备好今天晚上接受航哥的毒打了&#xff0c;毒打就毒打&#xff0c;咱不怕&#xff0c;只要不欠钱&#xff0c;…