LINK:The red sakura

暴怒狂樱 血染京都.

这题质量不咋地 这题也没啥营养.

不过还是存在值得学习的地方的。

一个trick n行 m列 第一行与第n行相连 第1列和第m列相连的时候。

考虑一个有意思的事情 x+k,y+k 在gcd(n,m)==1的时候 x+k,y+k为整个网格的通项。

更普遍的 x+k,y+k所代表的集合 %gcd(n,m)为等价类.

那么容易发现 一共存在gcd(n,m)个等价类 每个等价类的大小为LCM(n,m);

考虑这道题 出题人的题解上说 可以证明最多使用一次1操作。

我也不会证明 感觉是对的吧。

那么容易得到 使用1操作的时间无所谓.

考虑如果不使用1操作 就是解两个同余方程.

如果使用 就是能否直接到达的问题 如果可以 就结束了 如果不行再解两个同余方程.

值得一提的是 第二个同余方程比较有意思 用的就是上述的算是引理吧.

ll T;
ll xx,yy;
inline ll exgcd(ll a,ll b)
{
if(!b){xx=1;yy=0;return a;}
ll ww=exgcd(b,a%b);
ll zz=xx;xx=yy;yy=zz-a/b*yy;
return ww;
}
inline ll solve(ll a,ll b,ll c,ll v)
{
ll gcd=exgcd(a,b);
if(c%gcd)return INF;
b/=gcd;
return (c/gcd*xx%b+b)%b*v;
}
inline ll G(ll a,ll b){return b?G(b,a%b):a;}
signed main()
{
//freopen("1.in","r",stdin);
get(T);
while(T--)
{
ll get(n),get(m),get(d),get(sx),get(sy),get(ex),get(ey),get(a),get(b),get(c);
--sx;--sy;--ex;--ey;
if(sx==ex&&sy==ey){put(0);continue;}
ll ans=INF;ll gcd=G(n,m);
ans=min(ans,solve(d,n,(ex-sx+n)%n,b)+solve(d,m,(ey-sy+m)%m,c));
ll w1=a+solve(d,gcd,ex-sx-(ey-sy),b);
ll w2=a+solve(d,gcd,ey-sy-(ex-sx),c);
ans=min(ans,w1);ans=min(ans,w2);
if((sx-ex)%gcd==(sy-ey)%gcd)ans=min(ans,a);
putl(ans==INF?-1:ans);
}
return 0;
}

