中大16_编程之美

运气好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(n2i,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.

    原文作者:leidar
    原文地址: https://blog.csdn.net/qq_32209643/article/details/51534684
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