
算法设计与分析
wzzc-dev
这个作者很懒,什么都没留下…
展开
-
问题 1094: 字符串的输入输出处理
问题 1094: 字符串的输入输出处理时间限制: 1Sec 内存限制: 64MB 提交: 10861 解决: 3797题目描述字符串的输入输出处理。输入第一行是一个正整数N,最大为100。之后是多行字符串(行数大于N), 每一行字符串可能含有空格,字符数不超过1000。输出先将输入中的前N行字符串(可能含有空格)原样输出,再将余下的字符串(不含有空格)以空格或回车分割依次按行输出。每...原创 2020-01-22 22:05:41 · 298 阅读 · 0 评论 -
字符串逆序
#include<bits/stdc++.h>using namespace std;int main(){ char str[100], d; int i, len, j; gets(str); len = strlen(str); cout << str; return 0;}原创 2020-01-17 21:29:21 · 222 阅读 · 0 评论 -
求n以内的素数
#include<bits/stdc++.h>using namespace std;bool fun(int n){ for(int i=n/2;i>=sqrt(n);i--){ if(n%i==0){ return false; } } return true;}int main(){ int n; cin>>n; for(int...原创 2020-01-16 20:43:32 · 214 阅读 · 0 评论 -
蓝桥杯 问题 1004: [递归]母牛的故事
问题 1004: [递归]母牛的故事时间限制: 1Sec 内存限制: 128MB 提交: 38150 解决: 11352题目描述有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?输入输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。n=0表示输...原创 2020-01-16 20:37:03 · 431 阅读 · 0 评论 -
历届试题 PREV-2 打印十字图
问题描述小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:..$$$$$$$$$$$$$....$...........$..$$$.$$$$$$$$$.$$$$...$.......$...$$.$$$.$$$$$.$$$.$$.$...$...$...$.$$.$.$$$.$.$$$.$.$$.$.$...$...$.$.$$.$.$.$$$$$.$.$.$...原创 2020-01-14 19:38:08 · 278 阅读 · 0 评论 -
历届试题 PREV-1 核桃的数量
问题描述小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:各组的核桃数量必须相同各组内必须能平分核桃(当然是不能打碎的)尽量提供满足1,2条件的最小数量(节约闹革命嘛)输入格式输入包含三个正整数a, b, c,表示每个组正在加班的人数,用空格分开(a,b,c<30)输出格式输出一个...原创 2020-01-13 19:54:28 · 194 阅读 · 0 评论 -
算法分析与设计C++ 总结(四)
第3章 递归与分治策略递归的概念直接或间接地调用自身的算法称为递归算法。用函数自身给出定义的函数称为递归函数。在计算机算法设计与分析中,使用递归技术往往使函数的定义和算法的描述简洁且易于理解。递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。注意:在使用递增归策略时,必须有一个明确的递归结束条件,称为递归出口,否则将无限进行下去(死...原创 2019-11-07 21:13:41 · 448 阅读 · 0 评论 -
算法分析与设计C++ 总结(三)
递归与分治任何一个可以用计算机求解的问题所需的计算机时间都与其规模n有关。问题的规模越小,越容易直接求解,解题所需的计算时间也就越小。例如,对于n个元素的排序问题,当n=1时,不需要任何计算;n=2时,只要作一次比较即可排好序;n=3时只要作3次比较即可…。当n较大时,问题就不那么容易处理了。要想直接解决一个规模较大的问题,有时是相当困难的。分治法的设计思想是,讲一个难以直接解决的大问题分割成一...原创 2019-11-04 19:55:56 · 394 阅读 · 0 评论 -
算法分析与设计C++ 总结(二)
矩阵连乘积问题分治递归 消耗指数时间子问题重复计算子问题个数递归 从上至下 大问题分解成小问题动态规划 自底向上 从最小子问题逐层向上合成最大问题第一步 求最小子问题 i==j第二步 2 到 n 最优的m[i,j] 求mins[i,j]...原创 2019-11-02 21:30:14 · 239 阅读 · 0 评论 -
算法分析与设计C++ 总结(一)
递推与递归递推通过计算前面的一些项来得出序列中的指定项的值如果可以找到前后过程之间的数量关系(即递推式),那么,从问题出发逐步推到已知条件,此种方法叫逆推。递归从已知问题的结果出发,用迭代表达式逐步推算出问题的开始的条件,即顺推法的逆过程,称为递归例题依次输出一个数中的每一位数例如,对于数12345,依次输出1 2 3 4 5分析:如果n/10==0,则输出n...原创 2019-10-30 19:40:34 · 535 阅读 · 0 评论 -
算法分析与设计C++ 第五章:贪心算法(背包问题和最优装载问题)
10.17记一个问题,org.springframework.jdbc.BadSqlGrammarException: ### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Undeclared variable: 2### The error may exist in file [D:\Codes\...原创 2019-10-17 21:20:45 · 1907 阅读 · 0 评论 -
算法分析与设计C++ openjudge:台阶问题
#include<stdio.h>#include<string.h>long long int dp[1005];int main(){//K=2//1 1//2 1//3 12 21 111//4 211 121 112 22 1111//5 2111 1211 1121 1112 122 212 221 1111int N,K;scanf("%...原创 2019-10-29 09:19:05 · 242 阅读 · 0 评论 -
算法分析与设计C++ 寻找中位数 (快速排序版)
总时间限制: 100ms 内存限制: 65535kB描述在N(1原创 2019-09-25 20:41:07 · 2818 阅读 · 2 评论 -
算法分析与设计 阶乘
#include<iostream>using namespace std;int factorial(int i){ if(i==0) { return 1; } else { return i * factorial(i-1); }}int main(){ cout <<...原创 2019-10-26 21:44:14 · 1523 阅读 · 0 评论 -
算法分析与设计C++ 第六章:回溯算法
以 深度优先的方式系统地搜索问题的解的方法称为回溯法。可以 系统地搜索一个问题的 所有解 或 任意解 。有许多问题,当需要找出它的解集或者要求回答什么解是满足某些约束条件的最佳解时,往往要使用回溯法。回溯法的基本做法是搜索,或是一种组织得井井有条的,能 避免不必要搜索的穷举式搜索法 。回溯算法解题思路void backtrack(int i,int n,other parameters...原创 2019-10-23 09:03:39 · 317 阅读 · 0 评论 -
算法分析与设计C++ 第五章:贪心算法
19.10.16多参数查询mybatis 实现参数查询关键点在于参数和sql语句 注意like、limit的用法在这里参数用一个Map传到mybatis Mapper文件在mapper 文件的sql书写时 传参时 出现一个问题 因为要用到 if判断 但是传过去空值时无法正确判断true或false,所以在传参之前判断是否为空值 传参就传 true或false单参数<select ...原创 2019-10-17 09:12:54 · 1142 阅读 · 0 评论 -
算法分析与设计C++ 并查集
并查集学习笔记并查集(union-find set)是一抽象数据类型。它所处理的是“集合”之间的关系,即动态地维护和处理集合元素之间复杂的关系,当给出两个元素的一个无序对(a,b)时,需要快速“合并”a和b分别所在的集合,这其间需要反复“查找”某元素所在的集合。“并”、“查”和“集”三字由此而来。合并元素所在集合、查找元素所在集合数组实现并查集支持的操作MAKE(x):建立一个新...原创 2019-10-11 20:28:54 · 1077 阅读 · 0 评论 -
算法分析与设计C++ 第一章:递推算法(附汉诺塔递归递推实现)
递归算法三:汉诺塔问题描述移动规则:每次只能移动一个圆盘;圆盘可以插在A、 B和C中的任何一个塔座上;任何时刻都不能将一个较大的圆盘压在较小的圆盘之上。分析边界条件只有一个圆环时,只需将圆环从第一座塔移到第三座塔递归条件1、从第一座塔把n-1个圆环移到第二座塔,用第三座塔做辅助2、从第一座塔把第n个圆环移到第三座塔3、从第二座塔把n-1个圆环移到第三座塔,用第一座塔做辅助代码简单汉诺塔递归实...原创 2019-09-23 22:15:50 · 1647 阅读 · 0 评论 -
算法分析与设计C++ 大整数数组汉诺塔双塔实现
利用公式a[i] = 2^i - 1.#include<iostream>#include<string.h>using namespace std;struct num{ int a[1000]; int s=1;};void Mul(num &m){ for(int j=0; j<m.s; j ){ m.a[j...原创 2019-09-24 17:41:58 · 1055 阅读 · 0 评论 -
算法设计与分析C++ 第三章: 递归与分治策略(附众数与重数 非分治实现等算法)
总时间限制: 1000ms 内存限制: 1000kB描述给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。例如,S={1,2,2,2,3,5}。多重集S的众数是2,其重数为3。对于给定的n个自然数组成的多重集S,计算S的众数及其重数 。输入输入集合大小n及n个数输出输出两行第一行为众数第二行为重数样例输入61 2 2 2 3 5样例输出23...原创 2019-09-25 08:55:29 · 1106 阅读 · 0 评论 -
算法分析与设计C++ 1:猴子吃桃
总时间限制: 1000ms 单个测试点时间限制: 100ms 内存限制: 65535kB描述猴子第一天摘下若干个桃子,当即吃了一半,好不过瘾,又多吃了一个。第二天早上又吃了剩下的桃子的一半,又多吃了一个。以后每天都吃了前一天剩下的一半零一个,到第10 天早上想再吃的时候,就剩下一个桃子。求第一天共摘多少个桃子。输入无输出第一天摘的桃子数样例输入无样例输出1534**#inc...原创 2019-09-30 20:15:56 · 1167 阅读 · 0 评论 -
算法分析与设计C++ 2:递归:爬楼梯
总时间限制: 2000ms 单个测试点时间限制: 1000ms 内存限制: 512kB描述小明爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数。例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一级,第二次走两级;也可以第一次走两级,第二次走一级,一共3种方法。输入输入包含若干行正整数,第一行正整数K代表数据组数;后面K行,每行包含一个正整数N,代表楼梯级数,1 ...原创 2019-09-30 20:19:23 · 1715 阅读 · 0 评论 -
算法分析与设计C++ 第四章:动态规划 (附4:过河卒)
总时间限制: 1000ms 内存限制: 128000kB描述棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上的某一点有一个对方的马(如C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点,如图3-1中的C点和P1,……,P8,卒不能通过对方马的控制点。棋盘用坐标表示,A点(0,0)、B点(n, m) (n,m为不超过20的整数),同样马的位置坐标...原创 2019-10-01 12:37:19 · 1476 阅读 · 0 评论 -
算法分析与设计C++ 第二章:STL
C 迭代器 容器#include<iostream>#include<string>#include<iterator>#include<map>using namespace std;int main(){ int n; while(cin>>n&&n) { map<stri...原创 2019-09-23 21:46:07 · 961 阅读 · 0 评论