HDU 5448 Marisa’s Cake

给定一个由n个整点构成的凸多边形,求从n个点里任意选不少于3个点组成的所有凸多边形的面积之和,显然整点构成的多边形面积一定是0.5的整数倍,所以题目需要你算出答案的2倍 mod1000000007的值。

 

1.凸多边形里选出点组成的还是凸多边形。

2.三个点A,B,C构成的三角形,设从原点到他们的向量为fA,fB,fC,那么三角形面积的2倍就是fA×fB+fB×fC+fC×fA。

3.同理k个点(对应向量按逆时针排序为f1,f2,...,fk)构成的多边形面积的2等于 

 

对于两个在原多边形上的点i,j,我们可以算出它们产生的贡献fi×fj在多少个需要多边形的式子里出现。 逆时针顺序在ij之间的点都不能选,而且为了保证p3,所以按逆时针顺序在ji这一段的点至少要有一个在多边形上。之后答案就是

之后预处理一下2^n和前缀和就行了。

 

posted @ 2016-07-18 20:51  lbz007  阅读(124)  评论(0编辑  收藏  举报
Live2D