11月6日学习记录
1.关于深搜,广搜中的一些玄学操作:(文化之旅)(图论中) 当你在搜索时,遇到一些点之间存在矛盾条件时,怎样判断下一个节点: 可能会想每次询问决策时将每一个节点都访问并比对。但可以利用特殊操作来适应图论: 如果两个点之间存在矛盾: (很具有这类的代表性) 方案一:消除建边,在读入时直接取消建边 方案二:bfs中剪枝对矛盾值进行特判,如之后的点有矛盾,就不会压入队列, Tip:你可能会考虑是否少走或未访问某些状态。实则不然,执行时从某一个点扩展, 仅仅排除掉了与当前节点违背的所有节点(预处理不好操作)。而可以压入具有矛盾的子节点, 但这些子节点与父节点没有矛盾 2.关于字符串:(词链) 对于字符串你可以直接对它们进行排序,并不用手写任何判断函数。sort(a+1,a+n+1)即对字符串a[1]到a[n]进行字典序排序 3.关于数论:(syzoj比赛:复习了一些组合数学) 卡特兰数等待复习。关于组合数的递推公式:1.O(n)的递推带有除法,无法满足取模运算。2.O(n*n)的递推,杨辉三角的递推 没有除法,你可以进行取模运算。但是缺点时处理数据范围不够大。 !!!!Tip关于取模运算:1.计算取模的减法:一定要%时先在括号+mod防止有负数:(a-b+mod)%mod 2.取模运算的括号:取模与乘除法同级:往往快速幂中可能会用到:x=(x%mod*x%mod)%mod 这样并不对:本意是运算x的模相乘。这样就成了x的模乘x再模。正确应该为:x=((x%mod)*(x%mod))%mod 3.关于考试注意事项: 1.模拟考试中受到别人影响注意力不够集中,导致失误很大。学会从调节自己做起十分重要 2.第二次模拟赛的第三题模拟打挂了,考前应该再思考一下错误点,积累经验。