51Nod基础组(Python)

这个博客包含一系列算法题目,涉及大数运算、最优化问题、排序、质数检测等。通过输入处理和数学逻辑,解决加法、乘法、最长公共子序列、排序、阶乘计算以及模幂运算等任务。还探讨了游戏策略和子段求和问题,展示了如何利用动态规划和高效算法来解决问题。
摘要由CSDN通过智能技术生成

1000 A + B

a, b = map(int, input().split())
print(a+b)

1005 大数加法

a = int(input())
b = int(input())
print(a+b)

 

1006 最长公共子序列Lcs 

a = input()
b = input()

len_a, len_b = len(a), len(b)
dp = [[0] * (len_b + 1) for i in range(len_a + 1)]

for i in range(1, len_a + 1):
    for j in range(1, len_b + 1):
        if a[i - 1] == b[j - 1]:
            dp[i][j] = dp[i - 1][j - 1] + 1
        dp[i][j] = max(dp[i - 1][j], dp[i][j - 1], dp[i][j])

result = []
while len_a and len_b:
    if a[len_a - 1] == b[len_b - 1]:
        result.insert(0, a[len_a - 1])
        len_a -= 1
        len_b -= 1
    elif dp[len_a - 1][len_b] > dp[len_a][len_b - 1]:
        len_a -= 1
    else:
        len_b -= 1

print(''.join(result))

 

1018 排序

n = int(input())
a = []
for i in range(n):
    a.append(int(input()))
a.sort()
for i in range(n):
    print(a[i])

1027 大数乘法

a = int(input())
b = int(input())
print(a * b)

1046 A^B Mod C

x, y, z= map(int, input().split())

def qkm(a, b, c):
    base = 1
    while(b > 0):
        a = a % c
        if(b % 2 == 1):
            base = base * a % c
        b = int(b / 2)
        a = a * a % c
    return base

print(qkm(x, y, z))

1057 N的阶乘

a = int(input())
ans = 1;
for i in range(a):
    ans *= (i+1)
print(ans)

1058 N的阶乘的长度

import math

n = int(input())
Pi = math.pi
e = math.e
ans = (int)(0.5 * math.log10(2.0*Pi*n) + n* math.log10(n*1.0/e) + 1)
print(int(ans))

1066 Bash游戏

T = int(input())
for sssss in range(T):
    a, b = map(int, input().split())
    if(a % (b+1) == 0):
        print("B")
    else:
        print("A")

1081 子段求和

n = int(input())
a = []
sum = []
a.append(0)
sum.append(0)

for i in range(1, n+1, 1):
    a.append(int(input()))
    sum.append(0)

for i in range(1, n+1, 1):
    sum[i] = sum[i-1] + a[i]

q = int(input())
while(q > 0):
    l, r = map(int, input().split())
    ans = sum[l+r-1] - sum[l-1]
    print(ans)
    q = q - 1

1106 质数检测

import math

n = int(input())


def check(a):
    if(a == 1):
        return 0
    if(a == 2):
        return 1
    i = 2
    while(i * i <= a):
        if(a % i == 0):
            return 0
        i = i + 1
    return 1

while(n > 0):
    t = int(input())
    ans = check(t)
    if(ans == 0):
        print("No")
    else :
        print("Yes")
    n = n - 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值