时间关系只写了一点题目,手机码的A和N……手残党的失败,并且只用了Python
N、Yet Another Hanoi Problem
看不太懂英文题,但是看图片以及样例大概猜到是指定移动规则的哈诺塔。应该是只能移动到相邻位置,不能跨柱子移动。
找到公式以及通项公式
T = int(input()) for i in range(T): n = int(input()) print(pow(3,n,1000000007)-1)
A、Arithmetic Problems
减号代表乘法,除号代表加法,加号代表除法,乘号代表减法,如果除了0,特判出来。
计算表达式,符号作用被替换,表达式计算是解释性语言的一大强项,不用像C++写递归那么复杂,一个eval函数解决问题,值得注意的是,题目给出的替换运算符,不能直接替换,直接替换的话最后会存在先把乘换加,又把加换减了,这样就和题目意思不一样了,所以要用一个新的占位符去代替要换的位置,最后再把占位符换成对应运算符,保证不会重复替换。注意运算符最多5e5个需要修改eval的递归深度,不然就会暴毙,我一开始没太仔细看题目,火车返校路上码的,没太注意数据范围。
import sys sys.setrecursionlimit(600000) try: s = input() s = s.replace('-','mul') s = s.replace('/','add') s = s.replace('+','div') s = s.replace('*','sub') s = s.replace('mul','*') s = s.replace('add','+') s = s.replace('div','/') s = s.replace('sub','-') print('{:.2f}'.format(eval(s))) except: print('Cannot be divided by 0')