poj 2142 拓展欧几里得
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <iostream> using namespace std;
int a,b,c; int exgcd(int a,int b,int &x,int &y){
if (b==){
x = ;
y = ;
return a;
}
int d = exgcd(b,a%b,x,y);
int temp = x;
x = y;
y = temp - a / b * y;
return d;
} int f(int a){
if (a < )
a = -a;
return a;
} int main(){
//freopen("1.txt","r",stdin);
while(scanf("%d%d%d",&a,&b,&c)!=EOF){
if (!a && !b && !c)
break;
int x,y;
int flag = ;
if (a < b){
swap(a,b);
flag = ;
}
int d = exgcd(a,b,x,y);
x = x * (c / d);
y = y * (c / d);
int u,v;
u = x;
v = y;
int mx = ;
int x1,y1;
int t = y * d / a; // 凹函数,极点处取最值
for (int i = t - ;i <= t + ;i++){
u = x + b / d * i;
v = y - a / d * i;
if (f(u)+f(v)<mx){
mx = f(u) + f(v);
x1 = u;
y1 = v;
}
}
if (flag){
printf("%d %d\n",f(y1),f(x1));
}else {
printf("%d %d\n",f(x1),f(y1));
}
}
return ;
}
poj 2142 拓展欧几里得的更多相关文章
- poj 2142 扩展欧几里得解ax+by=c
原题实际上就是求方程a*x+b*y=d的一个特解,要求这个特解满足|x|+|y|最小 套模式+一点YY就行了 总结一下这类问题的解法: 对于方程ax+by=c 设tm=gcd(a,b) 先用扩展欧几里 ...
- The Balance POJ 2142 扩展欧几里得
Description Ms. Iyo Kiffa-Australis has a balance and only two kinds of weights to measure a dose of ...
- POJ.2142 The Balance (拓展欧几里得)
POJ.2142 The Balance (拓展欧几里得) 题意分析 现有2种质量为a克与b克的砝码,求最少 分别用多少个(同时总质量也最小)砝码,使得能称出c克的物品. 设两种砝码分别有x个与y个, ...
- poj 1061 青蛙的约会 拓展欧几里得模板
// poj 1061 青蛙的约会 拓展欧几里得模板 // 注意进行exgcd时,保证a,b是正数,最后的答案如果是负数,要加上一个膜 #include <cstdio> #include ...
- POJ.1006 Biorhythms (拓展欧几里得+中国剩余定理)
POJ.1006 Biorhythms (拓展欧几里得+中国剩余定理) 题意分析 不妨设日期为x,根据题意可以列出日期上的方程: 化简可得: 根据中国剩余定理求解即可. 代码总览 #include & ...
- POJ.1061 青蛙的约会 (拓展欧几里得)
POJ.1061 青蛙的约会 (拓展欧几里得) 题意分析 我们设两只小青蛙每只都跳了X次,由于他们相遇,可以得出他们同余,则有: 代码总览 #include <iostream> #inc ...
- poj 1845 【数论:逆元,二分(乘法),拓展欧几里得,费马小定理】
POJ 1845 题意不说了,网上一大堆.此题做了一天,必须要整理一下了. 刚开始用费马小定理做,WA.(poj敢说我代码WA???)(以下代码其实都不严谨,按照数据要求A是可以等于0的,那么结果自然 ...
- POJ 2891 Strange Way to Express Integers(拓展欧几里得)
Description Elina is reading a book written by Rujia Liu, which introduces a strange way to express ...
- poj 1061 青蛙的约会+拓展欧几里得+题解
青蛙的约会+拓展欧几里得+题解 纵有疾风起 题意 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出 ...
随机推荐
- jquery实现动画
animate() 方法 语法: $(selector).animate({params},speed,callback); 必需的 params 参数定义形成动画的 CSS 属性. 可选的 spee ...
- (转)tar.xz文件如何解压
XZ压缩最新压缩率之王 xz这个压缩可能很多都很陌生,不过您可知道xz是绝大数Linux默认就带的一个压缩工具. 之前xz使用一直很少,所以几乎没有什么提起. 我是在下载phpmyadmin的时候看到 ...
- thinkphp 动态验证码
<?php namespace Home\Controller; use Think\Controller; class TestController extends Controller { ...
- UITableView 使用
关键字 •UITableView •UITableViewDataSource •UITableViewDelegate •UITableViewCell •MVC 运行结果
- modelsim搭建uvm环境及实例
Modelsim SE-64 10.2c 自带编译好的uvm-1.1d 脚本new_run.do set UVM_DPI_HOME C:/modeltech64_10.2c/uvm-1.1d/win6 ...
- 统计黑ip的脚本
#!/bin/bash > ] do cd /var/openresty/nginx/logs#统计nginx日志,将结果重定向到文件blackip.txt中 cat access.log|gr ...
- M站开发规范——By Klax
M站开发的规范,根据具体情况,涉及代码组织的模式,代码编码风格,模块化等,经...研究...决定: 1.采用AMD 规范(RequireJS)实现js模块化. 2.单个文件尽量采用面向对象编程和模块化 ...
- 解决程序出现“terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc Aborted (core dumped)”的问题
最近跑程序时出现了这么一个问题: terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_al ...
- javascript:history.go()和History.back()的区别
http://www.mikebai.com/Article/2009-11/757.html
- mysql中的游标使用案例
DELIMITER $$ DROP PROCEDURE IF EXISTS `curTest`$$ CREATE PROCEDURE curTest(IN _myId INT) BEGIN DECLA ...