蓝桥杯倒数七天冲刺国一之每日复习第四天

简介: 我是泡泡,因为是复习之前做过的,所以题解一带而过了,大家坚持!

一、方格分割


题目链接:方格分割 - 蓝桥云课 (lanqiao.cn)


题目要求:


6x6的方格,沿着格子的边线剪开成两部分。 要求这两部分的形状完全相同。


解题思路:


dfs深搜加记忆化搜索,然后结果除4就行。


#include<bits/stdc++.h>
using namespace std;
int dx[] = {1,0,0,-1};
int dy[] = {0,1,-1,0};
bool vis[10][10];
int res;
void dfs(int x,int y)
{
  if(x==0||y==0||x==6||y==6)
  {
    res++;
    return ;
  }
  for(int i=0;i<4;i++)
  {
    x += dx[i];
    y += dy[i];
    if(!vis[x][y])
    {
      vis[x][y] = true;
      vis[6-x][6-y] = true;
      dfs(x,y);
      vis[x][y] = false;
      vis[6-x][6-y] = false;
    }
    x -= dx[i];
    y -= dy[i];
  } 
}
int main()
{
  vis[3][3] = true;
  dfs(3,3);
  cout<<res/4;
  return 0;
}


二、数的幂次


题目链接:数的幂次 - 蓝桥云课 (lanqiao.cn)


题目要求:


给定三个正整数 N,M,P,求 N^Mmod p。


解题思路:


快速幂


#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll pow_mod(ll x , ll n , ll mod)
{
    ll res = 1;
    while(n)
    {
        if(n & 1) res = res * x % mod;
        x = x * x % mod;
        n >>= 1;
    }
    return res;
}
int main()
{
    int T = 1;
    cin >> T;
    while(T --)
    {
        ll n , m , p;
        cin >> n >> m >> p;
        cout << pow_mod(n , m , p) << '\n';
    }
    return 0;
}


三、取球游戏


题目链接:取球游戏 - 蓝桥云课 (lanqiao.cn)


题目要求:


今盒子里有 n 个小球,A、B 两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个,并且两人都很聪明,不会做出错误的判断。


我们约定:


每个人从盒子中取出的球的数目必须是:1,3,7 或者 8 个。轮到某一方取球时不能弃权!A 先取球,然后双方交替取球,直到取完。被迫拿到最后一个球的一方为负方(输方)


请编程确定出在双方都不判断失误的情况下,对于特定的初始球数,A 是否能赢?


解题思路:


简单博弈论,有规律的 是1357a必输 反着来让1357加i 把i设置一个很高的值 如果当前i为0 就把当前的i+1357设置为1。


#include<bits/stdc++.h>
using namespace std;
int a[101],b[10001];
int main()
{
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }
    for(int i=1;i<10001;i++)
    {
        if(b[i]==0)
        {
            b[i+1]=1;
            b[i+3]=1;
            b[i+7]=1;
            b[i+8]=1;
        }
    }
    for(int i=0;i<n;i++)
    {
        cout<<b[a[i]]<<endl;
    }
    return 0;
}


四、错误票据


题目链接:错误票据 - 蓝桥云课 (lanqiao.cn)


题目要求:


某涉密单位下发了某种票据,并要在年终全部收回。


每张票据有唯一的 ID 号。全年所有票据的 ID 号是连续的,但 ID 的开始数码是随机选定的。


因为工作人员疏忽,在录入 ID 号的时候发生了一处错误,造成了某个 ID 断号,另外一个 ID 重号。


你的任务是通过编程,找出断号的 ID 和重号的 ID 。


假设断号不可能发生在最大和最小号。


解题思路:


直接暴力就ok


#include<bits/stdc++.h>
using namespace std;
const int N = 1e4+10;
int a[N];
int main()
{
    int n;
    cin >> n;
    int cnt = 0;
    while(scanf("%d",&a[cnt++]) != EOF);
    sort(a, a+cnt);
    int ans1, ans2;
    for(int i = 1; i < cnt; i++)
    {
        if(a[i] - a[i-1] > 1)
        {
          ans1 = a[i-1] + 1;
        } 
        if(a[i] == a[i-1])
        {
          ans2 = a[i];
        }
    }
    cout << ans1 << ' ' << ans2;
    return 0;
}



目录
相关文章
|
存储
【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-填空题
【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-填空题
111 1
|
测试技术
【蓝桥杯冲刺】蓝桥杯13届省赛C++b组真题-A~E题
【蓝桥杯冲刺】蓝桥杯13届省赛C++b组真题-A~E题
147 0
|
人工智能 测试技术 BI
【蓝桥杯冲刺】蓝桥杯11届省赛C++b组真题-编程题
【蓝桥杯冲刺】蓝桥杯11届省赛C++b组真题-编程题
117 0
【蓝桥杯冲刺】日期类专题特训
【蓝桥杯冲刺】日期类专题特训
47 0
|
人工智能 测试技术
【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-编程题
【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-编程题
113 0
|
8月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-992 士兵杀敌(二)
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-992 士兵杀敌(二)
91 1
|
8月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
116 0
|
8月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
88 0
|
8月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
93 0
|
8月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-997 粘木棍
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-997 粘木棍
98 0

相关实验场景

更多