第十三届蓝桥杯模拟赛编程题

🐏第十三届蓝桥杯模拟赛🐏

🐏编程题🐏

🐏第六题🐏

在这里插入图片描述
作为编程题的第一题还是比较简单的。

#include<bits/stdc++.h>

using namespace std;

int main()
{
	double i , j ;
	cin >> i >> j;
	cout << ceil(j/i) ;//ceil向上取整
}

🐏第七题🐏

在这里插入图片描述
输入按照字符串输入,如果是,就去掉。

#include<bits/stdc++.h>

using namespace std;

string s;

int main()
{
	
	cin >> s;
	while(s.find(',') != string::npos)
	{
		int pos = s.find(',');
		s.erase(pos, 1);
	}
	cout << s; 
}

//#include<bits/stdc++.h>

//using namespace std;
//
//int main()
//{
//    string s;
//    cin >> s;
//    for(int i = 0;i < s.size();i++)
//        if(s[i] != ',') cout << s[i];
//    return 0;
//}

🐏第八题🐏

在这里插入图片描述
暴力搜索。

#include<bits/stdc++.h>

using namespace std;

const int N = 100; 

string s[N],t[N];

int n,m,r,c;

bool flag(int a,int b)
{
    for(int i = 0;i < r;i++)
        for(int j = 0;j < c;j++)
            if(t[i][j] == '1' && s[a + i][b + j] != '1')   return false;
    return true;
}

int main()
{
    cin >> n >> m;
    for(int i = 0;i < n;i++)    cin >> s[i];
    cin >> r >> c;
    for(int i = 0;i < r;i++)    cin >> t[i];
    for(int a = 0;a <= n - r;a++)
        for(int b = 0;b <= m - c;b++)
            if(flag(a,b))
            {
                cout << a + 1 << " " << b + 1 << endl;
                return 0;
            }
    cout << "NO" << endl;
    return 0;
}

🐏第九题🐏

在这里插入图片描述
关于公约数可以参考小🐏之前写过的文章

#include<bits/stdc++.h>

using namespace std;
typedef long long ll;

set<ll> S;

ll gcd(ll a,ll b)
{
    return b ? gcd(b,a % b) : a;
}

void solve(ll a,ll b)
{
    ll d = gcd(a,b);
    for (int i = 1; i <= d / i; i++)
    {
        if(d % i == 0)
        {
            S.insert(i);
            if(i != d / i)  S.insert(d / i);  
        }
    }
}

int main()
{
    ll a,b,c;
    cin >> a >> b >> c;
    solve(a,b);
    solve(b,c);
    solve(a,c);
    cout << S.size() << endl;
    return 0;
}

🐏第十题🐏

在这里插入图片描述

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

const int N = 100;
int d[4][N],p[N];//d[][]记录每个柱子上的数字;p[]记录每个数字在哪个柱子上

ll f(int n,int k)
{
    if(n == 0)  return 0;//没有盘子了,返回0
    if(p[n] == k)   return f(n - 1,k);
    return f(n - 1,6 - k - p[n]) + (1ll << (n - 1));
}

int main()
{
    int a,b,c;
    cin >> a >> b >> c;
    int n = a + b + c;
    for(int i = 1;i <= a;i++)
    {
        cin >> d[1][i];
        p[d[1][i]] = 1;
    }
    for(int i = 1;i <= b;i++)
    {
        cin >> d[2][i];
        p[d[2][i]] = 2;
    }
    for(int i = 1;i <= c;i++)
    {
        cin >> d[3][i];
        p[d[3][i]] = 3;
    }
    cout << f(n,3) << endl;//将n个盘子放到第3个柱子上
    return 0;
}

🐏写到最后🐏

最后看到这了,如果觉得自己有收获的话,可以给博主点个关注哦
觉得本篇文章不错的话记得收藏⭐,点赞👍,还有问题也可以评论留言💬
你的支持将是我继续创作的最大动力❤️❤️❤️
由于作者水平有限,如有错误和不准确之处在所难免,本人也很想知道这些错误,恳望读者批评指正!

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小羊努力变强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值