[BZOJ1441&BZOJ2257&BZOJ2299]裴蜀定理

裴蜀定理

  对于整系数方程ax+by=m,设d =(a,b)

  方程有整数解当且仅当d|m

  这个定理实际上在之前学习拓展欧几里得解不定方程的时候就已经运用到

  拓展到多元的方程一样适用


BZOJ1441 给出n个数(A1...An)现求一组整数序列(X1...Xn)使得S=A1*X1+...An*Xn>0,且S的值最小

  该方程有解当且仅当gcd(A1...AN)|s

  要求s的值最小,那么答案就是gcd(A1..AN)


BZOJ2257   jyy就一直想着尽快回地球,可惜他飞船的燃料不够了。
有一天他又去向火星人要燃料,这次火星人答应了,要jyy用飞船上的瓶子来换。jyy
的飞船上共有 N个瓶子(1<=N<=1000) ,经过协商,火星人只要其中的K 个 。 jyy
将 K个瓶子交给火星人之后,火星人用它们装一些燃料给 jyy。所有的瓶子都没有刻度,只
在瓶口标注了容量,第i个瓶子的容量为Vi(Vi 为整数,并且满足1<=Vi<=1000000000 ) 。
火星人比较吝啬,他们并不会把所有的瓶子都装满燃料。他们拿到瓶子后,会跑到燃料
库里鼓捣一通,弄出一小点燃料来交差。jyy当然知道他们会来这一手,于是事先了解了火
星人鼓捣的具体内容。火星人在燃料库里只会做如下的3种操作:1、将某个瓶子装满燃料;
2、将某个瓶子中的燃料全部倒回燃料库;3、将燃料从瓶子a倒向瓶子b,直到瓶子b满
或者瓶子a空。燃料倾倒过程中的损耗可以忽略。火星人拿出的燃料,当然是这些操作能
得到的最小正体积。
jyy知道,对于不同的瓶子组合,火星人可能会被迫给出不同体积的燃料。jyy希望找
到最优的瓶子组合,使得火星人给出尽量多的燃料。

  我们思考两个瓶子,设它们的容量为x,y,d=(x,y)

  很容易看出不管怎么倒它们中的容量都是d的倍数

  再思考两个容量互质的瓶子,设它们的容量为a,b

  由于玩过某个CHL推荐的“高智商倒水游戏”...然后可以发现不论如何都可以倒到1

  容量gcd为d的状态可以看做每滴水的重量为d,然后看做两个容量互质的瓶子,这样最后剩下d的水

  猜想可以拓展到n的情况,也就是火星人倒的水应该是k个瓶子容量的最小公约数

  然后就在n个数里挑k个数使得它们的最小公约数最大

  把所有数的因子挑出来,从大到小一旦出现的次数超过k次就可以直接输出


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

说明:这里的拼就是使得你选出的向量之和为(x,y)

  看做可以做无限次的加减2a,2b(x和y中都可以),和不超过1次的(x+a,y+b)(x+b,y+a)操作

  为什么不是减?其实加减一样因为都可以通过前面的2a,2b操作得到

  然后就可以直接裴蜀定理判定啦



END.

15 Apr.

时间: 2024-10-27 03:08:48

[BZOJ1441&BZOJ2257&BZOJ2299]裴蜀定理的相关文章

【BZOJ-1441】Min 裴蜀定理 + 最大公约数

1441: Min Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 471  Solved: 314[Submit][Status][Discuss] Description 给出n个数(A1...An)现求一组整数序列(X1...Xn)使得S=A1*X1+...An*Xn>0,且S的值最小 Input 第一行给出数字N,代表有N个数下面一行给出N个数 Output S的最小值 Sample Input 24059 -1782 Sample Outpu

【BZOJ-2299】向量 裴蜀定理 + 最大公约数

2299: [HAOI2011]向量 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1118  Solved: 488[Submit][Status][Discuss] Description 给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些向量,问你能不能拼出另一个向量(x,y). 说明:这里的拼就是使得你选出的向量之和为(x,y)

