当前位置: 首页 > news >正文

江苏省省建设厅网站免费制作网站服务器

江苏省省建设厅网站,免费制作网站服务器,在线做ppt的网站有哪些问题,免费建手机个人网站Part -1:遗憾总结 这一题作为 CSP-J 第三题还有有点实力的。 当时在考场只剩一点时间 我看见 2 2 2 页 pdf 直接愣住了,题都懒得读了直接特殊性质 AB 10pts,现在想来那是九分甚至十分的后悔啊…应该再好好想想。不然能骗60pts Part 1: 整…

Part -1:遗憾总结



这一题作为 CSP-J 第三题还有有点实力的。

当时在考场只剩一点时间 + 我看见 2 2 2 页 pdf 直接愣住了,题都懒得读了直接特殊性质 A+B 10pts,现在想来那是九分甚至十分的后悔啊…应该再好好想想。不然能骗60pts

Part 1: 整数分数



标注一下: x : a x:a xa y : b y:b yb z : Δ z:{\sqrt {\Delta}} zΔ

思路:

首先,我们把这些都视为分数进行读入。

其次呢,当 x < 0 x < 0 x<0 的时候,那么这个式子肯定等于负数,但是分数你又不能把负号放在分母上(读样例得知),那就放在分子上,同时 x x x 也要变成正数所以 y = − y y=-y y=y x = − x x=-x x=x

然后就开始操作:

拿两个变量去记录分子分母,由于求的是最大值,所以只考虑加法。

再去拿一个变量去记录分子分母的最大公因数,由于可能是负数,所以要加上 abs。

最后进行约分,再判断分母是否为 1 1 1,如果是,就按整数输出,否则按照分数输出。

这一部分的代码:

inline void print1(int x,int y,int z){if(x<0)x=-x,y=-y;int fz=-y+z,fm=2*x;int gcd=abs(__gcd(fz,fm));fz/=gcd,fm/=gcd;if(fm==1)cout<<fz;else cout<<fz<<'/'<<fm;
}

Part 2:根号



考虑完了整数分数,我们就来考虑一下根号的情况。

标注一下变量初始值: d t : Δ dt:\Delta dt:Δ k : Δ k:\sqrt \Delta k:Δ

思路:

首先,前面有一个分数的部分,只要 b ≠ 0 b \ne 0 b=0 就去执行这一部分。由于只有这一部分, Δ \sqrt{\Delta} Δ 传入 0 0 0 即可。分数部分就解决完了。

随后,我们读题,不难发现,他的根号表达方式是写成了一种对于我这种小学生来说比较新颖的方式。

举个例子: 45 \sqrt {45} 45 在样例上写作的是 3 ⋅ 5 3\cdot \sqrt{5} 35

因为 45 45 45 可以拆分成 3 2 × 5 3^2\times5 32×5 3 2 = ± 3 \sqrt{3^2} = \pm3 32 =±3,可以直接拿出来,由于取最大值,所以选择 + 3 +3 +3

这个我们要如何去获取呢?其实也很简单:我们把 Δ \Delta Δ 开方,得到一个近似值,一直往下寻找,直到发现 Δ % i 2 = 0 \Delta ~\% ~i^2 =0 Δ % i2=0 由于是从上往下寻找,所以不用担心有剩余这个问题。将 Δ ÷ i 2 \Delta \div i^2 Δ÷i2 的值存进 t t t 里待会输出的时候用。

输出的时候,我们效仿整数分数那一段,当 a < 0 a<0 a<0 的时候,由于前面已经处理了 − b ÷ 2 a -b \div 2a b÷2a,就只需要把 a a a 变成 − a -a a 就可以了。然后第三、四行我不解释,前面讲过了。主要是第二行。后面的 r r r 在输出时弄就行了,这里不需要进行处理(无理数)。分子 k k k 现在变成了 Δ ÷ r \Delta \div r Δ÷r,也就是 i 2 i^2 i2,在这里作为分子看看能不能约分。分母这个就不用解释了。

