2024年 团体程序设计天梯赛个人总结

news2024/12/24 10:18:02

在这里插入图片描述

前言:
这是一个悲伤的故事~

🏆题目传送门

  • ⭐L1一阶题
    • ⭐L1-097 编程解决一切(5分)
    • ⭐L1-098 再进去几个人(5分)
    • ⭐L1-099 帮助色盲(10分)
    • ⭐L1-100 四项全能(10 分)
    • ⭐L1-101 别再来这么多猫娘了!(15 分)
    • ⭐L1-102 兰州牛肉面(15 分)
    • ⭐L1-103 整数的持续性(20 分)
    • ⭐L1-104 九宫格(20 分)
  • ⭐L2二阶题
    • ⭐L2-049 鱼与熊掌(25分)
    • ⭐L2-050 懂蛇语(25分)
    • ⭐L2-051 满树的遍历(25分)
    • ⭐L2-052 吉利矩阵(25分)
  • ⭐写在最后

⭐L1一阶题

⭐L1-097 编程解决一切(5分)

题目描述:

编程解决一切 —— 本题非常简单,就请你直接在屏幕上输出这句话:“Problem? The Solution: Programming.”。

输入格式:

本题没有输入。

输出格式:

在一行中输出 Problem? The Solution: Programming.。

输入样例:

输出样例:

Problem? The Solution: Programming.

解题思路:

没啥好说的,天梯赛经典第一题白送你先让你尝点甜头。

⭐Code::

#include<bits/stdc++.h>
using namespace std;

int main(){
    cout << "Problem? The Solution: Programming.";
}

⭐L1-098 再进去几个人(5分)

题目描述:

在这里插入图片描述
数学家、生物学家和物理学家坐在街头咖啡屋里,看着人们从街对面的一间房子走进走出。他们先看到两个人进去。时光流逝。他们又看到三个人出来。
物理学家:“测量不够准确。”
生物学家:“他们进行了繁殖。”
数学家:“如果现在再进去一个人,那房子就空了。”
下面就请你写个程序,根据进去和出来的人数,帮数学家算出来,再进去几个人,那房子就空了。

输入格式:

输入在一行中给出 2 个不超过 100 的正整数 A 和 B,其中 A 是进去的人数,B 是出来的人数。题目保证 B 比 A 要大。

输出格式:

在一行中输出使得房子变空的、需要再进去的人数。

输入样例:

4 7

输出样例:

3

解题思路:

也是一道白送你的减法题。

⭐Code::

#include<bits/stdc++.h>
using namespace std;

int main(){
    int a,b;
    cin >> a >> b;
    cout << b - a << "\n";
}

⭐L1-099 帮助色盲(10分)

题目描述:

在这里插入图片描述

在古老的红绿灯面前,红绿色盲患者无法分辨当前亮起的灯是红色还是绿色,有些聪明人通过路口的策略是这样的:当红灯或绿灯亮起时,灯的颜色无法判断,但前方两米内有同向行走的人,就跟着前面那人行动,人家走就跟着走,人家停就跟着停;如果当前是黄灯,那么很快就要变成红灯了,于是应该停下来。麻烦的是,当灯的颜色无法判断时,前方两米内没有人……
本题就请你写一个程序,通过产生不同的提示音来帮助红绿色盲患者判断当前交通灯的颜色;但当患者可以自行判断的时候(例如黄灯或者前方两米内有人),就不做多余的打扰。具体要求的功能为:当前交通灯为红灯或绿灯时,检测其前方两米内是否有同向行走的人 —— 如果有,则患者自己可以判断,程序就不做提示;如果没有,则根据灯的颜色给出不同的提示音。黄灯也不需要给出提示。

输入格式:

输入在一行中给出两个数字 A 和 B,其间以空格分隔。其中 A 是当前交通灯的颜色,取值为 0 表示红灯、1 表示绿灯、2 表示黄灯;B 是前方行人的状态,取值为 0 表示前方两米内没有同向行走的人、1 表示有。

输出格式:

根据输入的状态在第一行中输出提示音:dudu 表示前方为绿灯,可以继续前进;biii 表示前方为红灯,应该止步;- 表示不做提示。在第二行输出患者应该执行的动作:move 表示继续前进、stop 表示止步。

输入样例:

0 0

输出样例:

biii
stop

解题思路:

一道吃史题,本来是一道很简单的题目,老是喜欢把题面搞成这种鬼样子,喵的当时赛时的时候写这题的时候一直只有8分,在这题上面浪费了不少时间,导致比赛失利。

⭐Code::

#include<bits/stdc++.h>
using namespace std;

