首页 > 其他分享 >第十二届蓝桥杯填空题

第十二届蓝桥杯填空题

时间:2024-03-08 15:00:52浏览次数:18  
标签:count dots 试题 第十二届 填空题 蓝桥 range y1 x1

目录

试题A:卡片

  • 分析:11年是从1到2020,2出现的次数,这个题感觉反过来了,求1到多少0-9出现的次数是2021

法一、暴力测试法

  • 最后结果是3181
cnt,cnt1,cnt2,cnt3,cnt4,cnt5,cnt6,cnt7,cnt8,cnt9=0,0,0,0,0,0,0,0,0,0
for i in range(1,3182):#左闭右开
    i=str(i)
    cnt+=i.count("0")
    cnt1 += i.count("1")
    cnt2 += i.count("2")
    cnt3 += i.count("3")
    cnt4 += i.count("4")
    cnt5 += i.count("5")
    cnt6+=i.count("6")
    cnt7 += i.count("7")
    cnt8 += i.count("8")
    cnt9 += i.count("9")
print(cnt,cnt1,cnt2,cnt3,cnt4,cnt5,cnt6,cnt7,cnt8,cnt9)#928 2021 1938 1120 938 938 938 938 930 928

法二、另解

  • 卡片1最先用完
n=1#卡片1的使用情况
x=1#能拼到的数
while n<2021:
    x+=1
    n+=str(x).count("1")
print(x)#3181

试题B:直线

  • 分析:11年有一个题直线划分平面,同样涉及到求斜率
  • 已知两点坐标则:斜率 = (y2 - y1) / (x2 - x1);截距 = y1 - 斜率 * x1=y1-((y2 - y1) / (x2 - x1))x1=(通分)(y1(x2-x1)-x1*(y2-y1))/(x2-x1)

题解

dots = [(i, j) for i in range(20) for j in range(21)]  # 生成所有点
lines = set()
for i in range(len(dots)):
    for j in range(i+1, len(dots)):
        if dots[j][0]-dots[i][0] != 0:#两点的x坐标不相等时进入下面,也是保证了分母不为0
            x1, x2 = dots[i][0], dots[j][0]
            y1, y2 = dots[i][1], dots[j][1]
            k = (y2-y1)/(x2-x1)
            b = (y1*(x2-x1)-x1*(y2-y1))/(x2-x1)  # 这么写不会炸精度
            lines.add((k, b))
print(len(lines)+20)#+20是上面排除的垂直与x轴的情况
  • 最后结果为:40257

试题C:货物摆放

法一、暴力

n=2021041820210418
res=0
for i in range(1,n+1):
    for j in range(1,n+1):
        for k in range(1,n+1):
            if i*j*k==n:
                res+=1
                # print(i,j,k)
print(res)
  • 跑不出结果,n太大了

法二、在遍历之前筛掉不是n的因数的

from math import *
n=2021041820210418
res=0
x=[]
for i in range(1,int(sqrt(n))+1):
    if n%i==0:
        if i not in  x:
            x.append(i)
        if((n//i)  not in x):
            x.append(n//i)
for i in x:
    for j in x:
        for k in x:
            if i*j*k==n:
                res+=1
print(res)
  • 最后结果为:2430

试题D:路径

  • 下面内容待更新....

法一、改进的迪杰斯特拉算法



法二、动态规划


  • 最后结果为:

试题E:回路计数

  • 动态规划,状态压缩

法一、

标签:count,dots,试题,第十二届,填空题,蓝桥,range,y1,x1
From: https://www.cnblogs.com/lushuang55/p/18060861

相关文章

  • 2023年第十四届蓝桥杯大赛软件类省赛Java大学B组真题
    2023年第十四届蓝桥杯大赛软件类省赛Java大学B组真题C.数组分割思路:因为最后要是分为2组偶数。由于偶数+偶数=偶数,奇数+奇数=偶数。那么我们的奇数个数一定要是偶数个。如果奇数个数为奇数个那直接就不行了,答案是0。如果奇数的个数是偶数的话,假设偶数n个,奇数m个。\(C_{n}^{0}+......
  • 每天一道蓝桥杯Day1 分考场(dfs+结论)
    题意:这道题第一眼咋看以为是图论,但是要抽象成图论的话就会变成:给定一个无向图,要求对点染色,使得任意相邻点之间颜色不能相同,试问最少的颜色数是多少?发现转化成图论后好像也没有什么图论算法可以解决,这个转化不是很有效。往往不知道怎么下手时可以试着考虑极端情况,比如考虑上界......
  • P8686 [蓝桥杯 2019 省 A] 修改数组
    备赛蓝桥杯和icpc的习题:一道并查集的题目>#include<iostream>>#include<vector>>#include<algorithm>>#include<math.h>>#include<string>>#include<string.h>>#include<iomanip>>#include<map>&g......
  • 2020蓝桥杯c语言省赛B组
    2020蓝桥杯省赛B组1.回文日期考点枚举+翻转完整代码#include<bits/stdc++.h>usingnamespacestd;boolrn(intt){ if((t%4==0&&t%100!=0)||t%400==0)returntrue; returnfalse;}注意:是整体翻转不是年月日变成日月年!boolf(intn,inty,intr){inth=n*10000+......
  • 第十一届蓝桥杯试题B:寻找2020
    目录题目题解:暴力题目题解:暴力需要知道文件的操作;发现2020的行列标变化li=[]#创建一个空列表用于存储读取的文本内容withopen(r'2020.txt','r')asfp:#打开名为'2020.txt'的文件,并使用文件句柄fpforlineinfp.readlines():#逐行读取文件内容......
  • 第十一届蓝桥杯:数字三角形
    目录题目暴力:最大路径和题解:动态规划题目暴力:最大路径和n=int(input())#输入数塔的行数#创建一个二维数组a来表示数塔,初始值都为0a=[[0]*(n+1)for_inrange(n+1)]#从第1行开始逐行读取输入,并计算最大路径和foriinrange(1,n+1):forjinrange(1,i......
  • 第十一届蓝桥杯试题I:平面切分
    目录题目题解题目题解多画一下发现面的数量等于交点数量+1,进而转化为求交点的数量,注意同一个交点只记一次,需要去重操作lines=set()#存储直线的集合res=1#初始面的数量为1n=int(input())#输入边的数量defcheck(A,B):points=set()#存储交点的......
  • P8681 [蓝桥杯 2019 省 AB] 完全二叉树的权值
    做这道题的时候混淆了满二叉树和完全二叉树的概念:满二叉树:顾名思义,就是塞满了完全二叉树:除了最后一层之外,每一层都必须是满的,且最后一层如果不满,则所有节点都尽可能靠左。#include<iostream>#include<stdio.h>#include<algorithm>#include<string>#defineFor(i,j,n......
  • 蓝桥杯细节补充
    structm{inti,j,k;booloperator<(constm&t){if(i!=t.i)returni<t.i;if(j!=t.j)returnj<t.j;returnk<t.k;}}m[N];//进行结构体的比较时,重载运算符规定好规则,然后用sort进行排序sort(m,m+num);1221.四平方和https......
  • P8598 [蓝桥杯 2013 省 AB] 错误票据 题解
    思路考虑将\(id\)从小到大排序,然后从\(2\)下标开始扫描一遍\(id\)数组,若当前的\(id_i-id_{i-1}>1\),则说明当前\(id\)存在断号,输出\(id_i-1\);若当前的\(id_i=id_{i-1}\),则说明当前\(id\)存在重号,输出\(id_i\)。注意断号与重号需要分开计算。#include<b......