蓝桥杯
东さん
无知而狂妄
展开
-
基础练习 完美的代价(蓝桥杯 字符串问题)
首先我们知道了如何交换位置,只能相邻才能交换。用两个循环,一个从左边,一个从右边开始遍历,分两种情况: ①如果左边字符等于右边字符,说明,这个字符是成对的(目前),然后利用下标计算出需要移动的距离(与移动次数相等),记录下来,然后遍历把每个字符的位置往前移动一个位置,更新字符串,变成移动后的样子 ②判断两个循环是否相遇,如果相遇说明,需要匹配的字符不存在, 如果字符长度为偶数,直接Imp...原创 2017-11-06 19:58:38 · 2071 阅读 · 0 评论 -
蓝桥杯 - 回形取数
原理很简单,从外面开始往里面循环输出 要注意的是需要有标记,纯坐标运算太容易出错记录输出的个数,退出循环对于一圈循环,分别模拟向四个方向#include<cstdio>int main() { int n, m, a[205][205]; scanf("%d %d", &m, &n); int num = n * m; for(int i = 0; i <原创 2018-01-18 17:10:08 · 459 阅读 · 0 评论 -
蓝桥杯 - 高精度加法
模拟加法的原则, 有几点要注意的是,加的时候,吧数字倒过来加比较好想,而且好算字符串输入很重要注意字符串转数字的时候需要 - 0#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int MAXN = 1010;char a[MAXN], a1[MAXN], b[MAXN], b1原创 2018-01-18 17:07:39 · 436 阅读 · 0 评论 -
蓝桥杯 - 找素数
这道题用普通的方法会超时首先用筛素数的方法,把素数筛除来,然后在这其中,维护一个数组,记录这个数是否是素数#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include<cstring>using namespace std;typedef long long ll;const int MAXN =原创 2018-01-17 20:18:24 · 890 阅读 · 0 评论 -
蓝桥杯 - 进制转换
二进制最后一位是202^0,倒数第二位是212^1,以此类推#include<stdio.h> #include<string.h> #include<math.h> int main() { char str[32]; gets(str); int ans = 0, kase = 0; int len = strlen(str); for(int i原创 2018-01-17 18:55:05 · 279 阅读 · 0 评论 -
蓝桥杯 - 质因数
从2开始遍历到此数-1,如果可以被整除,那么除到不能除为止,然后判定下一个,直到n==i或者遍历结束#include<stdio.h>int main () { int n; scanf("%d", &n); printf("%d=", n); for(int i = 2; i < n ;i++){ while(n != i){原创 2018-01-17 18:49:32 · 400 阅读 · 0 评论 -
蓝桥杯 - 区间k大数查询
根据输入的左右区间,放入一个数组,然后进行排序,左位置加上第几位减去1就是这个数字所在的位置#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int n, m;int s[1010], s1[1010];bool cmp(int a, int b){ return a > b;}int m原创 2018-01-17 18:46:09 · 467 阅读 · 0 评论 -
蓝桥杯 - 回文数
利用是回文数的特征,遍历即可,首数字不为0#include<cstdio>using namespace std;int main() { for(int i = 1; i <= 9; i++) { for(int j = 0; j <= 9; j++) { printf("%d%d%d%d\n", i, j, j, i); }原创 2018-01-17 18:40:05 · 317 阅读 · 0 评论 -
蓝桥杯 - 校门外的树
用数组的方法把,每一棵树的状态标记,然后根据输入操作标记即可。#include<iostream>#include<cstdio>#include<cstring>using namespace std;int arr[10005];void f(int l, int r) { for(int i = l; i <= r; i++) arr[i] = 0;}int main() {原创 2018-01-17 18:38:10 · 471 阅读 · 0 评论 -
蓝桥杯 - 黑色星期五
求输入的year一年中有多少个13号又是星期五的情形。 根据题目给出的1998年1月1日是星期四,往后推算, 要明确当前这一年是平年还是闰年,写一个函数判断 剩下的就是模拟日期的变换 today代表的是当前这个月过了几天 week代表今天是周几 ans为答案 mounth为月份 需要注意的是ans变化的时候是年份与你输入年份相同的时候#include<iostream>using n原创 2017-12-26 19:53:30 · 842 阅读 · 0 评论 -
蓝桥杯 - 暗恋
题目要求求出最大的相同数字块的大小。 首先分解问题, 1、找位置 2、判断是否是相同的 3、记录当前最大的数字块的大小首先遍历每一个位置,对于第一个位置,判断是否是一个2x2的方块,如果不是,那么继续遍历,如果是,那么判断3x3是不是,以此类推。 这样一来,我们需要做的就是写一个判断函数和记录当前最大数字块。#include<iostream>using namespace std;con原创 2017-12-26 19:52:30 · 1496 阅读 · 0 评论 -
蓝桥杯 - 学生排序
这个题就是单纯的结构体排序问题,有一个小问题就是,冒泡排序是稳定排序,是不会打乱相同大小数字的顺序的,快速排序会打乱顺序。 注意使用冒泡排序。#include<iostream>#include<algorithm>using namespace std;const int MAXN = 1005;struct node { string name; string sex;原创 2017-12-26 19:51:35 · 253 阅读 · 0 评论 -
蓝桥杯 - 区间k大数查询
给定一串数字,求固定区间的第N大数。 因为区间是固定的,是不可以预处理的,所以每有一个区间就拿出这些数字排序,然后输出第N大的数即可 memcpy(b, a+l, sizeof(int)*size); 这句的意思是:从a数组第l项开始,拿出size个数字,sizeof的意思是开辟空间,每个空间的大小为int,然后把拿出来的数字放入b数组。 cmp这个函数是定义排序的方式,是由小到大还是由大到原创 2017-12-26 19:41:21 · 417 阅读 · 0 评论 -
蓝桥杯 - 未名湖边的烦恼(递归)
这是一道递归题, 首先,如果借鞋子的人n比还鞋子的人m多的话,一定是不成立的 如果借鞋子n为0的时候那么只有一种排序方法, 那么我们可以根据这个来推出其他人数的情况 ans(m-1,n)意思是还鞋子的一个人站在最前面,之后剩下的哪些人再接着排序 ans(m,n-1) 意思是借鞋子的人站在最后面,剩下的再接着排序。#include<cstdio>using namespace std;int原创 2017-12-26 19:40:10 · 348 阅读 · 0 评论 -
第八届蓝桥杯 - 原题 + 题解
出处:http://blog.csdn.net/y1196645376/article/details/69718192题解代码+分析!!!!https://github.com/somliy/code/tree/master/%E7%AC%AC%E5%85%AB%E5%B1%8A%E8%93%9D%E6%A1%A5%E6%9D%AFB%E7%BB%84%E8%B5%9B%E9%A2%...原创 2018-01-18 21:03:32 · 2847 阅读 · 0 评论