牛客练习赛64 红色的樱花 exgcd 贪心的更多相关文章

  1. 牛客练习赛64 D【容斥+背包】

    牛客练习赛64 D.宝石装箱 Description \(n\)颗宝石装进\(n\)个箱子使得每个箱子中都有一颗宝石.第\(i\)颗宝石不能装入第\(a_i\)个箱子.求合法的装箱方案对\(99824 ...

  2. 牛客练习赛51 **E-数列** (二分,贪心,构造)

    牛客练习赛51 E-数列 链接:https://ac.nowcoder.com/acm/contest/1083/E来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 327 ...

  3. 牛客练习赛64 如果我让你查回文你还爱我吗 线段树 树状数组 manacher 计数 区间本质不同回文串个数

    LINK:如果我让你查回文你还爱我吗 了解到了这个模板题. 果然我不会写2333... 考试的时候想到了一个非常辣鸡的 线段树合并+莫队的做法 过不了不再赘述. 当然也想到了manacher不过不太会 ...

  4. 牛客练习赛 26 C题 城市规划【贪心】

    <题目链接> 题目描述 小a的国家里有n个城市,其中第i和第i - 1个城市之间有无向道路连接,特殊的,第1个城市仅与第2个城市相连为了减轻道路维护负担,城市规划局局长MXT给出了m个要求 ...

  5. 【并查集缩点+tarjan无向图求桥】Where are you @牛客练习赛32 D

    目录 [并查集缩点+tarjan无向图求桥]Where are you @牛客练习赛32 D PROBLEM SOLUTION CODE [并查集缩点+tarjan无向图求桥]Where are yo ...

  6. 牛客练习赛31 B 赞迪卡之声妮莎与奥札奇 逻辑,博弈 B

    牛客练习赛31 B 赞迪卡之声妮莎与奥札奇 https://ac.nowcoder.com/acm/contest/218/B 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 2621 ...

  7. 牛客练习赛31 D 神器大师泰兹瑞与威穆 STL,模拟 A

    牛客练习赛31 D 神器大师泰兹瑞与威穆 https://ac.nowcoder.com/acm/contest/218/D 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 26214 ...

  8. 最小生成树--牛客练习赛43-C

    牛客练习赛43-C 链接: https://ac.nowcoder.com/acm/contest/548/C 来源:牛客网 题目描述 ​ 立华奏是一个刚刚开始学习 OI 的萌新. 最近,实力强大的 ...

  9. 牛客练习赛28-B(线段树,区间更新)

    牛客练习赛28 - B 传送门 题目 qn姐姐最好了~ ​ qn姐姐给你了一个长度为n的序列还有m次操作让你玩, ​ 1 l r 询问区间[l,r]内的元素和 ​ 2 l r 询问区间[l,r]内的 ...

随机推荐

  1. 虚拟机中Linux环境搭建

    Linux系统搭建 作为一名软件测试资深工程师,在日常工作中离不开对测试环境的操作.我们测试的软件,系统都是部署在linux系统环境上,我们掌握Linux系统的日常操作是非常必要的.那么在学习Linu ...

  2. axure8.0实现tab切换

    这两天帮忙做产品原型图,tab切换做一次忘一次,这次索性记录一下,免得下次再忘了. 1.在元件库中拉出来一个动态面板,双击动态面板,添加状态,添加完成之后,点击红色标注的地方,开始编辑每个面板状态: ...

  3. java语法学习

    // 单行注释 /* 多行注释 */ /** JavaDoc(Java文档)注释是这样的.可以用来描述类和类的属性. */ // 导入 java.util中的 ArrayList 类 import j ...

  4. Django中的request到底有啥属性

    Django中的request到底有啥属性呢 Request 我们知道当URLconf文件匹配到用户输入的路径后,会调用对应的view函数,并将  HttpRequest对象  作为第一个参数传入该函 ...

  5. AutoJS 实现QQ小游戏胡莱三国爬塔

    AutoJS 开发文档参考 环境 安卓QQ 胡莱三国小游戏 AutoJS APP 使用方法 安装AutoJs,打开无障碍模式,进入到胡莱三国小游戏,在Autojs中执行脚本 代码 "auto ...

  6. JVM 专题七:运行时数据区(二)程序计数器

    1.程序计数器 1. 什么是PC寄存器(程序计数器)? JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现 ...

  7. 数据可视化之powerBI技巧(十三)PowerBI作图技巧:动态坐标轴

    之前的文章中介绍了如何制作动态的分析指标,这篇进行文章再介绍一下如何制作动态的坐标轴. 假设要分析的数据为销售额,分别从产品和地区两个维度进行分析,要实现的效果是,如果选择的是产品,则坐标轴是各个产品 ...

  8. 关于在JSP页面识别不了EL表达式的情况

    今天在JSP页面接收Controller返回的数据user_nickname,使用EL表达式显示数据发现在页面输出的始终是字符串${user_nickname} 经过查阅资料,问题在于使用的web.x ...

  9. Trie——解决字符串搜索、异或最值问题

    Trie--解决字符串搜索.异或最值问题 在说到Trie之前,我们设想如下问题: 给我们1e5个由小写字母构成的不重复的字符串,每个字符串长度不超过6,之后是1e5次查询操作,每次给我们一个字符串,要 ...

  10. 2.UDP协议

    UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能. 应用层给UDP多长的报文,UDP就照样发送,即一次发送一个完整报文 一.UDP首部格式 这里的长度是指(首部+数据) UDP校验 ...