int main(){
    int a,b;
    cin >> a >> b;
    if(a == 2 || b == 1){
        cout << "-\n";
        if(a == 0){
            cout << "stop\n";
        }else if(a == 1){
            cout << "move\n";
        }else{
            cout << "stop\n";
        }
    }else{
        if(a == 0){
            cout << "biii\n";
            cout << "stop\n";
        }else if(a == 1){
            cout << "dudu\n";
            cout << "move\n";
        }
    }
}

⭐L1-100 四项全能(10 分)

题目描述:

在这里插入图片描述

新浪微博上有一个帖子给出了一道题:全班有 50 人,有 30 人会游泳,有 35 人会篮球,有 42 人会唱歌,有 46 人会骑车,至少有( )人四项都会。
发帖人不会做这道题,但是回帖有会做的:每一个才艺是一个技能点,一共是 30 + 35 + 42 + 46 = 153 个技能点,50 个人假设平均分配,每人都会 3 个技能那也只有 150,所以至少有 3 人会四个技能。
本题就请你写个程序来自动解决这类问题:给定全班总人数为 n,其中有 m 项技能,分别有 k 1 、k 2 、……、k m个人会,问至少有多少人 m 项都会。

输入格式:

输入在第一行中给出 2 个正整数:n(4≤n≤1000)和 m(1<m≤n/2),分别对应全班人数和技能总数。随后一行给出 m 个不超过 n 的正整数,其中第 i 个整数对应会第 i 项技能的人数。

输出格式:

输出至少有多少人 m 项都会。

输入样例:

50 4
30 35 42 46

输出样例:

3

解题思路:

赛时的时候也没拿满,一开始8分然后后面改了下9分,还一分是n(班级人数)大于 总技能点的情况没有考虑到。

⭐Code::

#include<bits/stdc++.h>
using namespace std;

int main(){
    int n,m;
    cin >> n >> m;
    int minn = 1e9;
    int ans = 0;
    int sum = 0;
    for(int i = 1;i <= m;i ++){
        int x;
        cin >> x;
        sum += x;
        minn = min(minn,x);
    }
    ans = sum - (n * (sum / n));
    if(sum / m >= n){
        ans = n;
    }
    if(n > sum){
        cout << "0";
    }else{
      cout << min(minn,ans);  
    }
    cout << min(minn,ans); 
}

⭐L1-101 别再来这么多猫娘了!(15 分)

题目描述:

以 GPT 技术为核心的人工智能系统出现后迅速引领了行业的变革,不仅用于大量的语言工作(如邮件编写或文章生成等工作),还被应用在一些较特殊的领域——例如去年就有同学尝试使用 ChatGPT 作弊并被当场逮捕(全校被取消成绩)。相信聪明的你一定不会犯一样的错误!

言归正传,对于 GPT 类的 AI,一个使用方式受到不少年轻用户的欢迎——将 AI 变成猫娘:
在这里插入图片描述
部分公司使用 AI 进行网络营销,网友同样乐于使用“变猫娘”的方式进行反击。注意:图中内容与题目无关,如无法看到图片不影响解题。

当然,由于训练数据里并不区分道德或伦理倾向,因此如果不加审查,AI 会生成大量的、不一定符合社会公序良俗的内容。尽管关于这个问题仍有争论,但至少在比赛中,我们还是期望 AI 能用于对人类更有帮助的方向上,少来一点猫娘。

因此你的工作是实现一个审查内容的代码,用于对 AI 生成的内容的初步审定。更具体地说,你会得到一段由大小写字母、数字、空格及 ASCII 码范围内的标点符号的文字,以及若干个违禁词以及警告阈值,你需要首先检查内容里有多少违禁词,如果少于阈值个,则简单地将违禁词替换为<censored>;如果大于等于阈值个,则直接输出一段警告并输出有几个违禁词。

输入格式:

输入第一行是一个正整数 N (1≤N≤100),表示违禁词的数量。接下来的 N 行,每行一个长度不超过 10 的、只包含大小写字母、数字及 ASCII 码范围内的标点符号的单词,表示应当屏蔽的违禁词。
然后的一行是一个非负整数 k (0≤k≤100),表示违禁词的阈值。
最后是一行不超过 5000 个字符的字符串,表示需要检查的文字。
从左到右处理文本,违禁词则按照输入顺序依次处理;对于有重叠的情况,无论计数还是替换,查找完成后从违禁词末尾继续处理。

输出格式:

如果违禁词数量小于阈值,则输出替换后的文本;否则先输出一行一个数字,表示违禁词的数量,然后输出He Xie Ni Quan Jia!

输入样例:

50 4
30 35 42 46

输出样例:

3

解题思路:

