Utawarerumono

描述

题目描述:

算术是为数不多的会让久远感到棘手的事情。通常她会找哈克帮忙,但是哈克已经被她派去买东西了。于是她向你寻求帮助。

给出一个关于变量x,y的不定方程ax+by=cax+by=c,显然这个方程可能有多个整数解。久远想知道如果有解,使得p2​∗x^2+p1​∗x+q2​∗y^2+q1​∗y最小的一组整数解是什么。为了方便,你只需要输出p2​∗x^2+p1​∗x+q2​∗y^2+q1​∗y的最小值。

输入:

第一行三个空格隔开的整数a,b,c(0≤a,b,c≤105)。

第二行两个空格隔开的整数p1​,p2​(1≤p1​,p2​≤105)。

第三行两个空格隔开的整数q1​,q2​(1≤q1​,q2​≤105)。

输出:

如果方程无整数解,输出``Kuon’’。

如果有整数解,输出p2​∗x^2+p1​∗x+q2​∗y^2+q1​∗y的最小值。

样例输入
2 2 1
1 1
1 1
样例输出
Kuon
由于一次项的影响较小,只考虑二次项p2*x^2+q1*y^2=p2*((c-by)/a)^2+q2*y^2,存在一个O(a)的|y|的取值满足c-by是一个a的倍数,
此时|
(c-by)/a|是O(c+b)的,这样就得到了一组不超过10^18的解,且答案不会更大。
后发现多项式的值在X的绝对值增加的时候,只有在x<0的时候才会变小,当x<(-p1)/2p2的值仍然会增大,
所以可以暴力枚举x或y的值(1e5就可以过了)。
 #include <cstdio>
#include <cstring>
#include <cmath>
#include<algorithm>
#include<iostream>
using namespace std;
typedef long long ll;
ll p2,p1,q2,q1;
ll a, b, c, d, x, y;
ll ans=1e18;
ll Exgcd(ll a, ll b)
{
if(b==){ x=, y=;return a;}
ll r = Exgcd(b, a%b);
ll tp=x;
x = y;
y = tp-a/b*y;
return r;
}
int main()
{
cin>>a>>b>>c>>p1>>p2>>q1>>q2;
d = Exgcd(a, b);
if(a==&&b==&&c==) printf("0\n");
if(((a==)&&(b==)&&c) || c%d!= )
printf("Kuon\n");
else if(a&&b==){
if(c%a!=){
printf("Kuon\n");
}else{
ll ta=c/a;
ll ee=p2*ta*ta+p1*ta;
cout<<ee<<endl;
}
}
else if(a==&&b)
{
if(c%b!=)
printf("Kuon\n");
else{
ll tc=c/b;
ll eee=q2*tc*tc+q1*tc;
cout<<eee<<endl;
}
}
else{
for(int i=-;i<=;i++){
if((c-a*i)%b==){
ll iy=(c-a*i)/b;
ll ac=p2*i*i+p1*i+q2*iy*iy+q1*iy;
ans=min(ans,ac);
}
}
cout<<ans<<endl;
}
return ;
}

