题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2299

题意:给出一对数a,b,任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些向量,能不能拼出另一个向量(x,y)。

思路:(a,b)和(-a,-b)是两两相反的,那么最后就是4个,(a,b),(-a,b),(b,a),(-b,a)。我们设四个最后使用的个数为t1,t2,t3,t4,那么有:

令k=Gcd(a,b),d=2*k。(A1,B1)和(A2,B2)奇偶共四种情况:偶偶、偶奇、奇偶、奇奇。若为偶偶,那么x和y均是d的倍数;若x和y均是d的倍数,那么必然存在偶数A1,A2使得A1*a+A2*b=x成立,存在偶数B1,B2使得B1*b+B2*a=y成立,进而有解。因此这是充要的。其他三种情况类似。

i64 a,b,x,y;
i64 d;

i64 Gcd(i64 a,i64 b)
{
    if(b==0) return a;
    return Gcd(b,a%b);
}

int ok(i64 x,i64 y)
{
    return x%d==0&&y%d==0;
}

int main()
{
    rush()
    {
        RD(a,b); RD(x,y);
        if(a==0&&b==0)
        {
            if(x==0&&y==0) puts("Y");
            else puts("N");
            continue;
        }
        d=Gcd(a,b)<<1;
        if(ok(x,y)||ok(x-a,y-b)||ok(x-b,y-a)||ok(x-a-b,y-a-b)) puts("Y");
        else puts("N");
    }
}

BZOJ 2299 向量的更多相关文章

  1. BZOJ 2299 向量(裴蜀定理)

    题意:给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些向量,问你能不能拼出另一个向量(x ...

  2. [BZOJ 2299][HAOI 2011]向量 题解(裴蜀定理)

    [BZOJ 2299][HAOI 2011]向量 Description 给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), ...

  3. 【BZOJ 2299】 2299: [HAOI2011]向量 (乱搞)

    2299: [HAOI2011]向量 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1255  Solved: 575 Description 给你一 ...

  4. BZOJ 3243 向量内积

    Description 两个\(d\)维向量\(A=[a_{1},a_{2},...,a_{d}]\)与\(B=[b_{1},b_{2},...,b_{d}]\)的内积为其相对应维度的权值的乘积和,即 ...

  5. [BZOJ]3243 向量内积(Noi2013)

    小C做了之后很有感觉的题目之一,但因为姿势不对调了很久. Description 两个d 维向量A=[a1,a2,...,ad]与B=[b1,b2,...,bd]的内积为其相对应维度的权值的乘积和,即 ...

  6. bzoj 4311 向量 时间线建线段树+凸包+三分

    题目大意 你要维护一个向量集合,支持以下操作: 1.插入一个向量(x,y) 2.删除插入的第i个向量 3.查询当前集合与(x,y)点积的最大值是多少.如果当前是空集输出0 分析 按时间线建线段树 大致 ...

  7. BZOJ 4311 向量

    shallot+向量集 混合版? 首先我们考虑每个向量的存在时间为[L,R] 那么我们知道任意一个区间在线段树上最多被分解成logn个区间 那么我们可以像shallot一样进行区间覆盖 注意到本题的查 ...

  8. BZOJ 4311: 向量( 按时间分治 + 线段树 )

    离线, 然后按时间分治, 每个向量都有出现时间[l, r], 直接插入时间线段树(一个向量只会影响O(logN)数量级的线段树节点). 在线段树每个节点弄出凸壳然后二分. 时间复杂度O(Nlog^2N ...

  9. bzoj 4004 向量拟阵

    题解RT. eps = 1e-10 WrongAnswer eps = 1e-5 Accepted /************************************************* ...

随机推荐

  1. JNI-入门之一

    下面我们开始编写HelloWorld程序,由于涉及到要编写c/c++代码因此我们会在开发中使用Microsoft VC++工具. 编写java代码我们在硬盘上建立一个hello目录作为我们的工作目录, ...

  2. C++实现数字媒体三维图像变换

    C++实现数字媒体三维图像变换 必备环境 glut.h 头文件 glut32.lib 对象文件库 glut32.dll 动态连接库 程序说明 C++实现了用glut画物体对象的功能.并附带放大缩小,旋 ...

  3. AFNetwork作用和用法详解

    AFNetwork是一个轻量级的网络请求api类库.是以NSURLConnection, NSOperation和其他方法为基础的. 下面这个例子是用来处理json请求的:NSURL *url = [ ...

  4. JPages分页插件的使用

    废话不多说,直接上代码. 首先下载JPages的js和css包,附上下载地址:http://dl.oschina.net/softfile/jpages/jpages-latest-138554713 ...

  5. 复习JS和jQuery

    复习JS和jQuery 近些时日,以前学过的东西忘了好多.今天且写一点复习一下JS和jQuery.希冀与某年某月某日,忘却的时候,能看一下自己写的博文,尚可记起一二. 现在有需求如下:有两个按钮,一个 ...

  6. 领接表的建立和它的DFS, BFS;;;

    //图的建立的实现->邻结矩阵和邻结表两种表示方法 #include <cstdio> #include <cstdlib> //#define _OJ_ int vis ...

  7. Winform控件学习-TreeView - ContextMenuStrip

    首先,要向窗体添加一个TreeView控件: 然后再添加一个ContextMenuStrip控件: 接下就要给TreeView添加一个MouseDown事件,代码如下: Example 1 priva ...

  8. win7安装mysql

    转:http://blog.csdn.net/longyuhome/article/details/7913375 Win7系统安装MySQL5.5.21图解 大家都知道MySQL是一款中.小型关系型 ...

  9. css的transition 属性

    把鼠标指针放到 div 元素上,其宽度会从 100px 逐渐变为 300px: div { width:100px; transition: width 2s; -moz-transition: wi ...

  10. lucas求组合数C(n,k)%p

    Saving Beans http://acm.hdu.edu.cn/showproblem.php?pid=3037 #include<cstdio> typedef __int64 L ...