赛时的时候也没拿满,一开始8分然后后面改了下9分,还一分是n(班级人数)大于 总技能点的情况没有考虑到。

⭐Code::

先不写了这题,讨厌字符串~

⭐L1-102 兰州牛肉面(15 分)

题目描述:

在这里插入图片描述
兰州牛肉面是历史悠久的美食,根据牛肉面的宽窄、配料的种类,可以细分为上百个不同的品种。你进到兰州的任何一家牛肉面馆,只说:“来一碗牛肉面!”就好像进到加州的咖啡馆说“来一杯咖啡”一样,会被店主人当成外星人……
本题的任务是,请你写程序帮助一家牛肉面馆的老板统计一下,他们一天卖出各种品种的牛肉面有多少碗,营业额一共有多少。

输入格式:

输入第一行给出一个正整数 N(≤100),为牛肉面的种类数量。这里为了简单起见,我们把不同种类的牛肉面从 1 到 N 编号,以后就用编号代替牛肉面品种的名称。第二行给出 N 个价格,第 i 个价格对应第 i 种牛肉面一碗的单价。这里的价格是 [0.01, 200.00] 区间内的实数,以元为单位,精确到分。
随后是一天内客人买面的记录,每条记录占一行,格式为:

> 品种编号 碗数

其中碗数保证是正整数。当对应的 品种编号0 时,表示输入结束。这个记录不算在内。

输出格式:

首先输出 N 行,第 i 行输出第 i 种牛肉面卖出了多少碗。最后一行输出当天的总营业额,仍然是以元为单位,精确到分。题目保证总营业额不超过 10^6。

输入样例:

5
4.00 8.50 3.20 12.00 14.10
3 5
5 2
1 1
2 3
2 2
1 9
0 0

输出样例:

10
5
5
0
2
126.70

解题思路:

按题意模拟即可。

⭐Code::

#include<bits/stdc++.h>
using namespace std;
int res[110];
double a[110];
int main(){
    int n;
    cin >> n;
    double ans = 0; //最终营业额
    for(int i = 1;i <= n;i ++){
        cin >> a[i];
    }
    int x,y;
    while(cin >> x >> y){
    	if(x == 0){
			break;
		}
        res[x] += y;  //每种牛肉面的数量
        ans += a[x] * y; 
    }
    for(int i = 1;i <= n;i ++){
        cout << res[i] << "\n";
    }
    cout << fixed << setprecision(2) << ans;
}

⭐L1-103 整数的持续性(20 分)

题目描述:

从任一给定的正整数 n 出发,将其每一位数字相乘,记得到的乘积为 n 1。以此类推,令 n i+1
为 n i​的各位数字的乘积,直到最后得到一个个位数 n m,则 m 就称为 n 的持续性。例如 679 的持续性就是 5,因为我们从 679 开始,得到 6×7×9=378,随后得到 3×7×8=168、1×6×8=48、4×8=32,最后得到 3×2=6,一共用了 5 步。
本题就请你编写程序,找出任一给定区间内持续性最长的整数。

输入格式:

输入在一行中给出两个正整数 a 和 b(1≤a≤b≤10 9且 (b−a)<10 3 ),为给定区间的两个端点。

输出格式:

首先在第一行输出区间 [a,b] 内整数最长的持续性。随后在第二行中输出持续性最长的整数。如果这样的整数不唯一,则按照递增序输出,数字间以 1 个空格分隔,行首尾不得有多余空格。

输入样例:

500 700

输出样例:

5
679 688 697

解题思路:

先求出最大的持续性maxn,然后将持续性等于maxn的整数存起来,最后按题意输出。

⭐Code::

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,b;
    cin >> a >> b;
    vector<int> v;
    int maxn = 0;
    for(int i = a;i <= b;i ++){
        int p = i;
        int res = p;
        int k = 1;
        int cnt = 0;
        //判断这个数的持续性
        while(p >= 10){
            cnt ++;
            while(res){
                k *= (res % 10);
                res /= 10;
            }
            p = k;
			res = k;
            k = 1;        
        }
        maxn = max(maxn,cnt);
    }
    for(int i = a;i <= b;i ++){
        int p = i;
        int res = p;
        int k = 1;
        int cnt = 0;
        while(p >= 10){
            cnt ++;
            while(res){
                k *= (res % 10);
                res /= 10;
            }
            p = k;
			res = k;
            k = 1;
        }
        //如果满足就存起来
        if(cnt == maxn){
            v.push_back(i);
        }
    }
    int res = 0;
    //输出最大的持续性
    cout << maxn << "\n";
    //输出所有持续性为maxn的整数
    for(auto x : v){
        res ++;
        if(res != v.size())
            cout << x << " ";
        else
            cout << x;
    }    
}

