链接 : http://codeforces.com/contest/849/problem/B

题意 : 给出 n 个在直角坐标系上的点,每个点的横坐标的值对应给出的顺序序数,比如 1 2 4 3 则相当于给出了(1,1)、(2,2)、(3,4)、(4,3)这四个点,现在问你能不能找出两条不重叠的平行直线将所有点都覆盖掉

分析 : 假设存在满足题目条件的两条平行直线,那么肯定有一条是落在了1-2(第一和第二个点间连线)或1-3或者2-3上,我们分别考虑这三条直线以及其他点就能够知道是否满足题意了,比如现在考虑1-2这条直线,将不在这条直线上的所有点都暂存起来,最后判断暂存起来的点是否能够连成一条直线,并且斜率与1-2这条直线一样。用同样的方法考虑1-3以及2-3即可。

#include<bits/stdc++.h>
using namespace std;
;
int n;
struct point { int x, y; };
point arr[maxn], tmp[maxn];
double Slope(point fir, point sec) { ///计算两点间连线斜率
    return (double)((double)sec.y-(double)fir.y) / (double)((double)sec.x-(double)fir.x);
}
bool Case1()
{
    ], arr[]);///1 - 2的情况
    ;///不在 1 - 2这条直线上的点的个数
    ; i<=n; i++){
        ], arr[i]) != k){ ///挑出不在 1 - 2 这条直线上的点
            tmp[cnt++] = arr[i];
        }
    }
    if(!cnt) return false;///如果cnt==0那么也就是所有点都在1 - 2上,不满足题意
    ) return true;///如果挑出来是一个点的情况,那么1 - 2这条线以及这个点是满足题意的
    ], tmp[]);///计算斜率
    if(kk != k) return false;///如果与 1 - 2的斜率不一致,不满足题意
    ; i<cnt; i++){///一个个点去试
        ], tmp[i]) != kk)
            return false;
    }
    return true;
}
bool Case2()
{
    ],arr[]);
    ;
    ; i<=n; i++){
        ){
            ], arr[i]) != k){
                tmp[cnt++] = arr[i];
            }
        }
    }
    if(!cnt) return false;
    ) return true;
    ], tmp[]);
    if(kk != k)return false;
    ; i<cnt; i++){
        ], tmp[i]) != kk)
            return false;
    }
    return true;
}
bool Case3()
{
    ], arr[]);
    ;
    ; i<=n; i++){
         && i!=){
            ], arr[i]) != k){
                tmp[cnt++] = arr[i];
            }
        }
    }
    if(!cnt) return false;
    ) return true;
    ], tmp[]);
    if(kk != k) return false;
    ; i<cnt; i++){
        ], tmp[i]) != kk)
            return false;
    }
    return true;
}
int main(void)
{
    scanf("%d", &n);
    ; i<=n; i++){
        arr[i].x = i;
        scanf("%d", &arr[i].y);
    }
    if(Case1() || Case2() || Case3()) puts("Yes");
    else puts("No");
    ;
}

#431 Div2 Problem B Tell Your World (鸽巢原理 && 思维)的更多相关文章

  1. POJ 3370. Halloween treats 抽屉原理 / 鸽巢原理

    Halloween treats Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 7644   Accepted: 2798 ...

  2. HDU 1005 Number Sequence【多解,暴力打表,鸽巢原理】

    Number Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  3. ACM数论之旅14---抽屉原理,鸽巢原理,球盒原理(叫法不一又有什么关系呢╮(╯▽╰)╭)

    这章没有什么算法可言,单纯的你懂了原理后会不会运用(反正我基本没怎么用过 ̄ 3 ̄) 有366人,那么至少有两人同一天出生(好孩子就不要在意闰年啦( ̄▽ ̄")) 有13人,那么至少有两人同一月 ...

  4. [POJ3370]&[HDU1808]Halloween treats 题解(鸽巢原理)

    [POJ3370]&[HDU1808]Halloween treats Description -Every year there is the same problem at Hallowe ...

  5. Wunder Fund Round 2016 (Div. 1 + Div. 2 combined) F. Double Knapsack 鸽巢原理 构造

    F. Double Knapsack 题目连接: http://www.codeforces.com/contest/618/problem/F Description You are given t ...

  6. POJ3370&amp;HDU1808 Halloween treats【鸽巢原理】

    题目链接: id=3370">http://poj.org/problem?id=3370 http://acm.hdu.edu.cn/showproblem.php?pid=1808 ...

  7. HDU 1205 吃糖果 (鸽巢原理)

    题目链接:HDU 1205 Problem Description HOHO,终于从Speakless手上赢走了所有的糖果,是Gardon吃糖果时有个特殊的癖好,就是不喜欢将一样的糖果放在一起吃,喜欢 ...

  8. Codeforces Round #648 (Div. 2) E. Maximum Subsequence Value(鸽巢原理)

    题目链接:https://codeforces.com/problemset/problem/1365/E 题意 有 $n$ 个元素,定义大小为 $k$ 的集合值为 $\sum2^i$,其中,若集合内 ...

  9. light oj 1100 - Again Array Queries(暴力,鸽巢原理)

    http://lightoj.com/volume_showproblem.php?problem=1100 刚一看到这题,要询问这么多次,线段树吧,想多了哈哈,根本没法用线段树做. 然后看看数据范围 ...

随机推荐

  1. Java课堂疑问解答与思考5

    一:运行 TestInherits.java 示例,观察输出,总结. TestInherits.java class Grandparent { public Grandparent() { Syst ...

  2. MVC中的cshtml与ASPX的区别

    在MVC3中,即可以使用cshtml,也可以使用aspx, 这两者到底有什么区别呢? 越详细越好,如果是用来正式开发,用哪种比较好. --------------------------------- ...

  3. kafka之config/server.properties配置参数说明

    broker.id--服务器编号 host.name--推荐写本机ip advertised.host.name--外网访问ip advertised.port--外网访问端口 num.partiti ...

  4. Cassandra视图

    一.简介 Cassandra作为一个P2P结构的NOSQL数据库,使用与HBase不同的去中心化架构,在国外使用非常广泛,受欢迎程度甚至在Hbase之上.今天这篇文章介绍Cassandra在视图方面设 ...

  5. Python模块unittest

    Python自带一个单元测试框架,unittest模块,用它来做单元测试,它里面封装好了一些校验返回结果的方法和一些用例执行前的初始化操作 在说unittest之前,先说几个概念: TestCase: ...

  6. UUID工具类及使用

    1.工具类: package UUIdtest; import java.util.UUID; public class UUIDUtil { public static String getUUID ...

  7. Django中Model进阶操作

    一.字段 AutoField(Field) - int自增列,必须填入参数 primary_key=True BigAutoField(AutoField) - bigint自增列,必须填入参数 pr ...

  8. 计算机系统结构总结_Memory Hierarchy and Memory Performance

    Textbook: <计算机组成与设计——硬件/软件接口>  HI <计算机体系结构——量化研究方法>       QR 这是youtube上一个非常好的memory syst ...

  9. go & flag

    参考 Golang下的flag模块使用 Go基础篇[第6篇]: 内置库模块 flag

  10. C#设计模式:备忘录模式(Memento Pattern)

    一,C#设计模式:备忘录模式(Memento Pattern) 1.发起人角色(Originator):记录当前时刻的内部状态,负责创建和恢复备忘录数据.负责创建一个备忘录Memento,用以记录当前 ...