蓝桥杯

(蓝桥杯)牌型种数

岁酱吖の 提交于 2020-01-17 22:30:50
问题描述 小明被劫持到X赌城,被迫与其他3人玩牌。 一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。 这时,小明脑子里突然冒出一个问题: 如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序 自己手里能拿到的初始牌型组合一共有多少种呢? 输出 请输出该整数,不要输出任何多余的内容或说明文字。 思路 递归,从A到K选个数,个数选到13时候,总数加一 代码 # include <bits/stdc++.h> using namespace std ; //心得:flag==true 是比较,flag=true 是赋值 注意等号的个数 //递归思想:由于不论顺序,所以假定从A开始选择个数(0~4)直到 K(13) int we = 0 ; //we表示种类数 //n表示每次选择的dian点的牌的数量 //dian表示牌的点数 //sum为13,即牌每个人发13张 void my ( int n , int dian , int sum ) { //cout<<"执行了一次递归"<<endl; sum + = n ; if ( sum == 13 ) { we ++ ; sum = 0 ; return ; } else if ( sum > 13 ) { return ; } if ( dian == 13 ) { return ; } for ( int i

[蓝桥杯2015初赛]方程整数解 unordered_map

会有一股神秘感。 提交于 2020-01-17 12:57:30
unordered_map: 如果直接写报错加上tr1: 1 #include<tr1/unordered_map>//注意写法 2 using namespace std; 3 using namespace std::tr1;//注意写法 std::unorederd_map 是一个关联容器,其中的元素根据键来引用,而不是根据索引来引用。 1 #include <iostream> 2 #include <algorithm> 3 #include <queue> 4 #include <cstdio> 5 #include<tr1/unordered_map>//注意写法 6 using namespace std; 7 using namespace std::tr1;//注意写法 8 int a,b,c; 9 10 int main() 11 { 12 int n; 13 while(~scanf("%d",&n)) 14 { 15 int cnt=0; 16 int cntc=0; 17 unordered_map<int,int> mp; 18 for(int i=1;i*i<=n;i++) 19 { 20 int t=i*i; 21 if(mp.count(t)==0) 22 mp[t]=i; 23 } 24 for(int i=1;i*i<=n;i++) 25 {

蓝桥杯 两点(cf2)

☆樱花仙子☆ 提交于 2020-01-17 08:19:23
福克斯在玩一款手机解迷游戏,这个游戏叫做"两点"。基础级别的时候是在一个 n×mn×m 单元上玩的。像这样: 每一个单元有包含一个有色点。我们将用不同的大写字母来表示不同的颜色。 这个游戏的关键是要找出一个包含同一颜色的环。看上图中 44 个蓝点,形成了一个环。一般的,我们将一个序列 d1,d2,...,dkd1,d2,...,dk 看成一个环,当且仅当它符合下列条件时: 1. 这 kk 个点不一样,即当 i≠ji≠j 时,didi 和 djdj 不同。 2. kk 至少是 44。 3. 所有的点是同一种颜色。 4. 对于所有的 1≤i≤k−11≤i≤k−1: didi 和 di+1di+1 是相邻的。还有 dkdk 和 d1d1 也应该相邻。单元 xx 和单元 yy 是相邻的当且仅当他们有公共边。 当给出一幅格点时,请确定里面是否有环。 Input 单组测试数据。 第一行包含两个整数 nn 和 mm (2≤n,m≤50)(2≤n,m≤50): 板子的行和列。 接下来 nn 行,每行包含一个有 mm 个字母的串,表示当前行每一个点的颜色。每一个字母都是大写字母。 Output 如果有环输出 Yes,否则输出 No。 input 3 4 AAAA ABCA AADA output No 思路: 从某个点开始,每走过一个点标记为1,如果能再次走回起始点,并且途中经过的点数大于等于4

蓝桥杯 历届试题 合根植物