2018 Wannafly summer camp Day2--Utawarerumono的更多相关文章

  1. 2018 Wannafly summer camp Day8--连通块计数

    连通块计数 描述 题目描述: 小 A 有一棵长的很奇怪的树,他由 n 条链和 1 个点作为根构成,第 i条链有 ai​ 个点,每一条链的一端都与根结点相连. 现在小 A 想知道,这棵长得奇怪的树有多少 ...

  2. 2018 Wannafly summer camp Day2--New Game!

    New Game! 描述 题目描述: Eagle Jump公司正在开发一款新的游戏.泷本一二三作为其员工,获得了提前试玩的机会.现在她正在试图通过一个迷宫. 这个迷宫有一些特点.为了方便描述,我们对这 ...

  3. 2018 Wannafly summer camp Day8--区间权值

    区间权值 小Bo有\(n\)个正整数\(a_1\)--\(a_n\),以及一个权值序列\(w_1\)--\(w_n\),现在她定义\(f(l,r)=(\sum_{i=l}^r a_i^2) *w_{r ...

  4. 2018 Wannafly summer camp Day3--Shopping

    Shopping 描述 题目描述: 你要买n件物品,其中有一些是凳子. 商场正在举行促销活动,如果购物车中有至少一个凳子,那么你可以半价购买这个购物车中最贵的一个物品. 你有m辆购物车,请最小化你的花 ...

  5. 2018 Wannafly summer camp Day3--Travel

    Travel 描述 题目描述: 魔方国有n座城市,编号为1~n.城市之间通过n-1条无向道路连接,形成一个树形结构. 澜澜打算在魔方国进行mm次旅游,每次游览至少一座城市.为了方便,每次旅游游览的城市 ...

  6. 2018 Wannafly summer camp Day3--Knight

    Knight 题目描述: 有一张无限大的棋盘,你要将马从\((0,0)\)移到\((n,m)\). 每一步中,如果马在\((x,y)(x,y)\),你可以将它移动到 \((x+1,y+2)(x+1,y ...

  7. 牛客网补题 New Game!(原Wannafly summer camp day2原题)

    思路:这个题在秦皇岛的时候好像没有写出来,反正我是没有写出来,题解是听懂了:把直线和圆都看做一个结点,圆和直线用点到直线的距离与半径差求出来,圆和圆之间用点和点之间的距离和半径差表示,最后最短路跑一遍 ...

  8. 2019 wannafly winter camp

    2019 wannafly winter camp Name Rank Solved A B C D E F G H I J K day1 9 5/11 O O O O O day2 5 3/11 O ...

  9. 2019 wannafly winter camp day 3

    2019 wannafly winter camp day 3 J 操作S等价于将S串取反,然后依次遍历取反后的串,每次加入新字符a,当前的串是T,那么这次操作之后的串就是TaT.这是第一次转化. 涉 ...

随机推荐

  1. 抽象工厂模式&简单工厂模式

    抽象工厂模式 优点: 如IFactory factory=new AccessFactory(),在一个应用中只需要初始化一次,这就使得改变应用的时候变得非常容易:其次它让具体的创建实例过程与客户端分 ...

  2. 日期函数new Date()浏览器兼容性问题

    项目上与时间相关的地方特别多,与时间格式相关都使用了moment.js轻量级日期处理库,在开发中出现了几次浏览器兼容性问题,所以总结一下new Date()和moment.js在各大浏览器中兼容性问题 ...

  3. php基础--取默认值以及类的继承

    (1)对于php的默认值的使用和C++有点类似,都是在函数的输入中填写默认值,以下是php方法中对于默认值的应用: <?phpfunction makecoffee($types = array ...

  4. Java实现队列结构的详细代码

    一.什么是队列结构 一种线性结构,具有特殊的运算法则[只能在一端(队头)删除,在另一端(队尾)插入]. 分类: 顺序队列结构 链式队列结构 基本操作: 入队列 出队列 二.准备数据 static fi ...

  5. sparkpython

    http://blog.csdn.net/ydq1206/article/details/51922148

  6. Tomcat中部署web应用的三种方式

    Tomcat中部署web应用的三种方式(静态部署)       第一种,针对war或解压后的war,最为常用的是直接操作webapp目录,将完整的war包或者web应用直接放到webapp目录下.使用 ...

  7. Android应用开发基础之三:数据存储和界面展现(三)

    生成XML文件备份短信 创建几个虚拟的短信对象,存在list中 备份数据通常都是备份至sd卡 使用StringBuffer拼接字符串 把整个xml文件所有节点append到sb对象里 sb.appen ...

  8. solidity语言1

    合约(contract)由变量(variable).函数(functions).函数修饰符(function modifiers).事件(events).结构体类型(struct type).枚举类型 ...

  9. HDU 4117 GRE Words

    这道题不难想到这样的dp. dp[字符串si] = 以si为结尾的最大总权值. dp[si] = max(dp[sj]) ,1.j < i,2.sj是si的子串. 对于第二个条件,是一个多模版串 ...

  10. mxnet数据操作

    # coding: utf-8 # In[2]: from mxnet import nd # In[3]: x = nd.arange(12) x # In[4]: x.shape,x.size # ...