30,336
社区成员
发帖
与我相关
我的任务
分享
法一:
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()