蓝桥杯真题随手练习(还有三天)

于妍 2022-04-06 14:46:56

 法一:

import os
import sys

ms_in = int(input())
s_in = int(ms_in / 1000)  # 舍去ms部分转为秒
min_in = int(s_in / 60)
s = s_in % 60  # 秒部分
h_in = int(min_in / 60)
m = min_in % 60# 分部分
h = h_in % 24# 时部分
print("%02d:%02d:%02d" % (h, m, s))

法二:

from datetime import datetime, timedelta

start = datetime(year=1970, month=1, day=1)
dela = timedelta(milliseconds=1)
now = int(input())

now = start + now * dela
print('%02d:%02d:%02d' % (now.hour, now.minute, now.second))

 

n,m=map(int,input().split())
a=[[0]*2 for i in range(n)]
for i in range(n):
    a[i][0],a[i][1]=map(int,input().split())
# 使用二分进行求解
l,r=0,10000
def check(d):
    ans=0
    for i in range(n):
        ans+=(a[i][0]//d)*(a[i][1]//d)
    if ans>=m:
        return True
    return False
while l<r:
    mid=(l+r+1)>>1
    if check(mid):
        l=mid
    else:
        r=mid-1
print(r)

 

now_h=int(input())
now_m=int(input())
delta=int(input())
k=delta//60
a=delta%60+now_m
if a>=60:
    print(now_h+k+1)
    print(a%60)
else:
    print(now_h+k)
    print(a)

 

def gcd(a,b):
    if b==0:
        return a
    return gcd(b,a%b)
def gcb(x,y):
    return x*y//gcd(x,y)
n=int(input())
t=1
for i in range(2,n+1):
    t=gcb(t,i)
print(t)

 

import os
import sys

# 请在此输入您的代码
import math
N = eval(input())
res = math.log(2*N+1,3)
if (res - int(res))!=0:
    print(int(res)+1)
else:
    print(int(res))

 使用回溯的方法

 代码:

# 回溯法
n=int(input())
res=[]
s='.'*n
path=[]
i=0
col_choose=[]
z_diag=set()
f_diag=set()
def backtrack(path,i,col_choose,z_diag,f_diag):
    if i==n:
        res.append(path)
    for j in range(n):
        if j not in col_choose and i-j not in z_diag and i+j not in f_diag:
            backtrack(path+[s[:j]+'Q'+s[j+1:]],i+1,col_choose+[j],z_diag|{i-j},f_diag|{i+j})

backtrack(path,i,col_choose,z_diag,f_diag)
print(len(res))

 其他解法:



def place_queen(n):
    global table, ans
    table = [0] * n
    check(n, 0)
    return ans


def check(n, index):
    global table, ans

    if index == n:
        # 当前次,放置完成
        tmp = []
        for i in table:
            # 记录下这一行的摆放方式
            line_ans = '.' * i + 'Q' + '.' * (n-i-1)
            tmp.append(line_ans)
        ans.append(tmp)
    else:
        # 还没放结束
        for i in range(n):
            table[index] = i
            if judge(index):
                # 这个位置能放,那就继续放下一行
                check(n, index+1)


def judge(index):
    '''
    判定第index行能不能放
    return False : 代表这个位置,皇后间会起冲突
    '''
    global table
    for i in range(index):
        if table[i] == table[index] or ((abs(i-index) == abs(table[i] - table[index])) and index - i < 3):
            return False
    return True


n = int(input())

table = []
ans = []
res = place_queen(n)
print(len(res))

 

import os
import sys

# 请在此输入您的代码

money = int(input())
n = int(input())
count = 0
item = []
for i in range(n):
    item.append(int(input()))
    count += item[i]
item.sort()
fault = count - money
answer = []
def DFS(address, sum, b):
    global fault
    global item
    global answer
    if sum == fault:
        temp = []
        for i in range(len(b)):
            temp.append((item[b[i]]))
        if temp not in answer:
            answer.append(temp)
        return 1
    for i in range(address, len(item)):
        if sum + item[i] > fault:
            break
        else:
            b.append(i)
            sum += item[i]
            DFS(i + 1, sum, b)
            sum -= item[i]
            del b[-1]
            DFS(i + 1, sum, b)
    return
DFS(0, 0, [])
for i in range(len(answer)):
    for j in range(len(answer[i])):
        print(answer[i][j], end = ' ')
    print()

 

import math
n=int(input())
a=dict()
for i in range(int(math.sqrt(n))+1):
    for j in range(i,int(math.sqrt(n))+1):
        ans=i**2+j**2
        if ans<=n:
            a[ans]=j
for i in range(int(math.sqrt(n))+1):
    for j in range(i,int(math.sqrt(n))+1):
        temp=n-(i**2+j**2)
        if temp in a.keys():
            t=int(math.sqrt(temp-(a[temp])**2))
            k=a[temp]
            print('{} {} {} {}'.format(i,j,t,k))
            exit()





 

...全文
128 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

30,336

社区成员

发帖
与我相关
我的任务
社区描述
打造最热爱学习的高校社区,帮助大家提升计算机领域知识,带大家打比赛拿奖,提高自我,希望大家共同创造良好的社区氛围。
社区管理员
  • 川川菜鸟
  • 亡心灵
  • 星辰菜鸟
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

监督大家学习,每日学习打卡,以投稿形式打卡。扫码关注公众号,可加入粉丝群和领取大量资源。

试试用AI创作助手写篇文章吧