在后面的正式输出,如果:

  1. k ′ k^{'} k、分母都等于一:那么式子就只有 r \sqrt{r} r

  2. 分母等于一的时候,式子就只有 k ′ ⋅ r k^{'} \cdot \sqrt r kr

  3. k ′ k^{'} k 等于一的时候,式子剩下 r 2 a \frac{\sqrt r }{2a} 2ar

  4. 这些情况都不满足的时候,式子就是 k ′ ⋅ r 2 a \frac{k^{'} \cdot \sqrt r}{2a} 2akr

  • 注: k ′ k^{'} k k k k 约分后的结果

上面这些都是输出格式,照着这样输出就行了。

这一部分的代码:

inline void init1(int a,int k,int r){if(a<0)a=-a;int fz=k,fm=2*a;int gcd=abs(__gcd(fz,fm));fz/=gcd,fm/=gcd;if(fm==1&&fz==1){cout<<"sqrt("<<r<<")";}else if(fm==1){cout<<fz<<"*sqrt("<<r<<")";}else if(fz==1){cout<<"sqrt("<<r<<")/"<<fm;}else{cout<<fz<<"*sqrt("<<r<<")/"<<fm;}
}
inline void print2(int a,int b,int dt,int k){// (-b + sqrt(dt)) / 2aif(b!=0)print1(a,b,0),cout<<'+';while(dt%(k*k))--k;int r=dt/(k*k);init1(a,k,r);
}

Part 3:结合



最后组合一下,写一下主函数,记得 Δ < 0 \Delta < 0 Δ<0 的时候要输出 NO,最终代码就出来啦。

#include<bits/stdc++.h>
#define int long long
using namespace std;
int t;
int* eat = new int;
inline void print1(int x,int y,int z){if(x<0)x=-x,y=-y;//把负号传到分子部分int fz=-y+z,fm=2*x;//计算分子分母int gcd=abs(__gcd(fz,fm));//最大公因数fz/=gcd,fm/=gcd;//约分if(fm==1)cout<<fz;//整数else cout<<fz<<'/'<<fm;//分数
}
inline void init1(int a,int k,int r){if(a<0)a=-a;//把负号传到分子部分int fz=k,fm=2*a;//计算分子分母int gcd=abs(__gcd(fz,fm));//最大公因数fz/=gcd,fm/=gcd;//约分if(fm==1&&fz==1){//上面说的四种情况cout<<"sqrt("<<r<<")";}else if(fm==1){cout<<fz<<"*sqrt("<<r<<")";}else if(fz==1){cout<<"sqrt("<<r<<")/"<<fm;}else{cout<<fz<<"*sqrt("<<r<<")/"<<fm;}
}
inline void print2(int a,int b,int dt,int k){// -b + sqrt(dt) / 2aif(b!=0)print1(a,b,0),cout<<'+';//前面分数的部分while(dt%(k*k))--k;//上面说的“一种新颖的输出方式”int r=dt/(k*k);init1(a,k,r);
}
signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); //freopen(".in","r",stdin);//freopen(".out","w",stdout);cin>>t>>*eat;//我个人认为第二个没有用,就直接把它吃掉了delete eat;while(t--){int a,b,c;cin>>a>>b>>c;int delta=b*b-4*a*c;//计算出 Deltaint k=sqrt(delta);//这里会自动向下取整if(delta < 0){//如果Delta小于0,则无实数解cout<<"NO";}else if(k*k == delta){//整数分数print1(a,b,k);}else{//根号print2(a,b,delta,k);}cout<<'\n';//记得换行} 
}

看我写了这么多,给个赞不过分吧?

http://www.dtcms.com/a/482124.html

相关文章:

  • 前端碎碎念笔记:JavaScript 对象的继承与多态
  • 【Xcode】Macos p12 证书过期时间查看
  • 【AI视频】从单模型,到AI Agent工作流
  • C#知识学习-017(修饰符_6)
  • 视频营销网站网站前端设计与制作ppt
  • 基于单片机直流电机PWM调速闭环控制系统Proteus仿真(含全部资料)
  • WHAT - 前端性能指标(加载性能指标)
  • 网站外包要注意什么wordpress 布局编辑器
  • 人工智能课程:课程目录介绍 总纲
  • 1、机器学习与深度学习
  • 深入解析 kube-proxy:Kubernetes 服务发现的网络基石
  • Bestseller验厂核心解读
  • 1. cuda配置代码提示
  • Docker 构建教程:学习上下文、架构和性能优化技术
  • mysql数据库高级特性(一)
  • 做网站读什么专业个人网站备案内容不合格
  • 如何实现一个线程安全的容器:从同步机制到异常安全的设计实践
  • 网站建设与运营课程建筑行业官网
  • 基于开源AI智能名片链动2+1模式S2B2C商城小程序的互联网运营体系化研究
  • 线上教学小程序:构建高效互动的云端学习空间
  • JAVA校园跑腿校园外卖源码校园外卖小程序校园代买帮忙外卖源码社区外卖源码小程序+公众号+h5
  • 神经网络之链式法则的推导
  • 打印室预约系统|基于java和小程序的打印室预约系统设计与实现(源码+数据库+文档)
  • 东莞市网站建设制作设计平台wordpress顶部导航栏怎么创建
  • 理解 Git 命令 `git reset --hard origin/pre`:版本回退的“利刃”与使用禁忌
  • Git 10 ,使用 SSH 提升 Git 操作速度的实践指南( Git 拉取推送响应慢 )
  • 【C++】使用MSBuild命令行编译ACE、TAO、DDS
  • 郑州市建设投资集团公司网站网站开发私活
  • ⽹络原理-HTTP/HTTPS
  • 58同城哈尔滨网站建设宁波网络公司网站建s