五指山nefu84

description

西游记中孙吾空大闹天宫,如来佛祖前来降伏他,说道:“我与你打个赌赛;你若有本事,一筋斗打出我这右手掌中,算你赢,再不用动刀兵苦争战,就请玉帝到西方居住,把天宫让你;若不能打出手掌,你还下界为妖,再修几劫,却来争吵。”
那大圣闻言,暗笑道:“这如来十分好呆!我老孙一筋斗去十万八千里。他那手掌,方圆不满一尺,如何跳不出去?”急发声道:“既如此说,你可做得主张?”佛祖道:“做得!做得!”伸开右手,却似个荷叶大小。那大圣收了如意棒,抖擞神威,将身一纵,站在佛祖手心里,却道声:“我出去也!”你看他一路云光,无影无形去了。大圣行时,忽见有五根肉红柱子,撑着一股青气。他道:“此间乃尽头路了。这番回去,如来作证,灵霄殿定是我坐也。”翻转筋斗云,径回本处,站在如来掌:“我已去,今来了。你教玉帝让天宫与我。”
如来骂道:“你正好不曾离了我掌哩!”大圣道:“你是不知。我去到天尽头,见五根肉红柱,撑着一股青气,我留个记在那里,你敢和我同去看么?”如来道:“不消去,你只自低头看看。”那大圣睁圆火眼金睛,低头看时,原来佛祖右手中指写着“齐天大圣,到此一游。”大圣大吃了一惊道:“有这等事!有这等事!我将此字写在撑天柱子上,如何却在他手指上?莫非有个未卜先知的法术?我决不信!不信!等我再去来!”
好大圣,急纵身又要跳出,被佛祖翻掌一扑,把这猴王推出西天门外,将五指化作金、木、水、火、土五座联山,唤名“五行山”,轻轻的把他压住。
    我们假设佛祖的手掌是一个圆圈(所以任凭大圣一个筋斗云十万八千里也是飞不出其手掌心),圆圈的长为n,逆时针记为:0,1,2,…,n-1,而大圣每次飞的距离为d.现在大圣所在的位置记为x,而大圣想去的地方在y。现在要你告诉大圣至少要多少筋斗云才能到达目的地。
							

input

有多组测试数据。
第一行是一个正整数T,表示测试数据的组数。
每组测试数据包括一行,四个非负整数,n(2 < n < 10^9),表示如来手掌圆圈的长度;d(0 < d < n),筋斗所能飞的距离;x(0 <= x < n),大圣的初始位置;y(0 <= y < n),大圣想去的地方。
   注意孙悟空的筋斗云只沿着逆时针方向翻。

							

output

对于每组测试数据,输出一行,给出大圣最少要翻多少个筋斗云才能到达目的地。如果无论翻多少个筋斗云也不能到达,输出“Impossible”.
							

sample_input

2
3 2 0 2
3 2 0 1

							

sample_output

1
2
 
 
 
 
扩展欧几里得,方程为dt-pn=y-x;(pn可以看成是以x为起点和终点的圈数)
画个圆感受一下就可以了
 
代码:
#include <iostream>
#include <cmath>
#include <cstdio>
using namespace std;

__int64 gcd(__int64 a,__int64 b)
{
    if(b==0)
    return a;
    return gcd(b,a%b);
}
__int64 exgcd(__int64 a,__int64 &x,__int64 b,__int64&y)
{
        if(b==0)
    {
        x=1;y=0;
        return a;
    }
        __int64 r=exgcd(b,x,a%b,y);
        __int64 temp=x;
        x=y;
        y=temp-a/b*y;
        return r;
}

int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        __int64 n,d,x,y;
        cin>>n>>d>>x>>y;
        __int64 dis;
        dis=(y-x+n)%n;
        __int64 t0,p0;
        __int64 gc=gcd(d,n);
        if(dis%gc!=0)
        {
            cout<<"Impossible"<<endl;
            continue;
        }
        d=d/gc;
        n=n/gc;
        exgcd(d,t0,n,p0);
        t0=(t0+n)%n;
        __int64 t=(t0*dis/gc+n)%n;
        cout<<t<<endl;

    }
}

### 关于东北林业大学 (NEFU) 数据库及相关项目的资料 #### 1. NEFU 的背景介绍 东北林业大学(Northeast Forestry University, NEFU)作为一所具有鲜明林科特色的高等院校,在信息技术领域也有一定的研究基础和发展方向。该校不仅注重传统林业科学的研究,还积极将现代技术应用于森林资源管理、生态环境保护等领域[^1]。 #### 2. NEFU 数据库相关实验与教学 在 NEFU 的计算机科学与技术学院以及信息管理等相关专业的课程设置中,数据库原理及其应用是一个重要的组成部分。例如,在《数据库系统》课程的教学过程中,学生会通过实际操作 SQL 查询语句来掌握数据检索技巧。具体到实验环节,可能会涉及如下内容: - **查询所有学生都选修的课程名称** 这一需求可以通过转换逻辑表达式实现。由于 SQL 中不存在直接支持全称量词的操作符,因此可以采用否定的方式将其转化为存在量词的形式。即 `(∀x)P(x)` 可以被改写为 `¬(∃x ¬P(x))`。基于此理论,下面提供了一个可能的解决方案: ```sql SELECT cname FROM course c WHERE NOT EXISTS ( SELECT * FROM student s WHERE NOT EXISTS ( SELECT * FROM sc WHERE sc.sid = s.sid AND sc.cid = c.cid ) ); ``` 此处假设表结构定义如下: - 学生表 (`student`):包含字段 `sid`(学号), `sname`(姓名); - 课程表 (`course`):包含字段 `cid`(课程编号),`cname`(课程名); - 成绩表 (`sc`):记录学生的选课情况,关联字段分别为 `sid`, `cid`. 以上代码片段展示了如何利用嵌套子查询完成复杂条件下的筛选任务[^2]。 #### 3. 实际案例分析 —— 林业信息化建设项目 针对 NEFU 特有的学科优势,其参与开发的一些典型项目包括但不限于以下几个方面: - **智慧林业管理系统**:该项目旨在构建一套完整的数字化平台用于监测森林生长状况、病虫害防治效果评估等方面的工作。它依赖强大的后台数据库存储海量地理空间数据,并借助 GIS 技术呈现直观的地图界面供决策者参考。 - **碳汇计量模型优化工具包**:为了响应全球气候变化议题,研究人员设计了一款专门用来估算特定区域内植被吸收二氧化碳能力的应用程序。该软件内部集成了复杂的算法计算过程,同时需要连接外部气象站点获取实时环境参数输入值以便提高预测精度。 这些实例充分体现了 NEFU 将专业知识融入 IT 解决方案的能力水平。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值