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

九进制转十进制

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

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

 代码:

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

 答案为:1478

顺子日期

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

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

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

以下为暴力思路:

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)

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

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

代码如下: 

#include 
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<

 修剪灌木

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

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

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

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

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

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

 当n=3时:

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

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

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

代码:

#include 
using namespace std;
int main()
{
  int n;
  cin>>n;
  for(int i=1;i<=n;i++)
  {
    cout<

你可能感兴趣的:(蓝桥杯)