50 + 40 + 0 + 0 = 90
今天做的实在是太差了,暴露出许多问题,做题的时候头脑不清醒,细节没有想到。
【犯下的错误】
1、判断边界时,类似于在A数组中取小于a的数,for循环中只打了 Ai < a,然后当里面的所有数都小于a时就爆了。
2、快速读入没有考虑到负数的情况
【做题时】
T2 > T3 > T4 > T1
T1 是一道拉高平均分的题。1hr才打完。
T4 能联想到最长不下降子序列,然后处理了下子树间的影响,然后就验证,打代码。2hr。
T3 想到了转移根,但是没有想到用记录最大和次大,然后就放掉了。
T2 打了个暴力找了下规律,骗了40分。
【质数】
1【线筛暴力】
2【Miller·Robin】
Miller·Robin(n)
n−1=2m∗k
Random a∈[0,n−1]
b=ammodn
if (b = 1) n is prime
for i = 0 to k - 1
if(b≡n−1(modn)) n is prime
else b=b2modn
else n isn’t prime
若一次通过n有25%的几率不是质数
【平方数游戏】
【规律】
先打表找规律得:从n = 7开始,答案为0,0,1,1循环
然后开始构造答案
n2−(n−1)2−(n−2)2+(n−3)2=4
n2−(n−1)2−(n−2)2+(n−3)2−((n−4)2−(n−5)2−(n−6)2+(n−7)2=0)
用规律8个8个地减少n,然后小于等于13时暴力即可。
【树上路径】
【Dp】
Dfs求出以1为根每个结点为根的子树的最大数和次大数。
Dfs求出每个节点向上的最大值,然后每个点的这三个值来得出答案。
【抓知了】
【最长不下降子序列】
设记录长度为i的子序列最小的数的数组为F。
每做完一个点就还原这个点对F的影响。
本文详细分析了一位程序员在编程过程中遇到的问题,包括边界判断、快速读入考虑不足等,并提供了针对性的解决方案。同时,还介绍了质数判断算法、平方数游戏规律以及树上路径DP算法等,旨在提升编程技能。
395

被折叠的 条评论
为什么被折叠?