【bzoj1441】Min 扩展裴蜀定理

题目描述 给出n个数(A1...An)现求一组整数序列(X1...Xn)使得S=A1*X1+...An*Xn>0,且S的值最小 输入 第一行给出数字N,代表有N个数 下面一行给出N个数 输出 S的最小值 样例输入 2 4059 -1782 样例输出 99 题解 扩展裴蜀定理 裴蜀定理:二元一次不定方程 $ax+by=c$ 存在整数解的充分必要条件是 $\gcd(a,b)|c$. 扩展裴蜀定理:改成n元一次不定方程,结论依然成立. 证明: $a_1x_1+a_2x_2$ 的取值范围为 $k·\gc

BZOJ 2299 向量(裴蜀定理)

题意:给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些向量,问你能不能拼出另一个向量(x,y). 实际上前四个向量能拼出(ma,nb)(m%2=n%2).后四个向量拼出(xb,ya)(x%2=y%2). 这样可以枚举这四个未知数在模二意义下的解.这两个向量相加为(ma+xb,nb+ya). 对于ma+xb=X.根据系数的奇偶性,如果有系数为奇数,可使得等式两边都减去一个数使得系数都为偶

贝祖定理(裴蜀定理)

在数论中,裴蜀定理是一个关于最大公约数(或最大公约式)的定理:若a,b是整数,且(a,b)=d,那么对于任意的整数x,y,ax+by=m中的m一定是d的倍数. 特别地,一定存在整数x,y,使ax+by=d成立,且不止一组,例如(12,42)=6,则方程12x + 42y = 6有解,事实上有(-3)×12 + 1×42 = 6及4×12 + (-1)×42 = 6. 而ax+by=1是a,b两数互质的充要条件,同样地,x,y不止一组. 参考:http://www.cnblogs.com/tekk

bzoj 2299 [HAOI2011]向量 裴蜀定理

bzoj 2299 [HAOI2011]向量 裴蜀定理 题意: 给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些向量,问你能不能拼出另一个向量(x,y). 限制: -2*1e9 <= a,b,x,y <= 2*1e9 思路: 题目的操作可以化为: 1. x +- 2a; 2. y +- 2a; 3. x +- 2b; 4. y +- 2b; 5. x + a && y

扩展欧几里得算法、裴蜀定理与乘法逆元

扩展欧几里得算法 扩展欧几里得算法(扩O)能在求gcd(a,b)的同时求出丢番图方程ax+by=gcd(a, b)的解. 然而怎么求呢?我们观察gcd(a, b)=gcd(b, a%b),所以设如下两个方程: ax+by = gcd(a,b) = d: bx'+(a%b)y' = gcd(b,a%b): 明显gcd(a,b) = gcd(b,a%b),也就是ax+by = bx'+(a%b)y'. 为了求得x与y,我们需要保证a,b不变,所以:ax+by = bx'+(a%b)y' = bx'+

BZOJ 2257: [Jsoi2009]瓶子和燃料【数论:裴蜀定理】

2257: [Jsoi2009]瓶子和燃料 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1326  Solved: 815[Submit][Status][Discuss] Description jyy就一直想着尽快回地球,可惜他飞船的燃料不够了. 有一天他又去向火星人要燃料,这次火星人答应了,要jyy用飞船上的瓶子来换.jyy 的飞船上共有 N个瓶子(1<=N<=1000) ,经过协商,火星人只要其中的K 个 . jyy 将 K个瓶子交给

【BZOJ】1441: Min(裴蜀定理)

http://www.lydsy.com/JudgeOnline/problem.php?id=1441 这东西竟然还有个名词叫裴蜀定理................ 裸题不说....<初等数论>上边写得很清楚:如果对于任意d|ai,有d|sum{aixi} 所以求出d就行了...显然gcd.. #include <cstdio> #include <cstring> #include <cmath> #include <string> #in