蓝桥杯

蓝桥杯第七届C/C++B省赛凑算式

China☆狼群 提交于 2020-03-15 05:45:23
第三题: 凑算式 B DEF A + --- + ------- = 10 C GHI (如果显示有问题,可以参见【图1.jpg】) 这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。 比如: 6+8/3+952/714 就是一种解法, 5+3/1+972/486 是另一种解法。 这个算式一共有多少种解法? 注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。 就一个控制精度问题,其他的没有了。 答案 : 29 第一种:dfs,搜索每一个位置,确定当前的数,最后统一计算(终于自己都看不下去以前写的无穷for了QAQ) 源代码: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<string> #include<algorithm> int flag[11]; int ans[11]; int sum=0; using namespace std; void dfs(int pos) { if(pos==10) { double t1=(double)ans[1]; double t2=((double)ans[2])/((double)ans[3]); double t3=((double)(ans[4]*100+ans[5]*10+ans[6]))/(

蓝桥杯:结点选择

老子叫甜甜 提交于 2020-03-14 11:06:59
问题描述 有一棵 n 个节点的树,树上每个节点都有一个正整数权值。如果一个点被选择了,那么在树上和它相邻的点都不能被选择。求选出的点的权值和最大是多少? 输入格式 第一行包含一个整数 n 。 接下来的一行包含 n 个正整数,第 i 个正整数代表点 i 的权值。 接下来一共 n-1 行,每行描述树上的一条边。 输出格式 输出一个整数,代表选出的点的权值和的最大值。 样例输入 5 1 2 3 4 5 1 2 1 3 2 4 2 5 样例输出 12 样例说明 选择3、4、5号点,权值和为 3+4+5 = 12 。 数据规模与约定 对于20%的数据, n <= 20。 对于50%的数据, n <= 1000。 对于100%的数据, n <= 100000。 权值均为不超过1000的正整数 没有上司的舞会问题 #include<cstdio> #include<cstring> #include<algorithm> #include<vector> using namespace std; const int MAXN=100005; int w[MAXN]; vector<int> tree[MAXN]; int n; int dp[MAXN][2]; int vis[MAXN]; void dfs(int u) { vis[u]=1; dp[u][0]=0; dp[u][1]=w[u]

蓝桥杯第七届D题:快速排序

淺唱寂寞╮ 提交于 2020-03-12 06:43:50
题目描述 排序在各种场合经常被用到。 快速排序是十分常用的高效率的算法。 其思想是:先选一个“标尺”, 用它把整个队列过一遍筛子, 以保证:其左边的元素都不大于它,其右边的元素都不小于它。 这样,排序问题就被分割为两个子区间。 再分别对子区间排序就可以了。 下面的代码是一种实现,请分析并填写划线部分缺少的代码。 思路 就是快排的另一种写法,思路和 快速排序 一样 代码 # include <stdio.h> void swap ( int a [ ] , int i , int j ) { int t = a [ i ] ; a [ i ] = a [ j ] ; a [ j ] = t ; } int partition ( int a [ ] , int p , int r ) { int i = p ; int j = r + 1 ; int x = a [ p ] ; while ( 1 ) { while ( i < r && a [ ++ i ] < x ) ; while ( a [ -- j ] > x ) ; if ( i >= j ) break ; swap ( a , i , j ) ; } swap ( a , p , i ) ; //填空处 return j ; } void quicksort ( int a [ ] , int p , int r )

蓝桥杯基础练习30题-数列排序

流过昼夜 提交于 2020-03-12 03:49:17
问题描述   给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200 输入格式   第一行为一个整数n。   第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。 输出格式   输出一行,按从小到大的顺序输出排序后的数列。 样例输入 5 8 3 6 4 9 样例输出 3 4 6 8 9 上代码: # include <stdio.h> # include <algorithm> using namespace std ; const int maxn = 1e5 + 5 ; int a [ 205 ] ; int cmp ( int a , int b ) { return a < b ; } int main ( ) { int n ; int a [ 205 ] ; int i ; while ( scanf ( "%d" , & n ) != EOF ) { for ( i = 0 ; i < n ; i ++ ) scanf ( "%d" , & a [ i ] ) ; sort ( a , a + n , cmp ) ; for ( i = 1 ; i < n ; i ++ ) printf ( "%d " , a [ i ] ) ; printf ( "\n" ) ; } return 0 ; } 就是简单的输入,排序,输出

蓝桥杯 基础练习 查找整数

时光怂恿深爱的人放手 提交于 2020-03-12 02:27:59
问题描述 给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。 输入格式 第一行包含一个整数n。 第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。 第三行包含一个整数a,为待查找的数。 输出格式 如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。 样例输入 6 1 9 4 8 3 9 9 样例输出 2 数据规模与约定 1 <= n <= 1000。 # include <iostream> using namespace std ; int main ( int argc , char * * argv ) { int n , a [ 1000 ] ; int num , j ; cin >> n ; for ( int i = 0 ; i < n ; i ++ ) { cin >> a [ i ] ; } cin >> num ; for ( j = 0 ; j < n ; j ++ ) { if ( a [ j ] == num ) { cout << j + 1 ; break ; //找到之后退出循环 } } if ( j == n ) cout << - 1 ; //没找到输出-1 return 0 ; } 来源: CSDN 作者: qq_44942539 链接: https://blog.csdn

蓝桥杯嵌入式第十届省赛程序

