牛客练习赛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]内的 ...
随机推荐
- C++中cin>>a原理
int a; vector<int>res; while(cin>>a){ res.push_back(a); } 给出这段代码 可以输入1 2 3 4 5并以回车结束,从而 ...
- List集合-03.Vector
3.Vector 3.1 UML图 3.2 Vector的特点 Object的数组存储元素 默认初始大小为10 public Vector() { this(10); } 线程安全,可以看到所有的数据 ...
- POJ2376贪心
题意:数轴上有 n (1<=n<=25000)个闭区间 [ai, bi],选择尽量少的区间覆盖一条指定线段 [1,t](1<=t<=1,000,000).覆盖整点,即[1,2] ...
- Dynamics CRM Data Encrytion error
Dynamics CRM有两个Database,一个Content DB——xxxx_MSCRM,一个Config DB——MSCRM_CONFIG. 当Content DB从其他环境Restore回 ...
- JVM 专题十八:垃圾回收(二)垃圾回收相关算法
1. 标记阶段 1.1 引用计数算法 1.1.1 对象存活判断 在堆里存放着几乎所有的Java对象实例,在GC执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象.只有被标记为己 ...
- java 数据结构(十):Collection子接口:Set接口
1. 存储的数据特点:无序的.不可重复的元素具体的: 以HashSet为例说明:1. 无序性:不等于随机性.存储的数据在底层数组中并非照数组索引的顺序添加,而是根据数据的哈希值决定的.2. 不可重复性 ...
- 机器学习实战基础(四十一):随机森林 (八)附录 Bagging vs Boosting
- 理解js中的原型,原型对象,原型链
目录 理解原型 理解原型对象 实例属性与原型属性的关系 更简单的原型语法 原型的动态性 原型链 理解原型 我们创建的每一个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象, ...
- Ethical Hacking - Web Penetration Testing(8)
SQL INJECTION WHAT IS SQL? Most websites use a database to store data. Most data stored in it(userna ...
- P4554 小明的游戏 (洛谷) 双端队列BFS
最近没有更新博客,全是因为英语,英语太难了QWQ 洛谷春令营的作业我也不会(我是弱鸡),随机跳了2个题,难度不高,还是讲讲吧,学学新算法也好(可以拿来水博客) 第一题就是这个小明的游戏 小明最近喜欢玩 ...