∥☆過路亽.° 提交于 2020-01-17 03:28:24
问题描述   w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。   这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。   如果我们告诉你哪些小格子间出现了连根现象,你能说出这个园中一共有多少株合根植物吗? 输入格式   第一行,两个整数m,n,用空格分开,表示格子的行数、列数(1<m,n<1000)。   接下来一行,一个整数k,表示下面还有k行数据(0<k<100000)   接下来k行,第行两个整数a,b,表示编号为a的小格子和编号为b的小格子合根了。   格子的编号一行一行,从上到下,从左到右编号。   比如:5 * 4 的小格子,编号:   1 2 3 4   5 6 7 8   9 10 11 12   13 14 15 16   17 18 19 20 样例输入 5 4 16 2 3 1 5 5 9 4 8 7 8 9 10 10 11 11 12 10 14 12 16 14 18 17 18 15 19 19 20 9 13 13 17 样例输出 5 样例说明   其合根情况参考下图 基础并查集,答案为根结点为本身的节点个数。 1 #include <cstdio> 2 #include <cstdlib> 3 #include <cstring> 4

51单片机蓝桥杯学习记录1

旧街凉风 提交于 2020-01-16 10:03:04
51单片机蓝桥杯学习记录 学院通知让参加蓝桥杯,可能我们参加的好的话学弟们说不定也有机会参加以后的蓝桥杯了,还是代码备份,就当做以后给学弟们上课的课件了^^ 蓝桥杯单片机有stm32f103的,还有51的,还是选择51吧,103的话不知道给不给库 首先 蓝桥杯的51用的是stc15f2k61s2, 用keil5的话stc的包是一个问题,解决方法如下: 点这里的 添加型号和头文件到keil中 ,找到keil的安装目录就行 其他的就按步骤来吧 由于我买的是二手的板子,没有资料得自己摸着过河,看了眼B站上发的视频打算先写个流水灯的再说 玩儿着才发现蓝桥杯板子P0的最高位接的灯的最后一盏 第一讲先不用定时器直接来个延时 代码如下: /***************************** author: 风行天 time:2020.01.15 *****************************/ #include < stc15f2k60s2 . h > #define uint unsigned int void delay_ms ( uint sec ) //定时sec ms 调试算出来的 { uint a , b ; for ( ; sec > 0 ; sec -- ) { for ( a = 0 ; a < 5 ; a ++ ) { for ( b = 0 ; b <

蓝桥杯 历届试题 合根植物

旧时模样 提交于 2020-01-16 04:01:24
问题描述   w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。   这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。   如果我们告诉你哪些小格子间出现了连根现象,你能说出这个园中一共有多少株合根植物吗? 输入格式   第一行,两个整数m,n,用空格分开,表示格子的行数、列数(1<m,n<1000)。   接下来一行,一个整数k,表示下面还有k行数据(0<k<100000)   接下来k行,第行两个整数a,b,表示编号为a的小格子和编号为b的小格子合根了。   格子的编号一行一行,从上到下,从左到右编号。   比如:5 * 4 的小格子,编号:   1 2 3 4   5 6 7 8   9 10 11 12   13 14 15 16   17 18 19 20 样例输入 5 4 16 2 3 1 5 5 9 4 8 7 8 9 10 10 11 11 12 10 14 12 16 14 18 17 18 15 19 19 20 9 13 13 17 样例输出 5 样例说明   其合根情况参考下图 1 /* 2 *此题考并查集 3 *思路:用数组保存点,每个元素的指针即为其编号,内容为与其相连的点。指向同一根的即为一棵树。在处理完后指向自己的点就是根。 4 * 5 */ 6

蓝桥杯---暗恋---枚举---C++