最后都变了- 提交于 2020-03-11 14:00:34
第十届赛题程序部分较为简单,客观题相对较难。主要会用adc+led即可ok,本科组甚至没有用到EEPROM(本代码加入此功能将led灯信息,上下阈值存入EEPROM,reset后数据不丢失) 先看目录 初始化函数 头文件: 初始化程序 #include "stm32f10x.h" #include "lcd.h" #include "init.h" #include "i2c.h" void GPIO_Int(void) { GPIO_InitTypeDef GPIO_InitStructure; ADC_InitTypeDef ADC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC| RCC_APB2Periph_GPIOD, ENABLE); //led GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10| GPIO_Pin_11 | GPIO_Pin_12| GPIO_Pin_13 | GPIO_Pin_14| GPIO_Pin

[蓝桥杯][算法提高VIP]种树(dfs)

落爺英雄遲暮 提交于 2020-03-11 09:41:56
A城市有一个巨大的圆形广场,为了绿化环境和净化空气,市政府决定沿圆形广场外圈种一圈树。园林部门 得到指令后,初步规划出n个种树的位置,顺时针编号1到n。并且每个位置都有一个美观度Ai,如果在这里种树就可以得到这Ai的美观度。但由于A城市土壤 肥力欠佳,两棵树决不能种在相邻的位置(i号位置和i+1号位置叫相邻位置。值得注意的是1号和n号也算相邻位置!)。 最终市政府给园林部门提供了m棵树苗并要求全部种上,请你帮忙设计种树方案使得美观度总和最大。如果无法将m棵树苗全部种上,给出无解信息。 数据规模和约定 对于全部数据,满足1< =m< =n< =30; 其中90%的数据满足m< =n< =20 -1000< =Ai< =1000 输入 输入的第一行包含两个正整数n、m。 第二行n个整数Ai。 输出 输出一个整数,表示最佳植树方案可以得到的美观度。如果无解输出“Error!”,不包含引号。 样例输入 7 3 1 2 3 4 5 6 7 样例输出 15 思路:深搜+回溯。数据量不大,可以直接搜。跟之前的一道填空题类似。但是Error注意还有一个!,白wa一发。 代码如下: # include <bits/stdc++.h> # define ll long long using namespace std ; const int maxx = 31 ; int val [ maxx ] ;

蓝桥杯 小数第n位

孤者浪人 提交于 2020-03-09 10:13:40
问题描述   我们知道,整数做除法时,有时得到有限小数,有时得到无限循环小数。   如果我们把有限小数的末尾加上无限多个0,它们就有了统一的形式。   本题的任务是:在上面的约定下,求整数除法小数点后的第n位开始的3位数。 输入格式   一行三个整数:a b n,用空格分开。a是被除数,b是除数,n是所求的小数后位置(0<a,b,n<1000000000) 输出格式   一行3位数字,表示:a除以b,小数后第n位开始的3位数字。 样例输入 1 8 1 样例输出 125 #include<cmath> #include<stack> using namespace std; int main() { double a,b,c,e=3; cin>>a>>b>>c; double d=a/b; d*=pow(10,c+2); int t=d; stack<int>s; while(e--) { s.push(t%10); t/=10; } while(s.size()>0) { cout<<s.top(); s.pop(); } return 0; } 来源: https://www.cnblogs.com/MAX-ZMY/p/12446783.html

(Day 4)蓝桥杯练习系统 基础练习 矩阵乘法

北城以北 提交于 2020-03-09 03:00:40
矩阵乘法 问题描述   给定一个N阶矩阵A,输出A的M次幂(M是非负整数)   例如:   A =   1 2   3 4   A的2次幂   7 10   15 22 输入格式   第一行是一个正整数N、M(1<=N<=30, 0<=M<=5),表示矩阵A的阶数和要求的幂数   接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值 输出格式   输出共N行,每行N个整数,表示A的M次幂所对应的矩阵。相邻的数之间用一个空格隔开 样例输入 2 2 1 2 3 4 样例输出 7 10 15 22 解题步骤: (1)明白矩阵乘法的数学定义(可自行百度搜索学习) (2)发现矩阵乘法规则中的规律,将相应元素的数组下标搞清楚 (3)注意原数组与结果数组之间的关系。分析它们之间的关系可知,我们必须还需要一个中间临时数组C[ ][ ]作为中转。 下面的代码中的关键步骤都有详细注释,便于理解思路 # include <iostream> # define MAX 10000 using namespace std ; int arr [ MAX ] [ MAX ] ; //将原数组定义为全局变量,可以避免作为函数参数的问题 void matrix ( int N , int M ) { int b [ N ] [ N ] , c [ N ] [ N ] ; //对原始矩阵赋值

蓝桥杯单片机学习过程记录(二十六)第七届国赛电压、频率采集设备

眉间皱痕 提交于 2020-03-08 21:15:52
蓝桥杯单片机学习过程记录(二十六)第七届国赛电压、频率采集设备 N555方波这部分没写,准备重新理解一下,其余部分都已经完成,遇到了两个问题,一是时钟芯片,调整时,记得调整完后重新初始化一下,二是采集电压波动时,由正常到高,有正常到低时的判断频率调整一下。 应用的内容: 数码管、矩阵按键、 IIC_Rb2电压采集 EEPROM的写入读取 DS1302时钟芯片 定时器 /* -------------------------------- 第七届频率电压采集 频率没写,其余部分写完。 2020.3.8 -------------------------------- */ # include <STC15F2K60S2.H> # include <ds1302.h> # include <iic.h> char s11_count_h , s11_count_m , s11_count_s , count_h , count_m ; unsigned int time0_t , dianya , dianya_h , dianya_m , dianya_temp ; unsigned char flag_yemian , flag_time0 , s4_count , dianya_count ; unsigned char seg [ ] = { 0xc0 , 0xf9 ,