⭐L1-104 九宫格(20 分)

题目描述:

在这里插入图片描述
九宫格是一款数字游戏,传说起源于河图洛书,现代数学中称之为三阶幻方。游戏规则是:将一个 9×9 的正方形区域划分为 9 个 3×3 的正方形宫位,要求 1 到 9 这九个数字中的每个数字在每一行、每一列、每个宫位中都只能出现一次。
本题并不要求你写程序解决这个问题,只是对每个填好数字的九宫格,判断其是否满足游戏规则的要求。

输入格式:

输入首先在第一行给出一个正整数 n(≤10),随后给出 n 个填好数字的九宫格。每个九宫格分 9 行给出,每行给出 9 个数字,其间以空格分隔。

输出格式:

对每个给定的九宫格,判断其中的数字是否满足游戏规则的要求。满足则在一行中输出 1,否则输出 0。

输入样例:

3
5 1 9 2 8 3 4 6 7
7 2 8 9 6 4 3 5 1
3 4 6 5 7 1 9 2 8
8 9 2 1 4 5 7 3 6
4 7 3 6 2 8 1 9 5
6 5 1 7 3 9 2 8 4
9 3 4 8 1 6 5 7 2
1 6 7 3 5 2 8 4 9
2 8 5 4 9 7 6 1 3
8 2 5 4 9 7 1 3 6
7 9 6 5 1 3 8 2 4
3 4 1 6 8 2 7 9 5
6 8 4 2 7 1 3 5 9
9 1 2 8 3 5 6 4 7
5 3 7 9 6 4 2 1 8
2 7 9 1 5 8 4 6 3
4 5 8 3 2 6 9 7 1
1 6 3 7 4 9 5 8 3
81 2 5 4 9 7 1 3 6
7 9 6 5 1 3 8 2 4
3 4 1 6 8 2 7 9 5
6 8 4 2 7 1 3 5 9
9 1 2 8 3 5 6 4 7
5 3 7 9 6 4 2 1 8
2 7 9 1 5 8 4 6 3
4 5 8 3 2 6 9 7 1
1 6 3 7 4 9 5 8 2

输出样例:

1
0
0

解题思路:

