蓝桥杯真题31日冲刺国一 | 每日题解报告 第二十八天

简介: 大家好,我是泡泡,距离蓝桥杯还有五天,大家一定要坚持下去

一、36进制


题目链接:36进制 - 蓝桥云课 (lanqiao.cn)


题目要求:


对于 16 进制,我们使用字母 A−F 来表示 10 及以上的数字。


如法炮制,一直用到字母 Z,就可以表示 36 进制。


36 进制中,A 表示 10,Z 表示 35,AA 表示370。


你能算出 MANY 表示的数字用 10 进制表示是多少吗?


解题思路:


直接相减*起来就好。


#include<bits/stdc++.h>
using namespace std; 
int main()
{
  int a = 'Y'-'A'+10;
  int b = 'N'-'A'+10;
  int c = 10;
  int d = 'M'-'A'+10;
  b*=36;
  c=c*36*36;
  d=d*36*36*36;
  int sum=a+b+c+d;
  cout<<sum;
  return 0;
}


二、交换瓶子


题目链接:交换瓶子 - 蓝桥云课 (lanqiao.cn)


题目要求:


有 N 个瓶子,编号 1 ~ N,放在架子上。


比如有 5 个瓶子:


2 1 3 5 4


要求每次拿起 2 个瓶子,交换它们的位置。


经过若干次后,使得瓶子的序号为:


1 2 3 4 5


对于这么简单的情况,显然,至少需要交换 2 次就可以复位。


如果瓶子更多呢?你可以通过编程来解决。


解题思路:


遇到编号和数字不符合的就交换位置 记录次数


#include<bits/stdc++.h> 
using namespace std;
int a[10005],ans,n;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
      cin>>a[i];
  }
    for(int i=1;i<=n;i++)
  {
        while(a[i]!=i)
    {
            swap(a[i],a[a[i]]);
            ans++;
        }
    }
    cout<<ans;
    return 0;
}


三、路径之谜


题目链接:路径之谜 - 蓝桥云课 (lanqiao.cn)


题目要求:


小明冒充 X 星球的骑士,进入了一个奇怪的城堡。


城堡里边什么都没有,只有方形石头铺成的地面。


假设城堡地面是 n×n 个方格。如下图所示。


41.png


按习俗,骑士要从西北角走到东南角。可以横向或纵向移动,但不能斜着走,也不能跳跃。每走到一个新方格,就要向正北方和正西方各射一箭。(城堡的西墙和北墙内各有 n 个靶子)同一个方格只允许经过一次。但不必走完所有的方格。如果只给出靶子上箭的数目,你能推断出骑士的行走路线吗?有时是可以的,比如上图中的例子。


本题的要求就是已知箭靶数字,求骑士的行走路径(测试数据保证路径唯一)


解题思路:


dsf,要注意的问题是要记录当前走过的步数,要看看步数是否和横或纵坐标的和值相同。走的路径也可能到终点时也消耗不了箭的数量,所以要注意走的步数要和sum值相同。


#include<bits/stdc++.h>
using namespace std;
const int N = 21;
int dx[]= {-1,1,0,0};
int dy[]= {0,0,-1,1};
int n;
int top[N],lft[N];
int ans[N];
int sum;
bool vis[N][N];
int pre[N][N];
bool pd(int x,int y)
{
  if(!vis[x][y]&&x>=0&&x<n&&y>=0&&y<n&&top[y]>0&&lft[x]>0)
  {
    return true;
  }
  return false;
}
void dfs(int x,int y,int s)
{
    ans[s]=x*n+y;
    if(x==n-1&&y==n-1&&s==sum)
    {
        for(int i=1;i<=s;i++)
        {
            cout<<ans[i]<<" ";
        }
        cout<<endl;
        return ;
    }
    for(int i=0;i<4;i++)
    {
        int nx=x+dx[i];
        int ny=y+dy[i];
        if(pd(nx,ny))
        {
            vis[nx][ny]=1;
            top[ny]--;
            lft[nx]--;
            dfs(nx,ny,s+1);
            vis[nx][ny]=0;
            top[ny]++;
            lft[nx]++;
        }
    }
}
int main()
{
    cin>>n;
    for(int i=0;i<n;i++)
    {
      cin>>top[i];
      sum += top[i];
  }
  for(int i=0;i<n;i++)
  {
    cin>>lft[i];
  }
    vis[0][0]=1;
    dfs(0,0,1);
    return 0;
}



目录
相关文章
|
11月前
|
测试技术
【蓝桥杯冲刺】蓝桥杯13届省赛C++b组真题-A~E题
【蓝桥杯冲刺】蓝桥杯13届省赛C++b组真题-A~E题
123 0
|
11月前
|
存储
【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-填空题
【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-填空题
75 1
|
11月前
|
人工智能 测试技术 BI
【蓝桥杯冲刺】蓝桥杯11届省赛C++b组真题-编程题
【蓝桥杯冲刺】蓝桥杯11届省赛C++b组真题-编程题
82 0
|
11月前
【蓝桥杯冲刺】蓝桥杯11届省赛C++b组真题-填空题
【蓝桥杯冲刺】蓝桥杯11届省赛C++b组真题-填空题
105 0
|
11月前
【蓝桥杯冲刺】日期类专题特训
【蓝桥杯冲刺】日期类专题特训
33 0
|
11月前
|
人工智能 测试技术
【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-编程题
【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-编程题
69 0
|
12月前
|
机器学习/深度学习 存储 测试技术
蓝桥杯冲刺-倒数第八天-省赛题
蓝桥杯冲刺-倒数第八天-省赛题
95 0
|
机器学习/深度学习 Python
【蓝桥杯真题】16天冲刺 Python
【蓝桥杯真题】16天冲刺 Python
191 0
【蓝桥杯真题】16天冲刺 Python
|
算法 Python 容器
【蓝桥杯真题】18天Python组冲刺 心得总结
【蓝桥杯真题】18天Python组冲刺 心得总结
137 0
【蓝桥杯真题】18天Python组冲刺 心得总结
蓝桥杯倒数七天冲刺国一之每日复习第六天
大家好,我是泡泡,今天是复习第六天!今天有事,稍微水一下
83 0