POJ 1809 Regetni 奇偶性

原创 2012年03月24日 17:22:08

题意:给你许n个点,可以从中任选三个点组成一个三角形。问这些三角形中面积为整数的有多少(包括0)。

题中给出一个面积公式:A=|x1y2 - y1x2 + x2y3 - y2x3 + x3y1 - y3x1|/2 

题解:本质上我们只要让x1y2 ,y1x2 , x2y3,y2x3, x3y1 ,y3x1这六项中奇数项的个数为偶数个,即0,2,4,6。

所以我们把点分类:奇奇,偶偶,奇偶,偶奇。逐个分析之后可以发现,只要保证三个顶点中至少有两个属于同一类,就能保证有偶数个 奇数项

#include<cstdio>
using namespace std;

#define lint __int64
int a[4];

lint C ( int m, int n )
{
    if ( m < n ) return 0;
    if ( m == n || n == 0) return 1;
    lint mult = 1;
    for ( int i = 1, j = m; i <= n; i++, j-- )
        mult = mult * j / i;
    return mult;
}

int main()
{
    int t, n, x, y;
    scanf("%d",&t);
    for ( int i = 1; i <= t; i++ )
    {
        scanf("%d",&n);
        a[0] = a[1] = a[2] = a[3] = 0;
        while ( n-- )
        {
            scanf("%d%d",&x,&y);
            if ( (x&1) && (y&1) ) a[0]++;
            else if ( !(x&1) && !(y&1) ) a[1]++;
            else if ( (x&1) && !(y&1) ) a[2]++;
            else a[3]++;
        }
        lint ret = 0;
        ret += C(a[0],3)+C(a[1],3)+C(a[2],3)+C(a[3],3);
        ret += C(a[0],2) * (a[1]+a[2]+a[3]);
        ret += C(a[1],2) * (a[0]+a[2]+a[3]);
        ret += C(a[2],2) * (a[1]+a[0]+a[3]);
        ret += C(a[3],2) * (a[1]+a[2]+a[0]);
        printf("Scenario #%d:\n%I64d\n\n",i,ret);
    }
    return 0;
}


poj 3372(完全剩余系/奇偶性)

题意:老师给N个学生发糖,第x次发糖发给编号为 f(x) 的学生。可以推知:f(x) = x * (x+1) / 2 % N(学生号为 0, 1, 2, 3, ```N-1 ) 现在问你是否每个学生...

POJ_1809_Regetni(组合数学)

D - Regetni Time Limit:3000MS     Memory Limit:30000KB     64bit IO Format:%I64d & %I64u Submit ...

poj 1809 Regetni(数学)

Regetni Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 1595   Accept...

函数奇偶性总结.doc

  • 2010年06月11日 20:04
  • 240KB
  • 下载

ECC计算机奇偶性校验原理分析

1、什么是奇偶校验对数据传输正确性的一种校验方法。在数据传输前附加一位奇校验位,用来表示传输的数据中"1"的个数是奇数还是偶数,为奇数时,校验位置为"0",否则置为"1",用以保持数据的奇偶性不变。例...

函数的单调性与奇偶性

  • 2010年10月10日 14:56
  • 367KB
  • 下载

HDU 4349 Xiao Ming's Hope(组合数的奇偶性)

 Xiao Ming's Hope Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot...

HDU 1010 Tempter of the Bone(DFS+奇偶性剪枝)

Tempter of the Bone Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ 1809 Regetni 奇偶性
举报原因:
原因补充:

(最多只允许输入30个字)