暑假训练第二周第一天

题意:
A(CodeForces - 1257B):一个数如果是偶数可以选择乘以3/2,如果大于1可以选择减一同时满足可以选择任意操作。给你两个数a和b,问能否通过操作让a变成b。
题解:
A CodeForces - 1257B
思路:刚看完题目想着是递归判断,冷静了一下,发现a是可以得到所有比a小的数的(一直减一)。试着把a=1,2,3,4列出来,a=1,b=1;a=2,b=1或2或3;a=3;b=1或2或3;a=4,b=1,2,3,4,5,6……(无上限)。这样的的话,比4大的数也都是可以取到任意数。
代码:

#include<bits/stdc++.h>
using namespace std;
int t,x,y;
int main()//x=1 y=1  x=2 y=1|2|3  x=3 y=1|2  x=4 y=1|2|3|5|6...  x=5 y=1|2|3|4..
{
cin>>t;
while(t--){
    cin>>x>>y;
   if((x==1&&y>1)||(x==2&&y>3)||(x==3&&y>3))
   cout<<"NO"<<endl;
        else
        cout<<"YES"<<endl;
}
}

感想:今天的训练算是复习吧,就一个新题。思维题基本看完题目就有思路了,算法题的话还是太弱了,贪心策略的选择还是有问题。回看之前的补题CodeForces 1257D感觉现在理解的差不多了,但其他的题感觉还是差了点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值