运气好get了第二题的FB还是很开心的w
(打了*的题并没有通过..)
*A
题意:给出一个矩形区域(w和h)然后一个位置(px,py)一个方向(vx,vy)和一个视角d求可以看见的面积.
前五次提交的思路: rand%(w+1)撒点,用余弦定理求是否小于d/2.因为精度撒的点很多..一直TLE以致于没发现输出格式都错了…
后两次提交的思路: 解析几何,求k值之后求三个交点,用模板算多边形面积.迷之WA.
和ACer们讨论方法
– 用位置点把矩形分成四块去做
– 求两个交点就行,顺时针把顶角带进去
B
给出比较大的N求
∑n/2i=0C(n−2i,i)
其中c(a,b) a< b时候为0,结果mod100000007.
手写没找到规律之后用电脑打表找…然后找到这道题就做完了..
a[n] = a[n-1] + a[n-3](话说这个公式好熟悉)
据说很多人没做出来是因为看不懂( )来表示c //参见离散数学
*C
给出一个(有序)集合,求它n划分的cross
{1,2,3} 的cross = 11 + 22 + 33 + 12 + 21 + 23 + 32 +13 +31
最后半小时分析这题
12 + 21 == 11 + 22//然后记忆化搜索写烂了(据说没有优化也是T
讨论
– 其实和每个划分内部的cross等于它的值*个数*11 (-by木洪)
– 用F[i,j]记录前i个元素用了j个划分然后转移方程min(F[i-k,j-1]+k*F[sum[i]-sum[i-k]) 1<= k<=j
– 据说这样还是会T,所以就还需要g[i,j]记录k值改成1 <= k <= g[i-1,j]+1
(-by统文)
*D
给出一个树和边集,求切n条边后连同区域的最大直径 的最小值(数据都是10^6)
二分+树型贪心 -by统文
找到这个类似题解
E
给出两个字符串SA,SB,Alice和Bob分别取首字符给SC,Alice让SC最小,Bob让它最大,求最后SC
- 方法论
- 写了一个贪心过了后晚上被hack了…
“取小:如果相同往后扫,扫到小为止,取完了取短” hack数据
ab aba
修改贪心思路
取完了与前一位比较- DP f[i,j]表示状态,minmax
- 广搜+剪枝
*F
给出一个AB数组,有两种线段操作
翻转[L,R]的AB
求[L,R]假设删去其中所有AB之后的第k个字母
一开始想用树状数组计数是否翻转的
但是第二个不一定全部翻转…写到一半发现崩了…
总结
如果不算E题被hack发挥的其实还不错.
但这又像马师兄的final总结帖一样说
倒不是为我们的成绩感到不甘心,而是为我们这种心态感觉不甘心
过了题后应该更加有动力的向前冲啊 少年w
下个月看起来很忙很忙,但是 算法还是要努力捡起来.
得到4+2门票之后 道路还是很艰难.w.