★☆   输入文件:BlackHawk.in   输出文件:BlackHawk.out   评测插件
时间限制:0.05 s  
内存限制:256 MB

【题目描述】

正义的萌军瞄准了位于南极洲的心灵控制器,为此我们打算用空袭摧毁心灵控制器,然而心灵控制器是如此强大,甚至能缓慢控制飞行员。一群勇敢的士(feng)兵(zi)决定投弹后自杀来避免心灵控制。然而自杀非常痛苦,所以萌军指挥官决定到达目的地后让飞机没油而坠落(也避免逃兵)。军官提供两种油:石油和中国输送来的地沟油,刚开始飞机没有油,飞机可以加几桶石油和几桶地沟油(假设石油和地沟油都有无限桶),飞机落地时必须把油耗尽,已知一桶石油和一桶地沟油所能支撑的飞行距离分别为a,b,驾驶员们必须飞往一个目的地,总距离为c.

1.最少,最多需要加几桶油,若只有一种方案,最少和最多的是相同的.

2.总共有多少种不同的加油配方(死法)能到达目的地。

【输入格式】

只有一行,三个正整数a,b,c

【输出格式】

两行,第一行为最少加几次油和最多加几次油,

第二行为加油方法总数。

若不存在任何方法,第一行输出-1 -1

第二行输出0

【样例输入】

样例1:
2 3 10
样例2:
6 8 10

【样例输出】

样例1:
4 5
2
样例2:
-1 -1
0

【提示】

样例解释:

样例一:飞机加两次石油,两次地沟油,总次数为4,2*2+3*3=10

飞机加五次石油,不加地沟油,总次数为5,2*5+3*0=10

总共两种

样例二:飞机无法到达目的地

数据范围:

对于10%的数据,a<=103,b<=103,c<=103

对于20%的数据,a<=104,b<=104,c<=106

对于50%的数据,a<=109,b<=109,c<=109

对于100%数据,a<=3⋅1018,b<=3⋅1018,c<=3⋅1018

三个答案分值权重分别为20%,30%,50%

【来源】

这个题就是个扩展欧几里得的裸题,也不算太裸,因为涉及到求最小值和最大值的问题

但是自己写了一个交上去爆零,后来看了看比人写的代码,发现还是懵逼在45—49行里。。

4546貌似是求最大区间,,但是为什么要/b/a呢?x为什么要加负号呢??

还有ans1,ans2的b-a是什么鬼。。

啊啊啊啊啊啊为什么为什么为什么。。。。。。

=.=

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<vector>
#include<map>
#define LL long long
using namespace std;
LL a,b,c,x,y;
LL read(LL & n)
{
int flag=,x=;char c='/';
while(c<''||c>''){c=getchar();if(c=='-')flag=;}
while(c>=''&&c<='')x=x*+(c-),c=getchar();
if(flag)n=-x;
else n=x;
}
LL gcd(LL a,LL b)
{
if(b==)return a;
else return gcd(b,a%b);
}
LL exgcd(LL a,LL b,LL &x ,LL & y)
{
if(b==)
{x=;y=;return a;}
LL r=exgcd(b,a%b,x,y);
LL tmp=x;x=y;y=tmp-(a/b)*y;
return r;
}
int main()
{
//freopen("BlackHawk.in","r",stdin);
//freopen("BlackHawk.out","w",stdout);
//read(a);read(b);read(c);
cin>>a>>b>>c;
LL p=gcd(a,b);
if(c%p!=)
{
printf("-1 -1\n0");
return ;
}
exgcd(a,b,x,y);
// printf("%d %d",x,y);
LL xx=ceil((long double)-x/b*c);
LL yy=floor((long double)y/a*c);
LL ans=yy-xx+;
LL ans1=x*c/p+y*c/p+(b-a)/p*yy;
LL ans2=x*c/p+y*c/p+(b-a)/p*xx;
if(ans<=) printf("-1 -1\n0");
else cout<<min(ans1,ans2)<<" "<<max(ans1,ans2)<<endl<<ans;
return ;
}

