
PAT甲级别
会飞的小精灵
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
1049 Counting Ones 解决python超时问题
本题如果直接使用,遍历所有数字中的1的话,会产生超时,因此必须分析其中的规律 这道题是编程之美上的一道题 先看1位数的情况。 如果N = 3,那么从1到3的所有数字:1、2、3,只有个位数字上可能出现1,而且只出现1次,进一步可以发现如果N是个位数,如果N>=1,那么f(N)都等于1,如果N=0,则f(N)为0。 再看2位数的情况。 如果N=13,那么从1到...原创 2018-08-15 10:37:07 · 231 阅读 · 0 评论 -
python解决 1009 Product of Polynomials
此题有两个坑:一个是系数有可能为负,第二个结果中可能出现系数为0的情况 思路:使用字典 ,指数做key,系数做value A=[eval(i) for i in input().split()[1:]] B=[eval(i) for i in input().split()[1:]] d1,d2,d3={},{},{} #d1,d2,d3分别是第...原创 2018-08-29 10:04:23 · 335 阅读 · 0 评论 -
python 解决 1128 N Queens Puzzle
思想一: 先判断是否同行,在通过两点之间的公式来判断是否在对角线上: n=int(input()) def judge(): if len(A)==len(set(A)): for i in range(len(A)): j=i+1 while j<len(A): if A[i]...原创 2018-08-21 12:15:10 · 286 阅读 · 0 评论 -
python解决 1002 A+B for Polynomials
A=[eval(i) for i in input().split()[1:]] #输入数据,并保留本来的数据格式 B=[eval(i) for i in input().split()[1:]] d={} #分别把数据存放入字典 for i in range(0,len(A),2): ...原创 2018-08-28 10:59:46 · 563 阅读 · 0 评论 -
python解决 1051 Pop Sequence
M,N,K=[int(i) for i in input().split()] for _ in range(K): A=[int(i) for i in input().split()] F,B,add=True,[],1 for i in A: if len(B)==0 or B[-1]<i: #当栈为空或者数不够大时,进行push操作 ...原创 2018-08-23 22:45:32 · 462 阅读 · 0 评论 -
python实现 1044 Shopping in Mars (25)
x=int(input()) def isPrime(n): #目的返回第一个能够整除的数 使用的素数筛选法的思想 i = 3 while i * i <= n: if n % i == 0: return i i += 2 return n if x%2==0: #分为奇数偶数分别处理 奇数和素数只有...原创 2018-08-20 20:03:32 · 231 阅读 · 0 评论 -
python解决 1101 Quick Sort
n=int(input()) judge=[0]*n #存储判断结果的bool值 T_min,T_max=10**10,0 A=[0]*n x=input().split() for i in range(n): #前序遍历,找到该数之前的最大项 t=int(x[i]) A[i]=t i...原创 2018-08-26 16:17:12 · 210 阅读 · 0 评论 -
python 实现1007 Maximum Subsequence Sum
本题同样为编程之美上的一道题,添加了数组位置这一问题 假设我们已经知道(A[k].....A[n-1])最大的一段数组和为All[k],并且已经计算出在(A[k].....A[n-1])中包含A[k]的最大的一段数组和为Start[k],那么可以推断出All[k-1]=max{A[k-1],A[k-1]+Start[k],All[k]},利用动态规划思想以及这样的递推公式,来计算 n=int...原创 2018-08-22 11:39:46 · 420 阅读 · 0 评论 -
python实现 1017 Queueing at Bank
if __name__ == '__main__': N,K=[int(i) for i in input().split()] cus = {} #用来存放顾客的到达时间,和需要处理的时间 window = [3600 * 8] * K #将所有...原创 2018-09-04 13:38:36 · 266 阅读 · 0 评论