![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
蓝桥杯
CrzayCodess
本人在河海大学读本科,正在学习计算机
展开
-
史丰收速算
史丰收速算法的革命性贡献是:从高位算起,预测进位。不需要九九表,彻底颠覆了传统手算!速算的核心基础是:1位数乘以多位数的乘法。其中,乘以7是最复杂的,就以它为例。因为,1/7 是个循环小数:0.142857...,如果多位数超过 142857...,就要进1同理,2/7, 3/7, ... 6/7 也都是类似的循环小数,多位数超过 n/7,就要进n下面的程序模拟了史丰收速算法中乘以7的运算过程。乘以原创 2016-03-15 23:57:54 · 2804 阅读 · 0 评论 -
逆波兰表达式(前缀表达式)
正常的表达式称为中缀表达式,运算符在中间,主要是给人阅读的,机器求解并不方便。例如:3 + 5 * (2 + 6) - 1而且,常常需要用括号来改变运算次序。相反,如果使用逆波兰表达式(前缀表达式)表示,上面的算式则表示为:- + 3 * 5 + 2 6 1不再需要括号,机器可以用递归的方法很方便地求解。为了简便,我们假设:1. 只有 + - * 三种运算符2. 每个运算数都是一个小于10的非负整原创 2016-03-19 16:12:21 · 1033 阅读 · 0 评论 -
前缀判断
如下的代码判断 needle_start指向的串是否为haystack_start指向的串的前缀,如不是,则返回NULL。比如:"abcd1234" 就包含了 "abc" 为前缀#include<iostream>#include<cstdio>#include<cmath>using namespace std;// haystack_start位整串, needle_start为前缀原创 2016-03-19 15:35:10 · 972 阅读 · 0 评论 -
求两个字符串的最长公共子序列的数量
一个串的子串是指该串的一个连续的局部。如果不要求连续,则可称为它的子序列。 比如对串: “abcdefg” 而言,”ab”,”abd”,”bdef” 等都是它的子序列。 特别地,一个串本身,以及空串也是它的子序列。 对两个串而言,可以有许多的共同的子序列,我们关心的是:它们所共同拥有的长度最大的子序列是多长。 代码如下:#include<iostream>#include<cstdio>原创 2016-03-19 12:13:20 · 1022 阅读 · 0 评论 -
算日期模板
输入开始日期比如2016 3 18,然后输入经过天数比如1000,然后程序输出经过1000天后的日期。代码如下:#include<iostream>#include<cstdio>using namespace std;int main(){ int year,month,day,sum; int days[13]={0,31,28,31,30,31,30,31,31,30,3原创 2016-03-18 21:07:33 · 413 阅读 · 1 评论 -
蓝桥杯—地宫取宝
X 国王有一个地宫宝库。是 n x m 个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。地宫的入口在左上角,出口在右下角。小明被带到地宫的入口,国王要求他只能向右或向下行走。走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。当小明走到出口时,如果他手中的宝贝恰好是k件,则这些宝贝就可以送给小明。请你帮小明算一算,在给定的局面下,他有多少原创 2016-03-18 18:40:10 · 1283 阅读 · 0 评论 -
蓝桥杯-蚂蚁感冒
题目:长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。【数据格式】第一行输入一个整数n (1 < n < 50), 表示蚂蚁的总数。接着的一行是原创 2016-03-18 01:08:10 · 380 阅读 · 0 评论 -
扑克序列
A A 2 2 3 3 4 4, 一共4对扑克牌。请你把它们排成一行。要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌。请填写出所有符合要求的排列中,字典序最小的那个。例如:22AA3344 比 A2A23344 字典序小。当然,它们都不是满足要求的答案。请通过浏览器提交答案。“A”一定不要用小写字母a,也不要用“1”代替。字符间一定不要留空格。#includ原创 2016-03-17 21:49:23 · 522 阅读 · 0 评论 -
手链样式( 使用全排列函数next_permutation)
原题:手链样式小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙。 他想用它们串成一圈作为手链,送给女朋友。 现在小明想知道:如果考虑手链可以随意转动或翻转,一共可以有多少不同的组合样式呢?请你提交该整数。不要填写任何多余的内容或说明性的文字。 #include <iostream> #include <cstdio> #include <cstring> #in转载 2016-03-14 16:19:29 · 1278 阅读 · 0 评论 -
锦标赛(n个数中求第一和第二大的数)
如果要在n个数据中挑选出第一大和第二大的数据(要求输出数据所在位置和值),使用什么方法比较的次数最少?我们可以从体育锦标赛中受到启发。如图【1.png】所示,8个选手的锦标赛,先两两捉对比拼,淘汰一半。优胜者再两两比拼…直到决出第一名。第一名输出后,只要对黄色标示的位置重新比赛即可。下面的代码实现了这个算法(假设数据中没有相同值)。代码中需要用一个数组来表示图中的树(注意,这是个满二叉树,不足需要补原创 2016-03-17 16:36:52 · 4095 阅读 · 0 评论 -
手写快速排序
快速排序 排序在各种场合经常被用到。 快速排序是十分常用的高效率的算法。其思想是:先选一个“标尺”, 用它把整个队列过一遍筛子, 以保证:其左边的元素都不大于它,其右边的元素都不小于它。这样,排序问题就被分割为两个子区间。 再分别对子区间排序就可以了。 主要思想:先选择第一个数字作为标尺,然后分别从第二个数字往右找,找到比第一个数大的数,和从倒数第一个数字往左找,找到比第一个数小的数,然原创 2016-03-23 00:20:10 · 1573 阅读 · 0 评论