目录
1、统计子矩阵
import os
import sys
# 请在此输入您的代码
n,m,k=map(int,input().split()) #默认用空格隔开,得到输入的三个值
s=[[0 for i in range(m+1)]] #定义一个数组
for i in range(1,n+1): #重新创造一个数组,降低时间复杂度
s.append([0]+list(map(int,input().split()))) #每一次第一层for循环,加入一行
for j in range(1,m+1): #每一次第二层for循环,把上一层的数据加到这一层的数据来
s[i][j]+=s[i-1][j]
res=0
for i in range(1,n+1): #行
for j in range(i,n+1): #枚举上下边界
l=1 #双指针
sum=0
for r in range(1,m+1): #列
sum+=s[j][r]-s[i-1][r] #r列的值+
while sum>k: #缩小范围
sum-=s[j][l]-s[i-1][l]
l+=1
res+=r-l+1
print(res)
2、字符统计
import os
import sys
# 请在此输入您的代码
# 统计出现次数最多的大写字母
word=list(input()) #输入字母,将输入的字符串字母以列表形式存储
d={} #创建一个字典,用字典来解决
for i in set(word): #去重后遍历每一个出现的字符
a=word.count(i) #记录i出现的次数
if a in d.keys(): #如果a在key里面
d[a].append(i)
else:
d[a]=[i]
print(''.join(sorted(d[max(d)]))) #max(d)得到最大的key,用key去访问value,对得到的value排序,再加进最后的字符串中。
3、排列字母
import os
import sys
# 请在此输入您的代码
a=list(input())
a.sort()
print("".join(a))
4、顺子日期
import os
import sys
# 请在此输入您的代码
print(14) #0120,0121,0122,0123,0124,0125,0126,0127,0128,0129,1012,1123,1230,1231
5、特殊时间
import os
import sys
# 请在此输入您的代码
# 3:1-2 1:0-9
# 1: 0:4*4*4 2:4*3*4 3-5:4*1*3 6-9:4*1*2
# 2: 0:4*1*4 1:4*1*4 3-9:0
print(4*4*4+4*4*3+3*4*1*3+4*4*2+2*16)
6、三角回文数
import os
import sys
# 请在此输入您的代码
number = 0
for i in range(1,10000):
number +=i #依次相加
if number>=20220514 and str(number)[::]==str(number)[::-1]: #判断是否回文
print(number)
break
7、2022
import os
import sys
# N = 11
# M = 2023
# f = [[0] * 2023 for i in range(11)]
# # 10个数组成2022的方案数 01背包 二维费用 求方案数
# f[0][0] = 1
# for i in range(1,2023): # 2022种物品,每种物品体积等于i
# for j in range(10,0, -1): # 取物品个数
# for k in range(i, 2023): # k是背包容量
# f[j][k] += f[j-1][k-i] # 前i种物品,取j个物品(每种物品只有一个,该物品体积等于i),物品总体积等于k的总方案
# # 对于dp[j][k]的方案,等价于不取i物品,取j个数,总体积恰好为k的方案加上取物品,i取j个数,总体积恰好为k方案
# print(f[10][2022])
print(379187662194355221)
8、星期计算
import os
import sys
# 请在此输入您的代码
day = (20**22-1)%7
if day == 0:
print(7)
else:
print(day)