当前位置: 首页 > article >正文

蓝桥杯思维训练营(一)

文章目录

  • 题目总览
  • 题目详解
    • 翻之
    • 一起做很甜的梦

蓝桥杯的前几题用到的算法较少,大部分考察的都是思维能力,方法比较巧妙,所以我们要积累对应的题目,多训练

题目总览

翻之
一起做很甜的梦

题目详解

翻之

在这里插入图片描述
在这里插入图片描述

思维分析:一开始比较难有思路,我们不可能一行行去翻转我们的行,然后去判断。
正确的思路:只要统计相同的列的数目就是所需的答案

原因:相同的列中,对于不是0的行是相同的,我们只要翻转对应的行即可实现列的全部的元素都为1
技巧:统计对应的列的数目,我们可以使用defaultdict字典进行存储,对于defaultdict(int),默认的值为0,并且该题还有一个可以使用一个翻转的操作(使用zip 和 *)

不理解这个二维列表的翻转的操作可以参考另一篇博客

from collections import defaultdict
n,m = map(int,input().split())

strnum = []
for i in range(n):
	# 把输入的字符串拆分为单个的字符
    getstr = list(input())
    # 每组并入一个大的列表,形成二维列表
    strnum.append(getstr)
# 列表转置
transposed_matrix = [list(row) for row in zip(*strnum)]


count = defaultdict(int)
ans = 0
for i in transposed_matrix:
	# 合并字符
    tmp = ''.join(i)
    # 计数
    count[tmp]+=1
    # 记录最大值
    ans = max(ans,count[tmp])
print(ans)

一起做很甜的梦

在这里插入图片描述

在这里插入图片描述

思路分析:一开始的话,我的思路是想通过,一开始确定一个起始点,然后进行加减数目可以得到序列,但是进行实验之后,发现重复并不可避免
正确的思路:发现偶数的n的时候,前面是偶数的排列,后面是奇数的排列,n为奇数的时候,前面是奇数排列,后面是偶数的排列

n = int(input())

# 当n 是偶数的时候,偶数放前面
# 当n 是奇数的时候,奇数放前面
ou = [i for i in range(1,n+1) if i%2==0]
ji = [i for i in range(1,n+1) if i%2==1]
if n%2 ==0:
	# 偶数组合
    ans = ou+ji
else:
	# 奇数组合
    ans = ji+ou

# 按格式输出
for i in ans:
    print(i,end=' ')


http://www.kler.cn/a/526808.html

相关文章:

  • 绝对值线性化
  • SpringBoot+Vue的理解(含axios/ajax)-前后端交互前端篇
  • 智慧园区系统助力企业智能化升级实现管理效率与安全性全方位提升
  • android 圆形弹窗摄像头开发踩坑——源码————未来之窗跨平台操作
  • 大模型知识蒸馏技术(2)——蒸馏技术发展简史
  • NLP自然语言处理通识
  • sleep和wait
  • 基于遗传优化GRNN和Hog特征提取的交通标志识别算法matlab仿真
  • Android Studio 正式版 10 周年回顾,承载 Androider 的峥嵘十年
  • 1.27刷题记录
  • 【leetcode练习·二叉树】计算完全二叉树的节点数
  • Git进阶之旅:Git Hub注册创建仓库
  • 解决运行npm时报错
  • 面向对象编程(OOP)基础:类与对象
  • 线性回归简介:从理论到应用
  • 01. 计算机系统
  • C++ 中的引用(Reference)
  • 第十一章 F - H 开头的术语
  • 数据结构与算法之哈希表: LeetCode 1797. 设计一个验证系统 (Ts版)
  • 深入剖析 Docker 的镜像分层存储机制
  • jhat命令详解
  • 3.拼正方形python解法——2024年省赛蓝桥杯真题
  • 第28章 星骗计划的开篇
  • 25.Word:学生成绩管理系统【8】
  • plot(a_star_path(:, 1), a_star_path(:, 2), ‘r-‘, ‘LineWidth‘, 2);
  • 实验七 JSP内置对象II