标签:Good cin int Nastia Codeforces long 特判 include LL
一、写在前面
昨天虽然没有很长的时间打比赛,只打了一个小时就去睡了。但是昨天的A题是自己做构造题的第一个突破,是自己第一次在赛场上用分析和一些解题技巧(如手动模拟样例),有条不紊地解决的一道题。
二、算法分析
首先想到将$x+y=z$写成$Ai+Aj=ABk$,这样可以约掉A.变成$i+j=Bk$,然后令$i=1,j=B-1,k=B$即可。
接着构造数据考虑特殊情况,要求x和y不能是AB的倍数,则需要考虑对于以上的构造方式,什么情况下x和y是AB的倍数,结果只有B=1的情况下成立,则特判B=1的情况即可。
同理,对于题目中要求x,y,z三个数不同的条件,特判B=2的情况即可。
三、代码
1 #include<iostream> 2 #include<cstring> 3 #include<algorithm> 4 #include<cstdio> 5 #define LL long long 6 using namespace std; 7 LL a,b; 8 int main(){ 9 10 int T; 11 cin>>T; 12 while(T--){ 13 cin>>a>>b; 14 if(b==1) cout<<"NO"<<endl; 15 else if(b==2){ 16 cout<<"YES"<<endl; 17 cout<<a*3<<' '<<a<<' '<<a*4<<endl; 18 } 19 else{ 20 cout<<"YES"<<endl; 21 cout<<a<<' '<<a*(b-1)<<' '<<a*b<<endl; 22 } 23 } 24 25 26 27 return 0; 28 29 }
标签:Good,cin,int,Nastia,Codeforces,long,特判,include,LL 来源: https://www.cnblogs.com/talk-sea/p/14745430.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。