丶灬走出姿态 提交于 2020-01-14 18:05:02
算法训练 暗恋 时间限制:1.0s 内存限制:256.0MB 问题描述   同在一个高中,他却不敢去找她,虽然在别人看来,那是再简单不过的事。暗恋,是他唯一能做的事。他只能在每天课间操的时候,望望她的位置,看看她倾心的动作,就够了。操场上的彩砖啊,你们的位置,就是他们能够站立的地方,他俩的关系就像砖与砖之间一样固定,无法动摇。还记得当初铺砖的工人,将整个操场按正方形铺砖(整个操场可视为R行C列的矩阵,矩阵的每个元素为一块正方形砖块),正方形砖块有两种,一种为蓝色,另一种为红色。我们定义他和她之间的“爱情指标”为最大纯色正方形的面积,请你写一个程序求出“爱情指标”。    输入格式   第一行两个正整数R和C。   接下来R行C列描述整个操场,红色砖块用1来表示,蓝色砖块用0来表示。 输出格式   一个数,表示他和她之间的“爱情指标”。 样例输入 5 8 0 0 0 1 1 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 1 0 1 1 1 0 1 1 0 1 样例输出 9 数据规模和约定   40%的数据R,C<=10;   70%的数据R,C<=50;   100%的数据R,C<=200; 实现代码 # include <iostream> # include <algorithm> # include <cstring>

高精度阶乘计算_蓝桥杯

一个人想着一个人 提交于 2020-01-14 11:50:13
/** 问题描述   输入一个正整数n,输出n!的值。   其中n!=1*2*3*…*n。 算法描述   n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。   将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。   首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值。 输入格式   输入包含一个正整数n,n<=1000。 输出格式   输出n!的准确值。 样例输入 10 样例输出 3628800 */ package jiChuLianXi; import java.util.Scanner; public class Factorial { public static String multiply(String num1, String num2) { if(num1.length()==0||num2.length()==0) return ""; int[] ret=new int[num1.length()+num2.length()];//int数组,存放计算结果,最长为两个数的长度和 for(int i=num1.length()-1;i>=0;i--){//从num1的最低位开始算 for(int j=num2.length

闰年判断_蓝桥杯

只谈情不闲聊 提交于 2020-01-14 09:53:31
细心!分明条件很明确,却在写代码时还是将“year%400==0”写成了“year%400==0”。。。 /** 问题描述 给定一个年份,判断这一年是不是闰年。 当以下情况之一满足时,这一年是闰年: 1. 年份是4的倍数而不是100的倍数; 2. 年份是400的倍数。 其他的年份都不是闰年。 输入格式 输入包含一个整数y,表示当前的年份。 输出格式 输出一行,如果给定的年份是闰年,则输出yes,否则输出no。 说明:当试题指定你输出一个字符串作为结果(比如本题的yes或者no,你需要严格按照试题中给定的大小写,写错大小写将不得分。 样例输入 2013 样例输出 no 样例输入 2016 样例输出 yes 数据规模与约定 1990 <= y <= 2050。 */ package jiChuLianXi; import java.util.Scanner; public class LeapYear { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); int year = in.nextInt(); if((year%4==0&&year%100!=0) || year%400==0) System.out

蓝桥杯 基础练习 01字串

夙愿已清 提交于 2020-01-12 19:38:56
问题描述 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是: 00000 00001 00010 00011 00100 请按从小到大的顺序输出这32种01串。 输入格式 本试题没有输入。 输出格式 输出32行,按从小到大的顺序每行一个长度为5的01串。 样例输出 00000 00001 00010 00011 <以下部分省略> 看见题目的第一种想法,嘻嘻嘻 暴力枚举!!! # include <iostream> using namespace std ; int main ( ) { cout << "00000" << endl ; cout << "00001" << endl ; cout << "00010" << endl ; cout << "00011" << endl ; cout << "00100" << endl ; cout << "00101" << endl ; cout << "00110" << endl ; cout << "00111" << endl ; cout << "01000" << endl ; cout << "01001" << endl ; cout << "01010" << endl ; cout << "01011" << endl ; cout << "01100" << endl