zoukankan      html  css  js  c++  java
  • Codeforces Gym 100342C Problem C. Painting Cottages 暴力

    Problem C. Painting Cottages
    Time Limit: 20 Sec

    Memory Limit: 256 MB

    题目连接

    http://codeforces.com/gym/100342/attachments

    Description

    The new cottage settlement is organized near the capital of Flatland. The construction company that is building the settlement has decided to paint some cottages pink and others — light blue. However, they cannot decide which cottages must be painted which color. The director of the company claims that the painting is nice if there is at least one pink cottage, at least one light blue cottage, and it is possible to draw a straight line in such a way that pink cottages are at one side of the line, and light blue cottages are at the other side of the line (and no cottage is on the line itself). The main architect objects that there are several possible nice paintings.
    Help them to find out how many different nice paintings are there

    Input

    The first line of the input file contains n — the number of the cottages (1 ≤ n ≤ 300). The following n lines contain the coordinates of the cottages — each line contains two integer numbers xi and yi (−104 ≤ xi , yi ≤ 104 ).

    Output

    Output one integer number — the number of different nice paintings of the cottages.

    Sample Input

    4
    0 0
    1 0
    1 1
    0 1

    Sample Output

    12

    HINT

    题意

    给你一个二维图,然后上面有几个点,然后让你用一条线把这些点分开,问你最多有多少种分开的方式

    题解

    题意转化一下,就是这个n个点,能够连多少个不同的线段就好了,感觉是签到题……

    数据范围才300

    代码:

    //qscqesze
    #include <cstdio>
    #include <cmath>
    #include <cstring>
    #include <ctime>
    #include <iostream>
    #include <algorithm>
    #include <set>
    #include <vector>
    #include <sstream>
    #include <queue>
    #include <typeinfo>
    #include <fstream>
    #include <map>
    #include <stack>
    typedef long long ll;
    using namespace std;
    //freopen("D.in","r",stdin);
    //freopen("D.out","w",stdout);
    #define sspeed ios_base::sync_with_stdio(0);cin.tie(0)
    #define maxn 200001
    #define mod 10007
    #define eps 1e-9
    int Num;
    char CH[20];
    //const int inf=0x7fffffff;   //нчоч╢С
    const int inf=0x3f3f3f3f;
    
    inline ll read()
    {
        ll x=0,f=1;char ch=getchar();
        while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
        while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
        return x*f;
    }
    //**************************************************************************************
    
    
    struct node
    {
        double x,y;
    };
    int gcd(int x,int y)
    {
        return y==0?x:gcd(y,x%y);
    }
    map< pair<int,int> ,int> H;
    node a[maxn];
    int main()
    {
        freopen("cottages.in","r",stdin);
        freopen("cottages.out","w",stdout);
        int n=read();
        for(int i=0;i<n;i++)
            cin>>a[i].x>>a[i].y;
        int ans=0;
        for(int i=0;i<n;i++)
        {
            H.clear();
            for(int j=i+1;j<n;j++)
            {
                int aa=a[i].x-a[j].x;
                int bb=a[i].y-a[j].y;
                int cc=gcd(aa,bb);
                if(H[make_pair(aa/cc,bb/cc)]==0)
                {
                    ans++;
                    H[make_pair(aa/cc,bb/cc)]=1;
                }
            }
        }
        cout<<ans*2<<endl;
    }
  • 相关阅读:
    Web负载均衡的几种实现方式
    Apache和Nginx的区别
    Nginx和Apache区别
    Git 使用中显示“Another git process seems to be running in this repository...”问题解决
    上传本地代码到gitHub过程详解
    MySQL数据库中varchar与char类型的区别
    正则表达式中/i,/g,/ig,/gi,/m的区别和含义
    内行看门道:看似“佛系”的《QQ炫舞手游》,背后的音频技术一点都不简单
    惧怕羊毛党?腾讯云为你保驾护航
    教你1天搭建自己的“微视”
  • 原文地址:https://www.cnblogs.com/qscqesze/p/4708776.html
Copyright © 2011-2022 走看看