CSDN编程题-每日一练(2023-08-17)

news2024/11/15 8:11:40

CSDN编程题-每日一练(2023-08-17)

  • 一、题目名称:计算公式
  • 二、题目名称:计算逆波兰表达式的结果
  • 三、题目名称:争抢糖豆

一、题目名称:计算公式

时间限制:1000ms内存限制:256M

题目描述:

给定整数n。 计算公式: n i-1
∑ ∑ [gcd(i + j, i - j) = 1]
i=1 j=1

输入描述:

输入整数n。(1<=n<=1e6)

输出描述:

输出答案

🚩 示例:

✔️ 示例1:

输入
233

输出
11065

🔔 解题思路:

首先,我们需要明确计算公式的含义。公式中的i和j都是从1开始的,并且满足gcd(i + j, i - j) = 1。我们需要计算一个双重求和的公式。

代码如下:

import math

def calc(n):
    result = 0
    
    for i in range(1, n+1):
        for k in range(1, (i//2) + 1):
            if math.gcd(i+k, i-k) == 1:
                result += 2
    
    return result

n = int(input())
print(calc(n))

在这里插入图片描述

二、题目名称:计算逆波兰表达式的结果

时间限制:1000ms内存限制:256M

题目描述:

逆波兰记法中,操作符置于操作数的后面。例如表达“三加四”时,写作“3 4 +”,而不是“3 + 4”。如果有多个操作符,操作符置于第二个操作数的后面,所以常规中缀记法的“3 - 4 + 5”在逆波兰记法中写作“3 4 - 5 +”:先3减去4,再加上5。使用逆波兰记法的一个好处是不需要使用括号。例如中缀记法中“3 - 4 * 5”与“(3 - 4)*5”不相同,但后缀记法中前者写做“3 4 5 * -”,无歧义地表示“3 (4 5 *) -”;后者写做“3 4 - 5 *”。(测试用例仅做参考,我们会根据代码质量进行评分)

输入描述:

第一行输入一个整数 n,表示包含元素数量.(1<=n<=1000) 第二行输入n个元素。

输出描述:

输出计算后的结果。

🚩示例:

✔️示例1

输入
2
1 + 3 *

输出
9

🔔 解题思路:

使用一个栈来辅助计算,遍历输入的表达式元素。如果遇到操作数,则将其入栈;如果遇到操作符,则从栈中取出两个操作数进行计算,并将结果再次入栈。最后,栈中剩下的唯一元素即为计算结果。

代码如下:

def calc(s):
    stack = []

    for token in s:
        if token.isdigit():
            stack.append(int(token))
        elif token == '+':
            num2 = stack.pop()
            num1 = stack.pop()
            stack.append(num1 + num2)
        elif token == '-':
            num2 = stack.pop()
            num1 = stack.pop()
            stack.append(num1 - num2)
        elif token == '*':
            num2 = stack.pop()
            num1 = stack.pop()
            stack.append(num1 * num2)
        elif token == '/':
            num2 = stack.pop()
            num1 = stack.pop()
            if num1 % num2 == 0:  # 如果能整除,则结果是整数
                stack.append(int(num1 // num2))
            else:
                stack.append(int(num1 / num2))

    return stack[0]

s= input().split()
result = calc(s)
print(result)

在这里插入图片描述

参考其他解法:

s = input().split()
z = []
for i in s:
    z.append(str(int(eval(z.pop() + i + z.pop()))) if i in '+-*/' else i)
print(z[0])

在这里插入图片描述

三、题目名称:争抢糖豆

时间限制:1000ms内存限制:256M

题目描述:

抓糖豆,小Q与小K都喜欢吃糖豆。 但是糖豆分两种,超甜糖豆和普通糖豆。 现在有w个超甜糖豆和b个普通糖豆。 小Q和小K开始吃糖豆,他们决定谁先吃到超甜糖豆谁就获胜。 小K每次吃的时候会捏碎一颗糖豆。 小Q先吃,小Q想知道自己获胜的概率。 如果两个人都吃不到超甜糖豆小K获胜。

输入描述:

输入两个整数w,b。(0<=w,b<=1000)

输出描述:

答案保留9位小数。

🚩示例:

✔️示例1
输入
3 3 2

输出
2

🔔 解题思路:

我们可以使用动态规划来解决这个问题。设 dp[w][b] 表示在剩下 w 个超甜糖豆和 b 个普通糖豆的情况下,小 Q 获胜的概率。

根据题目描述,小 Q 先开始吃糖豆,而小 K 每次吃的时候会捏碎一颗糖豆。因此,小 Q 只能通过吃掉一个普通糖豆来改变局面。当小 Q 吃掉一个普通糖豆后,剩下的糖豆数量变为了 w 和 b-1。

可以得到状态转移方程:

dp[w][b] = w / (w + b) + (b / (w + b)) * (1 - dp[w][b-1])

边界条件为:当没有超甜糖豆时,小 Q 不可能获胜,所以 dp[0][b] = 0;当没有普通糖豆时,小 Q 必定获胜,所以 dp[w][0] = 1。

最终答案为 dp[w][b],即在初始状态下,小 Q 获胜的概率。

代码如下:

def calc(w, b):
    if w == 0:
        return 0
    if b == 0:
        return 1
    dp = [[0.0] * (b + 1) for _ in range(w + 1)]
    dp[0][b] = 0
    dp[w][0] = 1

    for i in range(1, w + 1):
        for j in range(1, b + 1):
            dp[i][j] = i / (i + j) + (j / (i + j)) * (1 - dp[i][j-1])

    return dp[w][b]

w, b = map(int, input().split())
result = calc(w, b)
print('{:.9f}'.format(result))

在这里插入图片描述

参考其他解法:

w, b = map(int, input().split())
dp = [[0]*(b+1) for _ in range(w+1)]
for i in range(1, w+1):
    for j in range(b+1):
        if j <= 1:
            dp[i][j] = i / (i + j)
        else:
            dp[i][j] = i / (i + j) + j / (i + j) * (j - 1) / (i + j - 1) * ((j - 2) / (i + j - 2) * dp[i][j - 3] + i / (i + j - 2) * dp[i - 1][j - 2])
print("{:.9f}".format(dp[w][b]))

在这里插入图片描述

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

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

相关文章

【MySQL--->表的约束】

文章目录 [TOC](文章目录) 一、表的约束概念二、空属性约束三、default约束四、zerofill约束五、主键约束六、auto_increment(自增长)约束七、唯一键约束八、外键约束 一、表的约束概念 表通过约束可以保证插入数据的合法性,本质是通过技术手段,保证插入数据收约束,保证数据的…

项目热部署

本文记录一下热部署步骤。。。。 热部署是提供高开发效率的一个非常有用的工具。指的是在应用程序运行修改代码或资源文件&#xff0c;并将这些变更应用到正在运行的程序上&#xff0c;而无需重新启动应用&#xff0c;无需等待整个项目的重新构建和部署。 使用热部署需要引入依…

leetcode做题笔记85最大矩形

给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵&#xff0c;找出只包含 1 的最大矩形&#xff0c;并返回其面积。 示例 1&#xff1a; 思路一&#xff1a;单调栈 int maximalRectangle(char** matrix, int matrixSize, int* matrixColSize){int dp[matrixSize…

全面揭秘:抖音集团 QUIC 千万 QPS 应用实践

近日&#xff0c;ArchSummit全球架构师峰会深圳站成功举办。随着移动互联网的蓬勃发展&#xff0c;人们对网络速度和实时性的需求日益增加。在面对越来越多的图片、视频和音频等大资源时&#xff0c;页面加载缓慢、视频卡顿等问题频发&#xff0c;传统的传输控制协议&#xff0…

【UE4 RTS】12-HUD functionality Part2

前言 本篇实现了通过按钮控件暂停、加快、减慢游戏速度的功能。 效果 步骤 1. 打开控件蓝图“GameTime_HUD”&#xff0c;在设计器中对进度条控件的百分比创建一个绑定函数 绑定函数命名为“Get_ProgressBar_GameSpeed_SetSpeedDisplay”&#xff0c;并设置该函数类别属于Ga…

【蛋白-蛋白】Rosetta InterfaceAnalyzer 学习笔记

Rosetta InterfaceAnalyzer是一种用于分析蛋白质相互作用界面的工具&#xff0c;可以计算结合能、埋藏界面表面积、包装统计数据和其他有用的界面指标。 这里以(PDB:3R2X)为例&#xff0c;介绍如何利用Rosetta中InterfaceAnalyzer来快速分析蛋白-蛋白相互作用&#xff0c;并提…

excel统计函数篇1之average系列

一、excel中的统计函数 1、AVERAGE(number1,number2,...)&#xff1a;返回其参数的平均值 2、AAVERAGEA(value1,value2,...)&#xff1a;返回其参数的平均值&#xff0c;包括数字、文本和逻辑值 可以在括号内手动输入&#xff0c;也可以引用单元格&#xff0c;对序列求平均的…

浏览器307,自动从http跳转到https

现象: 解决方式 谷歌浏览器和edge: 进入chrome://net-internals/#hsts

Docker+Selenium Grid搭建自动化测试平台

安装docker yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install docker-ce -y Create a Docker Network docker network create grid 下载镜像 hu…

TensorFlow2.1 模型训练使用

文章目录 1、环境安装搭建2、神经网络2.1、解决线性问题2.2、FAshion MNIST数据集使用 3、卷积神经网络3.1、卷积神经网络使用3.2、ImageDataGenerator使用3.3、猫狗识别案例3.4、参数优化 1、环境安装搭建 链接: Windows 安装Tensorflow2.1、Pycharm开发环境 2、神经网络 1…

第十四届中国大学生服务外包大赛细品,上百支队伍与合合信息用AI共克“记账”难题

前言 熟悉我的小伙伴应该知道我在大学时期参与了很多竞赛&#xff0c;我向来对比赛是比较热枕的&#xff0c;以我个人观点&#xff0c;我认为可以通过竞赛激发学习激情和检验自己的技能水平掌握情况&#xff0c;大学生很少有机会能够了解到课堂之外市场的需求&#xff0c;外包…

repmgr出现双主,并且时间线分叉,删除了最新的时间线节点

遇到的问题如下&#xff1a; 2023-08-17 20:24:21.566 CST [1556001] LOG: database system was interrupted; last known up at 2023-08-17 20:21:41 CST 2023-08-17 20:24:21.770 CST [1556001] LOG: restored log file "00000009.history" from archive cp: 无法…

【从零开始学爬虫】采集中国国际招标网招标数据

l 采集网站 【场景描述】采集中国国际招标网招标数据。 【源网站介绍】中国国际招标网致力于为企业提供招标、采购、拟在建项目信息及网上招标采购等一系列商务服务。 【使用工具】前嗅ForeSpider数据采集系统 http://www.forenose.com/view/forespider/view/download.html 【…

LVS-DR模式下(RS检测)ldirectord工具实现部分节点掉点后将请求发往正常设备进行处理

基于前文的LVS-DR集群构建环境 一.下载ldirectord软件 二.将模板文件中的LVS-DR模式相关文件拷贝到/etc/ha.d主配置目录并按实际设备修改 三.配置两台RS匹配规则 四.停止RS1的http服务进行测试 RS1失去工作能力&#xff0c;RS2接替RS1 基于前文的LVS-DR集群构建环境 一.下…

ARM--day5(C语言点灯实验、总线、串口通信信息、串口通讯协议)

函数分装实现点灯 gpio.c: #include "gpio.h" //函数功能&#xff1a;GPIO引脚初始化操作 //参数1&#xff1a;GPIO组号 //参数2&#xff1a;引脚编号 //参数3&#xff1a;初始化内容 void hal_gpio_init(volatile gpio_t*gpiox,unsigned int pin,gpio_init_t* ini…

浏览器控制台调试代码和JavaScript控制台方法介绍

浏览器控制台调试代码和JavaScript控制台方法介绍 浏览器控制台调试代码 浏览器控制台&#xff08;Console&#xff09;是浏览器提供的一个开发工具&#xff0c;用于在浏览器中执行和调试 JavaScript 代码。它提供了一个交互式环境&#xff0c;可以输入 JavaScript 代码&#…

计算机竞赛 wifi指纹室内定位系统

简介 今天来介绍一下室内定位相关的原理以及实现方法; WIFI全称WirelessFidelity&#xff0c;在中文里又称作“行动热点”&#xff0c;是Wi-Fi联盟制造商的商标做为产品的品牌认证&#xff0c;是一个创建于IEEE 802.11标准的无线局域网技术。基于两套系统的密切相关&#xff…

UGUI组件Rect Transform

一. Rect Transform概述 画布上UI对象都附加一个Rect Transform组件&#xff0c;和一般对象附加的Transform对象相比&#xff0c;Rect Transform多了Width,Height,Anchor,Pivot属性。 二.位置属性 UI对象的坐标是其轴心到锚点之间的像素值&#xff0c;如下图所示。 三.Pivot(…

同时负责多个项目,团队成员还参与多个项目开发,如何有效管理?分享9个策略

如果你正在管理一个团队或项目&#xff0c;可能会需要同时在进行多个项目的管理。在这种情况下&#xff0c;追踪所有进行中的项目部分可能会迅速变得非常复杂。没有合适的管理过程&#xff0c;就难以确定哪些工作应该优先处理&#xff0c;也不容易确保团队有效管理工作量&#…

WPF显示初始界面--SplashScreen

WPF显示初始界面–SplashScreen 前言 WPF应用程序的运行速度快&#xff0c;但并不能在瞬间启动。当第一次启动应用程序时&#xff0c;会有一些延迟&#xff0c;因为公共语言运行时&#xff08;CLR&#xff09;首先需要初始化.NET环境&#xff0c;然后启动应用程序。 对于WPF中…