2022蓝桥杯省赛b组补题[九进制转十进制],[顺子日期],[刷题统计],[ 修剪灌木]

九进制转十进制

 九进制转十进制 - 蓝桥云课 (lanqiao.cn)

 

 代码:

#include <iostream>
using namespace std;
int main()
{
  cout<<1*2+9*2+81*0+729*2<<endl;
  return 0;
}

 答案为:1478

顺子日期

 顺子日期 - 蓝桥云课 (lanqiao.cn)

 

 这题与其想代码找顺子,不如自己枚举一下日期来得快。

以下为暴力思路:

2022 01 01    ——   2022 12 31
顺子可以是012、123。

但是不可以是234及以后
原因:2022 34 xx 没有34月,2022 23 4x没有23月,2022 x2 34没有34号
其他234以后的顺子也是一样枚举。

 由此来先来枚举一下012:

2022 01 2x,此时我们可以知道x可以取0、1、2、3、4、5、6、7、8、9(10种)

2022 x0 12,此时我们可以知道x只能取1(1种)

再来枚举一下123:

2022 12 3x,此时我们可以知道x可以取0、1(2种)

2022 x1 23,此时我们可以知道x可以取0、1(2种)

 答案:10+1+2+2=15(×)

仔细点发现2022 01 23和2022 01 23是一个日期,所以答案要减去1。

答案为14

刷题统计

 刷题统计 - 蓝桥云课 (lanqiao.cn)

 本题注意一下,由于n的数据范围很大,直接写while循环会超时,所以得先计算一下需要几周,在计算还需要几天。

代码如下: 

#include <iostream>
using namespace std;
typedef long long ll;
ll a,b,n,add,day;
int main()
{
    cin>>a>>b>>n;
    int tem=5*a+2*b;
    ll week=n/tem;
    ll last=n%tem;
    day+=week*7;
    int x=1;
    while(last>0)
    {
        if(x%7==6||x%7==0)
            last-=b;
        else
            last-=a;
        day++;
        x++;
    }
    cout<<day<<endl;
    return 0;
}

 修剪灌木

修剪灌木 - 蓝桥云课 (lanqiao.cn)

 这题浅浅的模拟一下就找到规律了。

由于爱丽丝要么向左修剪,要么向右修剪。

怎么算当前这颗的最高值呢?就是计算再次回到这颗用的天数,就是长到最高的值。

 当n=3时:

 所以先向右再向左时长高:(n-i)*2;

先向左再向右时长高:(i-1)*2;

代码:

#include <iostream>
using namespace std;
int main()
{
  int n;
  cin>>n;
  for(int i=1;i<=n;i++)
  {
    cout<<max(i-1,n-i)*2<<endl;
  }
  return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值