Vijos P1009 清帝之惑之康熙
来源:互联网 发布:mysql insert日期格式 编辑:程序博客网 时间:2024/04/29 15:28
Vijos P1009 清帝之惑之康熙
题目
背景
康熙是中国历史乃至世界历史中最伟大的帝王之一,清除螯拜,撤除三藩,统一台湾,平定准葛尔叛乱;与此同时,出众的他也被世界各国遣清使臣所折服。康熙是历史上少有的全人,不仅文武兼得,而且在各各方面都有见地,比如说航海、数学、英语、构图、建筑等等。一个最好的例子可以证明:康熙当年演算代数题的草稿纸至今仍然保存完好。
话说康熙掌权之后,每天都抽空做数学题,特别是无聊题。这些天,某某老师开始教他做一些奇怪的题目。在第一节课的时候,老师就问了康熙一个超BT的题目:
描述
话说西汉时期,汉武帝刘彻派遣张骞出使西域,欲同月氏国结交而共驱匈奴。同时,月氏国也欲同大汉结交,也派出使者康破伦出使大汉,可是因为月氏国对于大汉的认知甚少,康破伦同样向西出使大汉。一开始,张骞从大汉出发,康破伦从月氏国出发,两人都在同一纬度线上,张骞所处的经度为x,康破伦所处的经度为y;接下来,两人同时向西走,而且只能向西走,张骞每天走m公里,康破伦每天走n公里,且每天走路的速度不变,也不停下来休息;这样两人就在这一条长为L的纬度线上一直向西走。问:过了多少天之后张骞和康破伦会碰面,并磋商两国结交之事(所谓碰面,是指在经过了完整的若干天之后两人处在同一经度上,也就是说存在一个天数d,使得张骞从x出发走了d\times md×m公里后与康破伦从y出发走了d\times nd×n公里后在同一个位置)。
这下,康熙犯难了,他还是个不大的青年,怎么可能做得出这么难的题目;但是,他又是统领全国的帝皇,怎么能在老师面前丢这么大一个面子。康熙想:不行!一定得把这个题做出来!(然后就有了下面这段记录)
第一天,……
第二天,…………
第三天,………………
第四天,……………………
第五天,…………………………
第六天,………………………………
第七天,……………………………………!!!!!!
啊!第七天,康熙终于打了7个感叹号,得出了一个重要的结论!!!!!那就是——做不出来。(汗),没办法,他只有请教你,他的挚友,帮他解决这一难题。康熙答应你,如果你把这一题做出来了,你将得到御赐赏银一万万mod1两!
为了改变你生活的现状——衣衫褴褛、闻鼠起舞、蟑螂为伴,你下定了决心——我一定得把这题解决!
格式
输入格式
输入只包括一行5个整数x,y,m,n,L
其中0
1 2 3 4 5
样例输出1
4
限制
各个测试点2s
题解
exgcd或者优化过的暴力(优化不来…….),普通暴力最慢的点2.1s+
代码
#include <iostream>#include<cstdlib>using namespace std;long long x0,y0,x,y,m,n,l;long long exgcd(long long a,long long b){ long long t,d; if (b==0) { x0=1; y0=0; return a; } d=exgcd(b,a%b); t=x0; x0=y0; y0=t-a/b*y0; return d;}int main(){ scanf("%d%d%d%d%d",&x,&y,&m,&n,&l); long long t,a,b,c,d,xx,yy; x=x%l,y=y%l; if(x>y) { t=y;y=x;x=t; t=n;n=m;m=t; } a=abs(m-n),b=-l,c; if (m>n) c=y-x; else c=x-y+l; d=exgcd(a, b); if (c%d!=0) printf("Impossible"); else { xx=x0*c/d; yy=abs(b/d); while (xx<0) xx+=yy; while (xx>=yy) xx-=yy; printf("%d",xx); } return 0;}
- vijos P1009 清帝之惑之康熙
- vijos P1009清帝之惑之康熙
- 【扩展欧几里德】Vijos P1009 清帝之惑之康熙
- Vijos P1009 清帝之惑之康熙
- [Vijos1009] 清帝之惑之康熙
- exgcd-清帝之惑之康熙
- Vijos P1012 清帝之惑之雍正
- 【vijos P1010】清帝之惑之乾隆 c++题解
- 【高精度】Vijos P1010 清帝之惑之乾隆
- 【动态规划】Vijos P1011 清帝之惑之顺治
- 【枚举】Vijos P1012 清帝之惑之雍正
- Vijos 1012 清帝之惑之雍正
- Vijos P1011 清帝之惑之顺治
- Vijos P1010 清帝之惑之乾隆
- Vijos P1012 清帝之惑之雍正
- VIJOS-P1011 清帝之惑之顺治 dfs
- vijos之清帝之惑四题
- vijos 1011 清帝之惑之顺治 (记忆化搜索)
- 18_ARM汇编自学笔记程序设计之符号定义&数据定义伪指令
- 学习python网站
- Unity3D实践系列10, Canvas画布的创建和使用
- 重塑世界的区块链技术你必须要懂得
- 【剑指offer】题52:构建乘积数组
- Vijos P1009 清帝之惑之康熙
- 【网络】实现简单的TCP、UDP服务器、TCP多进程/多线程服务器
- maven ali仓库
- 19_ARM汇编自学笔记程序设计之汇编控制
- 安卓使用Mob实现短信验证登录代码 很简单
- 【大数据 BI】传统BI流程
- c++第一节课
- Java入门--运算符
- 学习总结1(c/c++的不同)