首页 > 编程语言 >蓝桥杯Python国赛F题123(过70%代码)

蓝桥杯Python国赛F题123(过70%代码)

时间:2024-03-13 23:30:53浏览次数:25  
标签:二分 Get Python mid 国赛 蓝桥 int while 1e6

分析:明显考虑二分,(部分丑陋的笔记在下面,方便我自己看的,不喜勿喷)

首先我们可以二分出包含在  [L,R]之间的完整的取值区间,[Get(a-1) , Get(b) ]

因为左端点二分的是区间前端点,就是前端要包含在内,所以a-1

然后就是对于两边突出部分进行计算,

不知道为什么30%没有过,希望评论区的大佬指正  >..<

def lfind(n):
    l=1;r=int(1e6)
    while(l<r):
        mid=l+r>>1
        if((mid*(mid-1)//2+1)>=n):
            r=mid
        else:
            l=mid+1
    return l

def rfind(n):
    l=1;r=int(1e6)
    while(l<r):
        mid=l+r+1>>1
        if(mid*(mid+1)//2<=n):
            l=mid
        else:
            r=mid-1
    return l
def Get(n):
    return int(((n*(n+1))//2+n*(n+1)*(2*n+1)//6)/2)
def miniget(n):
    return n*(n+1)//2
n=int(input())
for i in range(n):
    l,r=map(int,input().split())
    a,b=lfind(l),rfind(r)
    gb=Get(b)
    ga=Get(a-1)
    k=(miniget(a-1)-l+1)
    sum1=(gb-ga)+(2*a-1-k)*k//2+miniget(r-miniget(b))
    print(sum1)#,a,b,ga,gb,k,miniget(r-gb)

标签:二分,Get,Python,mid,国赛,蓝桥,int,while,1e6
From: https://blog.csdn.net/wrj1472583690/article/details/136676423

相关文章

  • 蓝桥杯算法训练VIP-数组查找及替换
    题目1634:蓝桥杯算法训练VIP-数组查找及替换时间限制:3s内存限制:192MB提交:1629解决:890题目描述给定某整数数组和某一整数b。要求删除数组中可以被b整除的所有元素,同时将该数组各元素按从小到大排序。如果数组元素数值在A到Z的ASCII之间,替换为对应字母。输......
  • PYTHON openpyxl 读取课程表,轮值排班表,输出每日班级简报
    源文件excel及python源文件链接:https://pan.baidu.com/s/1uswO_33jrgE3nvaJv47wGw提取码:clnw#frompickleimportAPPENDimportopenpyxlimportdatetimefromtimeimportstrftime#importre#fromdatetimeimportdatetime#fromdateutil.parserimportparse#impor......
  • Python实战:元组一次性数据的处理利器
    Python元组是一种不可变的序列类型,非常适合用于存储不应该被修改的数据。本文将深入探讨Python元组在处理一次性数据方面的优势和应用场景,包括元组的定义、操作、函数和方法,以及如何利用元组提高代码的可读性和性能。1.Python元组简介Python元组(tuple)是一种内置的数据类......
  • Python实战:Python集合的常见操作
    Python集合(set)是一种无序且元素唯一的容器,它是Python中一种基本的数据结构。本文将详细介绍Python集合的常见操作,包括创建集合、添加和删除元素、集合运算、集合推导式等。1.创建集合Python集合可以通过多种方式创建,包括直接赋值、使用内置函数set()和集合推导式等。示......
  • 【Python从入门到精通】函数详解
     【上图来源于网络图片】WhydoPythonprogrammerspreferdarkmode? Becauselightattractsbugs.Python的简洁性和易读性,认为这是吸引Python程序员的原因。【Python从入门到精通】专栏课程:1、【Python从入门到精通】认识Python2、【Python从入门到精通】变量&......
  • 备战蓝桥杯Day25 - 二叉搜索树查询和删除操作
    一、查询递归查询寻找的值比根节点大,遍历右子树;寻找的值比根节点小,遍历左子树。defqurey(self,node,val):ifnotnode:#没有节点,返回空returnNoneifnode.data<val:returnself.qurey(node.rchild,val)......
  • python环境变量问题备忘
    写了一个py脚本,手动在容器里能执行,但是配置了定时任务怎么都不执行,但是其他shell、js脚本却都能执行,没办法,既然shell能执行,然后就写了一个shell脚本间接调用py脚本,好了,现在到是能执行了,没想竟然执行报错了“YoumayneedtoaddPYTHONIOENCODING=utf-8toyourenvironment”......
  • PYTHON openpyxl 读写表格,输出幼儿园课程表,值班表
    #frompickleimportAPPENDimportopenpyxlimportdatetimefromtimeimportstrftime#importre#fromdatetimeimportdatetime#fromdateutil.parserimportparse#importpandasaspdimportoperatorwb=openpyxl.load_workbook(r'1_7date.xlsx')......
  • Python学习 第0天
    传送门前言Python太主流了,连普通大众都听说过Python了,小蟒蛇还是得要学一下的,而且跨平台特性是块宝这里采用的是B站的课程+菜鸟教程Python3菜鸟教程20分钟学完一遍python基础【零基础首选】2022最新版Python3.11全套视频教程,告别劣质教程目录Pyhton基础Python3基础语......
  • python代码小题(2)
    #引入常规库importmathprint(math.fabs(-5.5))print(math.floor(5.5))print(math.ceil(5.5))#随机数importrandoma=random.randint(1,10)print(a)#找钱问题  ##随机输入一个钱数,可以由几个50元和几个5元和几个1元组成a=int(input("收到的钱="))b=a//50c=a%......