摘要:
简单$dp$。 记$dp[i][j]$表示$i$天过去了,并且第$i$天的时候是状态$j$的情况下,前$i$天最少休息天数。 递推式很容易得到: $dp[i][0]=min(dp[i-1][0],min(dp[i-1][1],dp[i-1][2]))+1$。$if\left( {1\& a\left 阅读全文
摘要:
把每一个墙的位置都存下来。 如果墙的个数$sz>n+m$,显然无解。 否则枚举炸哪一行,假设枚举炸第$i$行,去掉第$i$行的所有墙,看剩下的墙是否处于同一列,如果是,那么这就是一个解。 阅读全文
摘要:
快速幂,费马小定理,逆元。 设$dp[n]$表示$n$次操作之后的概率,那么$dp[n] = \frac{{(1 - dp[n - 1])}}{2}$。$1-dp[n - 1]$表示上一次没有在中间的概率,除以$2$表示$n$次操作之后的情况数是$n-1$次操作之后的两倍,所以要除以$2$,这个画画 阅读全文
摘要:
思维,简单树$dp$。 首先计算出每一个子树包含多少个节点,记为$f[i]$。然后就可以从$root$开始推出所有节点的期望了。 现在已知$fa$节点的答案为$ans[fa]$,假设要计算$fa$的一个儿子$v$的期望,那么$ans[v]=ans[fa]+1.0+(f[fa]-f[v]-1)/2.0 阅读全文
摘要:
计算几何,极角排序,双指针,二分。 直接找锐角三角形的个数不好找,可以通过反面来求解。 首先,$n$个点最多能组成三角形个数有$C_n^3$个,但是这之中还包括了直角三角形,钝角三角形,平角三角形,我们需要减去这些三角形的个数。 如果在$n$个点中找到了$A$个直角,那么必然有$A$个直角三角形。 阅读全文