摘要:
题意: 给定一个多边形,这个多边形的点都在格点上,问你这个多边形里面包含了几个格点。 题解: 对于格点多边形有一个非常有趣的定理: 多边形的面积S,内部的格点数a和边界上的格点数b,满足如下结论: 2S=2a+b-2 证明不难,对于格点长方形显然成立,对于高度为1的直角三角形也显然成立,那么我们想象 阅读全文
摘要:
当模数为素数时可以用费马小定理求逆元。 模数为合数时,费马小定理大部分情况下失效,此时,只有与模数互质的数才有逆元(满足费马小定理的合数叫伪素数,讨论这个问题就需要新开一个博客了)。 (对于一个数n,所有小于它且与它互质的数组成一个模n乘法群) gcd是最大公约数,扩展gcd则是在一对数x,y的gc 阅读全文
摘要:
将一些计算几何常用的板整理一波 tips: 点与凸包的关系,计算凸包每条边与点的叉乘,如果出现0,则在凸包边上,出现两个0,则在凸包顶点上,正负性均相同,则在凸包内,否则在凸包外。 线段与凸包的关系,是两个点与凸包的关系的笛卡尔积。 直线与凸包的关系,可求凸包上每点与直线叉乘的正负性。 两线段的关系 阅读全文
摘要:
题意: 给你长度最长为1000的字符串,这个字符串中最多有10种字母,每次给你两种字母,输出这两种字母在字符串中的相对位置,问你这个字符串原本是什么样子,如果不存在则输出-1 题解: 把整个字符串看作集合,每一个字符看作一个集合中的元素,字符串的前后关系看作偏序关系,作出这个集合的哈斯图,在哈斯图上 阅读全文
摘要:
题意: 给定两个由数字组成的序列s,t,找出s所有数值大于t的子序列。注意不是字典序大。 题解: 首先特判s比t短或一样长的情况。 当s比t长时,直接用组合数计算s不以0开头的,长度大于t的所有子序列数量。 然后再去看s的和t一样长的子序列。 就是在找s和t的公共子序列,并且一旦某一位s比t大了,就 阅读全文