简述:昨天学校举办了第十二届蓝桥杯校内模拟赛,本人有幸拿到了第十一名(接上篇文章!

本文初发于 “曾晨de小站” zengchen233.cn,同步转载于此。

题目描述

小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。 请问,在 1 到 n 中,所有这样的数的和是多少?

输入格式

输入一行包含一个整数 n。

输出格式

输出一行,包含一个整数,表示满足条件的数的和。 测试数据:

输入:40 输出:574

#include <cstdio>
#include <cmath>
#include <iostream>
using namespace std;
int search(int n){
	int a;
	while(n){
		a = n % 10;
        if(a == 0 || a == 1 || a == 2 || a == 9)
        return 1;
        n /= 10;
	}
	return 0;
}

int main(){
    int n;
    cin >> n;
    long long ans;
    for(int i = 1; i <= n; i++){
    	if(search(i) == 1) ans += i;
    }
    cout << ans;
    return 0;
}

题目描述

平面上有条直线,其中第条直线是。请计算这些直线将平面分成了几个部分。

输入格式

第一行包含一个整数。 以下N行,每行包含两个整数。

输出格式

一个整数代表答案。 样例输入/输出:

3 6
1 1
2 2
3 3

这个题目我的水平做不出来呀🤦‍♀️

第八题:

题目描述

给定三个整数数组

A = [A1, A2, ... AN],
B = [B1, B2, ... BN],
C = [C1, C2, ... CN],

请你统计有多少个三元组(i, j, k) 满足:

1 <= i, j, k <= N
Ai < Bj < Ck

输入格式

第一行包含一个整数N。 第二行包含N个整数A1, A2, … AN。 第三行包含N个整数B1, B2, … BN。 第四行包含N个整数C1, C2, … CN。

输出格式

一个整数表示答案

样例

样例输入

3
1 1 1
2 2 2
3 3 3

样例输出

27

数据范围与提示

对于30%的数据,1 <= N <= 100 对于60%的数据,1 <= N <= 1000 对于100%的数据,1 <= N <= 100000 0 <= Ai, Bi, Ci <= 100000

这个题目在之前的蓝桥杯训练中做到过,我去复习一下再放上来我的代码!

[checkbox checked=”true/false”]下次更新来更新代码[/checkbox]

第九题

题目描述

四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多4个正整数的平方和。如果把0包括进去,就正好可以表示为4个数的平方和。 对于一个给定的正整数,可能存在多种平方和的表示法。要求你对4个数排序:0 <= a <= b <= c <= d。并对所有的可能表示法按 a,b,c,d 为联合主键升序排列,最后输出第一个表示法

输入格式

一个正整数N (N<5000000)

输出格式

4个非负整数,按从小到大排序,中间用空格分开

样例

样例输入 1

5

样例输出 1

0 0 1 2

样例输入 2

12

样例输出 2

0 2 2 2

样例输入 3

773535

样例输出 3

1 1 267 838
#include <cstdio>
#include <cmath>
#include <iostream>
using namespace std;
int main() {
    int a, b, c, d;
    int n;
    cin >> n;
    int l = sqrt(n);
    for (register int i = 0; i <= l; i++) {
        for (register int j = i; j <= l; j++) {
            for (register int k = j; k <= l; k++) {
                for (register int m = k; m <= l; m++) {
                    if (n == i * i + j * j + k * k + m * m) {
                        a = i;
                        b = j;
                        c = k;
                        d = m;
                        cout << a << " " << b << " " << c << " " << d;
                        return 0;
                    }
                }
            }
        }
    }
}

第十题:

题目描述

肖飞老师在编程之余,酷爱哲学。树林有助于肖老师对哲学的思考,但它们像迷宫一样密密麻麻地栽种着。肖老师的步道是在一条有许多树林的方形区域的小路,由于肖老师思考得极其投入,以致于在树林中散步时经常迷失了方向。 但幸运的是,虽然肖老师每次前往的树林不一样,但树林的步道结构都是相似的:按同样的规则在的正方形土地上设计和构建。设计路径的规则是:当时,每走一米后右转90°,当时,行走路线由前一种行走路线的不同形式组成。下图显示了肖老师的三次行走路线,分别是的情况。对于的情况,肖老师的行走路线由四个结构组成,左下和右下的结构分别是上一个行走路线顺时针和逆时针旋转90°得到,左上和右上的结构则与上一个行走路线相同,然后将这四个结构连接起来,就构成了肖老师的行走路线。这种行走的规则是由数学哲学家David Hilbert设计的,由此产生的路径通常被称为希尔伯特曲线。他曾经讲过一种空间填充方法,用这种曲线来填充满一个平面正方形,肖老师的行走路线都是按照这种方法设计的。   由于树林所处的环境因素,计算机学院的ACM团队将使用热气球营救在树林里迷路的肖老师。肖老师每次在树林里思考问题时,都会记下自己走了多少步,ACM团队也知道肖老师所在树林的边长。因为位置偏僻,定位系统无法使用,所以ACM团队必须确定肖老师所在的位置,即坐标。假设肖老师的步道位于平面直角坐标系,左下角块的坐标为。肖老师的入口总是在,出口总是在,为正方形的边长。同时,假设肖老师在入口处已经走了一米的道路,他只会向前走,不会后退。例如,在b图中,肖老师走了10步,因此他的坐标为 你的任务是写一个程序来帮助ACM团队,根据肖老师走了几米的路和他所在的树林的边长,使用你写的程序来报告肖老师目前所在的目标。快点!肖飞老师急需你的帮助。

输入格式

仅一行,输入两个整数和,并用空格分隔。表示肖老师所在树林的边长,表示肖老师所走的距离是多少米。数据范围分别是是,,。

输出格式

仅一行,输出肖老师所在的坐标和,以空格分隔。

样例

样例输入 1

4 13

样例输出 1

4 2

样例输入 2

8 19

样例输出 2

2 6

这个题做不出来!😢

好啦,本次更新就到这里啦!