2057. [ZLXOI2015]殉国的更多相关文章

  1. 扩展欧几里德算法 cogs.tk 2057. [ZLXOI2015]殉国

    2057. [ZLXOI2015]殉国 ★☆   输入文件:BlackHawk.in   输出文件:BlackHawk.out   评测插件时间限制:0.05 s   内存限制:256 MB [题目描 ...

  2. cogs 2057. [ZLXOI2015]殉国

    2057. [ZLXOI2015]殉国 ★☆   输入文件:BlackHawk.in   输出文件:BlackHawk.out   评测插件时间限制:0.05 s   内存限制:256 MB [题目描 ...

  3. COGS——T 2057. [ZLXOI2015]殉国

    http://cogs.pro/cogs/problem/problem.php?pid=2057 ★☆   输入文件:BlackHawk.in   输出文件:BlackHawk.out   评测插件 ...

  4. [ZLXOI2015]殉国

    2057. [ZLXOI2015]殉国 http://cogs.pro/cogs/problem/problem.php?pid=2057 ★☆   输入文件:BlackHawk.in   输出文件: ...

  5. [ZLXOI2015]殉国 数论 扩展欧几里得

    题目大意:已知a,b,c,求满足ax+by=c (x>=0,y>=0)的(x+y)最大值与最小值与解的个数. 直接exgcd,求出x,y分别为最小正整数的解,然后一算就出来啦 #inclu ...

  6. hdu 2057 A+B

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2057 For each test case,print the sum of A and B in h ...

  7. hdu 2057 A+B Again

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2057 题目分析:涉及到16进制内的加法,可以用%I64x直接来处理,要注意到16进制中负数是用补码来表 ...

  8. HDU 2057 十六进制加减法

    http://acm.hdu.edu.cn/showproblem.php?pid=2057   水题,%I64X 长整形十六进制输入输出     #include<stdio.h> in ...

  9. AC日记——#2057. 「TJOI / HEOI2016」游戏 LOJ

    #2057. 「TJOI / HEOI2016」游戏 思路: 最大流: 代码: #include <cstdio> #include <cstring> #include &l ...

随机推荐

  1. Java内存分配与参数传递

    JAVA中方法的参数传递方式只有一种:值传递. JAVA内存分配: 1.栈:存放 基本类型的数据.对象的引用(类似于C语言中的指针) 2.堆:存放用new产生的数据 3.静态域:存放在对象中用stat ...

  2. JSP的体系结构

    以下内容引用自http://wiki.jikexueyuan.com/project/jsp/architecture.html: Web服务器需要一个JSP引擎,即处理JSP页面的容器.JSP容器负 ...

  3. oracle的processes和session最大限制

    1.现象:oracle运行了一段时间后出现用户名连接不上,提示process已经达到最大值. 2.解决: --管理员身份登录 sqlplus / as sysdba --修改processes最大值, ...

  4. mysql导入大型sql文件时注意事项

    原文:http://blog.csdn.net/k21325/article/details/70808563 大型sql文件,需要在my.ini(windows)或者my.cnf(Linux)中设置 ...

  5. Delphi 2007 的重构功能

    Move 移动 1.将选定的静态函数从一个类移动到另一个类 2.将选中的类或接口移动到其他单元 Extract Interface 抽取接口 将选定的函数抽取到一个新的接口中 Extract Supe ...

  6. Ios开发之 -- js和ios的交互

    ==WebViewJavascriptBridge的介绍== #下载:https://github.com/marcuswestin/WebViewJavascriptBridge #关于WebVie ...

  7. VMWare中的Host-only、NAT、Bridge的比較

    VMWare有Host-only(主机模式).NAT(网络地址转换模式)和Bridged(桥接模式)三种工作模式. 1.bridged(桥接模式) 在这样的模式下.VMWare虚拟出来的操作系统就像是 ...

  8. Android自己定义无下划线ClickableSapn超链接文本样式

    近期在做评论的时候须要实现这样的效果 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamF2X2ltYmE=/font/5a6L5L2T/fontsize/ ...

  9. redis 的部分配置

    linux 安装: yum install redis 修改redis配置: 配置文件位于/etc/redis.conf. 作为守护进程运行(默认no) # 默认情况下 redis 不是作为守护进程运 ...

  10. 开始学习java编程

    先看视屏,学习JAVA语法先,后面再看java web mvc,以及myeclipse http://i.youku.com/u/UMzM4MjMxNjMy/videos 争取20天内进步很大.