牛客练习赛64 红色的樱花 exgcd 贪心
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 贪心的更多相关文章
- 牛客练习赛64 D【容斥+背包】
牛客练习赛64 D.宝石装箱 Description \(n\)颗宝石装进\(n\)个箱子使得每个箱子中都有一颗宝石.第\(i\)颗宝石不能装入第\(a_i\)个箱子.求合法的装箱方案对\(99824 ...
- 牛客练习赛51 **E-数列** (二分,贪心,构造)
牛客练习赛51 E-数列 链接:https://ac.nowcoder.com/acm/contest/1083/E来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 327 ...
- 牛客练习赛64 如果我让你查回文你还爱我吗 线段树 树状数组 manacher 计数 区间本质不同回文串个数
LINK:如果我让你查回文你还爱我吗 了解到了这个模板题. 果然我不会写2333... 考试的时候想到了一个非常辣鸡的 线段树合并+莫队的做法 过不了不再赘述. 当然也想到了manacher不过不太会 ...
- 牛客练习赛 26 C题 城市规划【贪心】
<题目链接> 题目描述 小a的国家里有n个城市,其中第i和第i - 1个城市之间有无向道路连接,特殊的,第1个城市仅与第2个城市相连为了减轻道路维护负担,城市规划局局长MXT给出了m个要求 ...
- 【并查集缩点+tarjan无向图求桥】Where are you @牛客练习赛32 D
目录 [并查集缩点+tarjan无向图求桥]Where are you @牛客练习赛32 D PROBLEM SOLUTION CODE [并查集缩点+tarjan无向图求桥]Where are yo ...
- 牛客练习赛31 B 赞迪卡之声妮莎与奥札奇 逻辑,博弈 B
牛客练习赛31 B 赞迪卡之声妮莎与奥札奇 https://ac.nowcoder.com/acm/contest/218/B 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 2621 ...
- 牛客练习赛31 D 神器大师泰兹瑞与威穆 STL,模拟 A
牛客练习赛31 D 神器大师泰兹瑞与威穆 https://ac.nowcoder.com/acm/contest/218/D 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 26214 ...
- 最小生成树--牛客练习赛43-C
牛客练习赛43-C 链接: https://ac.nowcoder.com/acm/contest/548/C 来源:牛客网 题目描述 立华奏是一个刚刚开始学习 OI 的萌新. 最近,实力强大的 ...
- 牛客练习赛28-B(线段树,区间更新)
牛客练习赛28 - B 传送门 题目 qn姐姐最好了~ qn姐姐给你了一个长度为n的序列还有m次操作让你玩, 1 l r 询问区间[l,r]内的元素和 2 l r 询问区间[l,r]内的 ...
随机推荐
- css3实现背景颜色渐变,文字颜色渐变,边框颜色渐变
css3的渐变可以使用2个或者多个指定的颜色之间显示平稳的过渡的效果.这篇文章主要介绍下css3实现背景颜色渐变,文字颜色渐变,边框颜色渐变的方法,以便大家学习参考! 1.css背景颜色渐变 代码: ...
- 一文了解HAProxy主要特性
本文转自Rancher Labs 在Kubernetes中,Ingress对象定义了一些路由规则,这些规则规定如何将一个客户端请求路由到指定服务,该服务运行在你的集群中.这些规则可以考虑到输入的HTT ...
- abp一代数据迁解析
abp版本5.9 概述 数据迁移无非就是两件事情,1.创建数据库,并根据实体创建对应的表:2.添加一些初始数据 abp的数据迁移也是完成这两件事,比较特殊的是它是多租户saas系统,而且支持不同的租户 ...
- 真懂Spring的@Configuration配置类?你可能自我感觉太良好
当大潮退去,才知道谁在裸泳.关注公众号[BAT的乌托邦]开启专栏式学习,拒绝浅尝辄止.本文 https://www.yourbatman.cn 已收录,里面一并有Spring技术栈.MyBatis.中 ...
- MySQL数据库使用报错ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
今天MySQL数据库,在使用的过程中一直报错ERROR 1820 (HY000): You must reset your password using ALTER USER statement be ...
- easyui获取datagrid中的某一列的所有值
function getCol(){ var rows = $("#dg").datagrid("getRows"); var total = "&q ...
- git和github连接权限(这是一个简便方法,不是很安全,建议大家还是用ssh解决)
在使用,git从github上clone下来代码后. 我们再工作区进行编辑,然后提交. 最后我们想要将我们的改变推送到github上. 但是往往这个时候,我们可能会面临这样的问题. 我们没有权限将代码 ...
- 系统部署时的Could not load file or assembly 'Microsoft.VisualStudio.Enterprise.ASPNetHelper问题
在web.config中,如下代码段 <compilation debug="true" targetFramework="4.0" assemblyPo ...
- Python Ethical Hacking - Packet Sniffer(2)
Capturing passwords from any computer connected to the same network. ARP_SPOOF + PACKET_SNIFFER Ta ...
- 2019CSP-J T4 加工零件
题目描述 凯凯的工厂正在有条不紊地生产一种神奇的零件,神奇的零件的生产过程自然也很神奇.工厂里有 n 位工人,工人们从 1 ∼n 编号.某些工人之间存在双向的零件传送带.保证每两名工人之间最多只存在一 ...