先判断是否在每个宫位是否满足条件,在判断是否在每一行、每一列只出现一次,赛时刚开始没看懂题,然后没看到每个宫位,然后没看到只能出现1-9之间的数宫位且不重复(悲

⭐Code::

#include<bits/stdc++.h>
using namespace std;
int a[10][10];
int main(){
	int n;
	cin >> n;
	for(int e =1;e <= n;e ++){
		bool flag = false;
		for(int q = 1;q <= 9;q ++){
			for(int d = 1;d <= 9;d ++){
				cin >> a[q][d];
			}
		}
		//set集合用来判断每个宫位是否每个数字只出现一次
		set<int> v;
		for(int i = 1;i <= 3;i ++){
			for(int j = 1;j <= 3;j ++){
               v.clear();
				for(int k = 1 + 3 * (i - 1);k <= i * 3;k ++){
					for(int l = 1 + 3 * (j - 1);l <= j * 3;l ++){
						//需要在1-9
						if(a[k][l] >= 1 && a[k][l] <= 9){
							v.insert(a[k][l]);
						}								
					}
				}
				//如果不等于9说明有重复出现的数
				if(v.size() != 9){
					flag = true;
					break;
				}
               
			}
			if(flag){
				break;
			}
		}
		//判断每一行是否只出现一次
		for(int i = 1;i <= 9;i ++){
			for(int j = 1;j <= 9;j ++){
				for(int k = 1;k <= 9;k ++){
					if(k != j && a[i][j] == a[i][k]){
						flag = true;
						break;
					}
				}
				//判断每一列是否只出现一次
				for(int k = 1;k <= 9;k ++){
					if(k != i && a[i][j] == a[k][j]){
						flag = true;
						break;
					}
				}
			}
		}
		if(flag){
			cout << "0\n";
		}else{
			cout << "1\n";
		}
	}
}

⭐L2二阶题

⭐L2-049 鱼与熊掌(25分)

题目描述:

在这里插入图片描述

《孟子 · 告子上》有名言:“鱼,我所欲也,熊掌,亦我所欲也;二者不可得兼,舍鱼而取熊掌者也。”但这世界上还是有一些人可以做到鱼与熊掌兼得的。
给定 n 个人对 m 种物品的拥有关系。对其中任意一对物品种类(例如“鱼与熊掌”),请你统计有多少人能够兼得?

输入格式:

输入首先在第一行给出 2 个正整数,分别是:n(≤10^5 )为总人数(所有人从 1 到 n 编号)、m(2≤m≤10^5)为物品种类的总数(所有物品种类从 1 到 m 编号)。
随后 n 行,第 i 行(1≤i≤n)给出编号为 i 的人所拥有的物品种类清单,格式为:

K M[1] M[2] ... M[K]

其中 K(≤10 ^3)是该人拥有的物品种类数量,后面的 M[*] 是物品种类的编号。题目保证每个人的物品种类清单中都没有重复给出的种类。
最后是查询信息:首先在一行中给出查询总量 Q(≤100),随后 Q 行,每行给出一对物品种类编号,其间以空格分隔。题目保证物品种类编号都是合法存在的。

输出格式:

对每一次查询,在一行中输出两种物品兼得的人数。

输入样例:

4 8
3 4 1 8
4 7 1 8 4
5 6 5 1 2 3
4 3 2 4 8
3
2 3
7 6
8 4

输出样例:

2
0
3

解题思路:

先将每个人所拥有的物品存下来,然后查询时直接暴力判断每个人是否同时拥有物品x和y。个人感觉二阶题其实比一阶题还简单,毕竟一阶题是史题(有被ex到谢谢。

⭐Code::

#include<bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
vector<int> a[N];
int main(){
    int n,m;
    cin >> n >> m;
    for(int i = 1;i <= n;i ++){
        int k;
        cin >> k;
        //存物品
        for(int j = 1;j <= k;j ++){
            int x;
            cin >> x;
            a[i].push_back(x);
        }
    }
    int q;
    cin >> q;
    while(q --){
        int x,y;
        cin >> x >> y;
        int res = 0;
       //计算答案。
        for(int i = 1;i <= n;i ++){ 
            bool flag1 = false,flag2 = false;
            for(int j = 0;j < a[i].size();j ++){
                if(a[i][j] == x){
                    flag1 = true;
                }
                if(a[i][j] == y){
                    flag2 = true;
                }
            }
            if(flag1 && flag2){
                res ++;
            }
        }
        cout << res << "\n";
    }
}

⭐L2-050 懂蛇语(25分)

题目描述:

在这里插入图片描述

在《一年一度喜剧大赛》第二季中有一部作品叫《警察和我之蛇我其谁》,其中“毒蛇帮”内部用了一种加密语言,称为“蛇语”。蛇语的规则是,在说一句话 A 时,首先提取 A 的每个字的首字母,然后把整句话替换为另一句话 B,B 中每个字的首字母与 A 中提取出的字母依次相同。例如二当家说“九点下班哈”,对应首字母缩写是 JDXBH,他们解释为实际想说的是“京东新百货”……
本题就请你写一个蛇语的自动翻译工具,将输入的蛇语转换为实际要表达的句子。

输入格式:

输入第一行给出一个正整数 N(≤10 ^5 ),为蛇语词典中句子的个数。随后 N 行,每行用汉语拼音给出一句话。每句话由小写英文字母和空格组成,每个字的拼音由不超过 6 个小写英文字母组成,两个字的拼音之间用空格分隔。题目保证每句话总长度不超过 50 个字符,用回车结尾。注意:回车不算句中字符。
随后在一行中给出一个正整数 M(≤10 ^3 ),为查询次数。后面跟 M 行,每行用汉语拼音给出需要查询的一句话,格式同上。

输出格式:

对每一句查询,在一行中输出其对应的句子。如果句子不唯一,则按整句的字母序输出,句子间用 | 分隔。如果查不到,则将输入的句子原样输出。
注意:输出句子时,必须保持句中所有字符不变,包括空格。

输入样例:

8
yong yuan de shen
yong yuan de she
jing dong xin bai huo
she yu wo ye hui shuo yi dian dian
liang wei bu yao chong dong
yi dian dian
ni hui shuo she yu a
yong yuan de sha
7
jiu dian xia ban ha
shao ye wu ya he shui you dian duo
liu wan bu yao ci dao
ni hai shi su yan a
yao diao deng
sha ye ting bu jian
y y d s

输出样例:

jing dong xin bai huo
she yu wo ye hui shuo yi dian dian
liang wei bu yao chong dong
ni hui shuo she yu a
yi dian dian
sha ye ting bu jian
yong yuan de sha|yong yuan de she|yong yuan de shen

解题思路:

暂时不写,讨厌字符串~~

⭐Code::

⭐L2-051 满树的遍历(25分)

题目描述:

一棵“k 阶满树”是指树中所有非叶结点的度都是 k 的树。给定一棵树,你需要判断其是否为 k 阶满树,并输出其前序遍历序列。

注:树中结点的度是其拥有的子树的个数,而树的度是树内各结点的度的最大值。

输入格式:

输入首先在第一行给出一个正整数 n(≤10 ^5 ),是树中结点的个数。于是设所有结点从 1 到 n 编号。
随后 n 行,第 i 行(1≤i≤n)给出第 i 个结点的父结点编号。根结点没有父结点,则对应的父结点编号为 0。题目保证给出的是一棵合法多叉树,只有唯一根结点。

输出格式:

首先在一行中输出该树的度。如果输入的树是 k 阶满树,则加 1 个空格后输出 yes,否则输出 no。最后在第二行输出该树的前序遍历序列,数字间以 1 个空格分隔,行首尾不得有多余空格。
注意:兄弟结点按编号升序访问。

输入样例:

7
6
5
5
6
6
0
5

输出样例:

3 yes
6 1 4 5 2 3 7

解题思路:

建树然后遍历一遍就OK了,赛时的时候我看到这题的时候我其实觉得我应该写不出这题的,因为我个人觉得我自己对与树、图的数据结构掌握的其实不是很熟悉和牢固,所有就对这种题有一种莫名的恐惧,然后后面我看其他题后,我的内心OS:算了,还是做这道题吧。最后我也是把这题做出来了分拿满了,因为其实我还是学过的,但是每次在赛时遇到时还是会莫名的恐惧,这也让我明白了赛时是可以进行自我突破的吗,要敢于去尝试~

⭐Code::

#include<bits/stdc++.h>
using namespace std;
//题目要求兄弟节点按升序排序,这里有set来完成
set<int> a[100100];
int res = 0;
int n;
//遍历这颗树
void dfs(int x){
    res ++;
    if(res != n){
        cout << x << " ";
    }
    else{
        cout << x;
    }
    for(auto k : a[x]){
        dfs(k);
    }
}
int main(){
    cin >> n;
    int maxn = 0;
    int pos = -1;
    //建树以及记录根节点
    for(int i = 1;i <= n;i ++){
        int x;
        cin >> x;     
        if(x == 0){
            pos = i;
        }else{
			a[x].insert(i);
		}
        maxn = max(maxn,(int)a[x].size());
    }
    bool flag = false;
    //判断是否为k阶满树
    for(int i = 1;i <= n;i ++){
        if(a[i].size() != 0){
            if(a[i].size() != maxn){
                flag = true;
                break;
            }  
        }
    }    
    cout << maxn << " ";
    if(!flag){
        cout << "yes\n"; 
    }else{
        cout << "no\n";
    }
    dfs(pos);
}

⭐L2-052 吉利矩阵(25分)

题目描述:

所有元素为非负整数,且各行各列的元素和都等于 7 的 3×3 方阵称为“吉利矩阵”,因为这样的矩阵一共有 666 种。
本题就请你统计一下,把 7 换成任何一个 [2,9] 区间内的正整数 L,把矩阵阶数换成任何一个 [2,4] 区间内的正整数 N,满足条件“所有元素为非负整数,且各行各列的元素和都等于 L”的 N×N 方阵一共有多少种?

输入格式:

输入在一行中给出 2 个正整数 L 和 N,意义如题面所述。数字间以空格分隔。

输出格式:

在一行中输出满足题目要求条件的方阵的个数。

输入样例:

7 3

输出样例:

666

解题思路:

先鸽着吧哈哈哈

⭐Code::

⭐写在最后

这是一个悲伤的故事~ 是的非常悲伤,距离上一次天梯赛已经过去了一年(好像说了句废话),当时的我只是一个编程萌新小小白,当然我觉得我现在也是。那应该是我大一参加的第一场编程竞赛好像也是唯一一场(别问,问就是篮球杯没参加,别的比赛认不到也没资格。)唉,去年也是个悲伤的故事,详情可以看看2023年 团体程序设计天梯赛个人感悟及总结(附题解)——遗憾国三。可历史总是惊人的相似,没错,今年的天梯赛我又双叒叕的打铁了!继去年打铁后我本荔枝今年拿下国三的,可是结果总是让人心寒呀~好在大二上末让我接触到了ACM算法竞赛,让我又有了点新的目标可以追寻(又可以网瘾咯),中途也算是拿了个省铜(其实还好,因为当时其实很菜,没打铁已经很不错了(bushi))。直到如今大二下开学又已经两个月的我打完今年的天梯赛后不得不怀疑到底是天不随人愿还是努力还未到达收获的地步。总之还是自己太菜啦的缘故,大一的我对于编程充满热爱与激情,但现在的我好似似了,有的可能仅剩热爱,大一的那份激情好像丢失了,大二开始后我好像有些越来越看不清我自己了,我以为我会带着大一的那份当初那个少年的热爱与信念一直走下去,但我好像开始慢慢陷入了高中的那种恶性循环(三点一线,唯一不同的就是可以比较自由的玩手机以及偶尔的其他娱乐)了,每天上课上课(好多课,还没啥用,听不懂一点 ~),上完课疲惫的自己好像什么都不想干了,偶尔的编程学习便自以为是的自我感动(学习时间和学习效率明显下降)。我深知自己不能再继续这样下去了,唯有做出改变才能够回归正轨,因此从现在开始我决定破圈了。但现在我也需要面临着不同的选择,如今的我已经快大三了,并且我觉得在ACM这条路上可能很难有所突破,其实以前的我是想要直接就走开发这条路大二就实习去咯,唉,都怪可恶的算法(可恶的网瘾)。目前的话让我现在还是继续搞算法的话也不是不行,但是我也得必须为我的未来做打算(毕竟要是一直没有成绩的话废了)。可让我直接放弃算法和ACM(我目前毕竟热爱的东西)的话我也难以割舍,毕竟这可能是我这一生仅有的机会了。先把这学期打完吧 ~。

唉不说啦说了一大堆了,最后虽然这是个悲伤的故事,但还是祝大家天天开心(开心最重要!)
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1620595.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

做大模型产品,如何设计prompt?

做GenAI产品&#xff0c;除了要设计好的AI任务流程&#xff0c;合理的拆分业务以外&#xff0c;最重要的就是写好prompt&#xff0c;管理好prompt&#xff0c;持续迭代prompt。 prompt一般有两种形式&#xff1a;结构化prompt和对话式prompt。 结构化prompt的优点是通过规范的…

C++:二叉树进阶

二叉搜索树 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树 &#xff0c;或者是具有以下性质的二叉树 : 若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值 若它的右子树不为空&#xff0c;则右子树上所有节点的值都大于根节点的值 它的左右子…

超分中使用的损失函数和经典文章

损失函数 https://towardsdatascience.com/super-resolution-a-basic-study-e01af1449e13 在GAN出现之前&#xff0c;使用的更多是MSE&#xff0c;PSNR,SSIM来衡量图像相似度&#xff0c;同时也使用他们作为损失函数。 MSE 表面上MSE直接决定了PSNR&#xff0c;MSE&#xff…

路径规划算法 | A* 搜索算法

作者&#xff1a;Rachit Belwariar 编译&#xff1a;东岸因为一点人工一点智能 路径规划算法 | A* 搜索算法https://mp.weixin.qq.com/s/lTVkknLWZ4ERYnv8m0JCGQ 动机&#xff1a;为了在现实生活中近似求解最短路径&#xff0c;例如地图、游戏等存在许多障碍物的情况。我们可…

Linux命令超详细介绍

目录 安装 Linux的目录结构&#xff1a; Linux命令入门&#xff1a; Linux命令的基础格式&#xff1a; 例子&#xff1a; ls 参数 选项 注意&#xff1a; 目录切换命令&#xff1a;cd/pwd cd: pwd: 相对路径和绝对路径&#xff1a; mkdir 不用参数&#xff1a; …

非Root用户编译C程序如何生成Core文件

非Root用户编译C程序如何生成Core文件 一.生成core文件的步骤1.设置核心转储文件大小为不限制2.**修改核心转储文件生成路径**3.指定core的生成目录为当前目录下4.测试程序 二.核心转储相关设置文件 一.生成core文件的步骤 1.设置核心转储文件大小为不限制 #查询生成core文件…

云上如何实现 Autoscaling: AutoMQ 的实战经验与教训

01 背景 弹性是云原生、Serverless 的基础。AutoMQ 从软件设计之初即考虑将弹性作为产品的核心特质。对于 Apache Kafka 而言&#xff0c;由于其存储架构诞生于 IDC 时代&#xff0c;针对物理硬件设计&#xff0c;存储层强依赖本地存储&#xff0c;已不能很好地适应现在云的时…

【网络】:高级IO(一)

高级IO 一.五种IO模型二.多路转接&#xff08;select&#xff09;三.非阻塞IO&#xff08;funcl&#xff09;四.POLL IO等待拷贝。单位时间内&#xff0c;IO过程中&#xff0c;等的比例越小&#xff0c;IO就越高效。几乎所有提高IO效率的方式本质都是基于此。 一.五种IO模型 举…

深入解析:前端跨域问题及其CORS、代理、JSONP、Nginx反向代理等解决方案

前端跨域是指在浏览器环境下&#xff0c;当一个网页&#xff08;源&#xff09;尝试访问与自身源不同的服务器资源&#xff08;目标源&#xff09;时&#xff0c;由于浏览器的同源策略限制而产生的访问限制现象。同源策略&#xff08;Same-Origin Policy&#xff09;是浏览器实…

芜湖市夜间景区、文娱主题活动、夜读空、精品文艺演出、数字促销补助等夜间经济奖励政策申报条件、材料

芜湖市示范街区、示范门店、夜间景区、文娱主题活动、体育赛事、夜读空、精品文艺演出、数字促销补助等夜间经济奖励政策申报条件、材料及补贴标准整理如下 芜湖市2023年促进夜间经济发展若干政策申报时间&#xff1a; 针对2023年度促进夜间经济发展若干政策&#xff08;商务局…

❤️新版Linux零基础快速入门到精通——第一部分❤️

❤️新版Linux零基础快速入门到精通——第一部分❤️ 非科班的我&#xff01;Ta&#xff01;还是来了~~~1. 来认识一下Linux吧!1.1 操作系统概述1.1.1 操作系统概述1.1.2 操作系统的发展史1.1.2.1 Unix1.1.2.2 Minix1.1.2.3 Linux 1.1.3 操作系统的发展 1.2 Linux初识1.2.1 Lin…

二叉检索树的实现——增删改查、读取命令文件、将结果写入新文件

看这篇文章前的知识储备 链接: 二叉树的性质和分类 链接: 二叉检索树的概念 、insert方法的图解、实现、时间代价分析 链接: 二叉检索树的search、remove方法的图解、实现、时间代价分析 1、中序遍历及中序遍历写进文件的区别 两者思路一致&#xff0c;将二叉树分为三部分&…

Linux信号(产生)

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 目录 信号是什么&#xff1f; 为什么要有信号&#xff1f; 信号是如何产生的&#xff1f; kill命令 键盘产生信号 系统调用 kill系统调用 raise函数 abort函数 自制kill命令 ​编辑 软件条件 举例一&#xff1…

C++ :设计模式实现

文章目录 原则单一职责原则开闭原则依赖倒置原则接口隔离原则里氏替换原则 设计模式单例模式观察者模式策略模式代理模式 原则 单一职责原则 定义&#xff1a; 即一个类只负责一项职责 问题&#xff1a; 类 T 负责两个不同的职责&#xff1a;职责 P1&#xff0c;职责 P2。当…

大数据第六天

这里写目录标题 问题解决问题查询插入(时间慢)练习sql数据清理 问题 FAILED: ParseException line 1:16 mismatched input ‘input’ expecting INPATH near ‘local’ in load statement MismatchedTokenException(24!155) 加载数据的时候出现了这个错误&#xff0c;我们解释…

【六十】【算法分析与设计】用一道题目解决dfs深度优先遍历,dfs中节点信息,dfs递归函数模板进入前维护出去前回溯,唯一解的剪枝飞升返回值true

路径之谜 题目描述 小明冒充X星球的骑士,进入了一个奇怪的城堡。 城堡里边什么都没有,只有方形石头铺成的地面。 假设城堡地面是nn个方格。如下图所示。 按习俗,骑士要从西北角走到东南角。可以横向或纵向移动,但不能斜着音走,也不能跳跃。每走到一个新方格,就要向正北 方和正西…

短信视频提取批量工具,免COOKIE,博主视频下载抓取,爬虫

痛点&#xff1a;关于看了好多市面的软件&#xff0c;必须要先登录自己的Dy号才能 然后找到自己的COOKIE 放入软件才可以继续搜索&#xff0c;并且无法避免长时间使用 会导致无法正常显示页面的问题。 有没有一种方法 直接可以使用软件&#xff0c;不用设置的COOKIE的方法呢 …

对于地理空间数据,PostGIS扩展如何在PostgreSQL中存储和查询地理信息?

文章目录 一、PostGIS扩展简介二、PostGIS存储地理空间数据1. 创建空间数据表2. 插入空间数据 三、PostGIS查询地理空间数据1. 查询指定范围内的地理空间数据2. 计算地理空间数据之间的距离3. 对地理空间数据进行缓冲区分析 四、总结 地理空间数据是指描述地球表面物体位置、形…

开源社区与开发者的故事

开源社区与开发者的故事 什么是开源社区你参加开源社区的主要目的你是否在开源社区中贡献&#xff0c;或者开源自己的项目&#xff1f;你认为个人开发者是否应该从开源中获利&#xff1f;如果是&#xff0c;该如何获利&#xff1f; 今天要谈及的主题是开源社区&#xff0c;那么…