P3504 [POI 2010] OWC-Sheep
题目描述
**译自 POI 2010 Stage 2. Day 2「[Sheep](https://szkopul.edu.pl/problemset/problem/YjtAwdQrSiGcE_RLiEJpGiYE/site/?key=statement)」**
Byteasar 有一个凸多边形牧场,里面有一些羊。
现在 Byteasar 想要把这个凸多边形划分成若干三角形(划分线不能在牧场中相交,只能在顶点相交),使得每一个三角形里面的羊都有偶数只。
Byteasar 想知道有多少种方案,你只要输出方案数对 $m$ 取余后的结果即可。
输入格式
第一行三个空格隔开的正整数 $n,k,m$ ,分别表示牧场的顶点数,羊的个数,以及模数。
接下来 $n$ 行,每行两个空格隔开的正整数 $x_i,y_i$ ,表示牧场的顶点坐标。
接下来 $k$ 行,每行两个空格隔开的正整数 $p_i,q_i$ ,表示羊的坐标。
输出格式
一行一个整数,表示方案数对 $m$ 取模的结果。
翻译来自于 [LibreOJ](https://loj.ac/p/2450)。
说明/提示
对于所有数据:
- $4\le n\le 600$,$m\le 20\ 000$;
- $2\le k$,$2\mid k$;
- $-15\ 000\le x_i,y_i,p_i,q_i\le 15\ 000$;
- 牧场的顶点坐标按顺时针顺序给出;
- 保证羊严格在多边形内部。