自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

2020

1997/10/21 11:21AM

  • 博客(78)
  • 资源 (2)
  • 收藏
  • 关注

原创 动态规划实战练习3-分蛋糕

动态规划实战练习3-分蛋糕原题摘录-初步分析仔细阅读-进一步理解题意决胜之战-确定数据结构和算法编写主要代码-搭好框架原题摘录-初步分析通读之后,大致意思就是将一个矩形蛋糕切成有限个矩形小蛋糕,给定你长宽和切之后小蛋糕的块数,让你找到一种切法,使得m块小蛋糕中最大的那块蛋糕的底面积(朝向我们的)最小.仔细阅读-进一步理解题意第二遍读题,更深入的理解问题,其实就是获得更加细节的问题.什么教...

2020-04-05 23:05:51 2667 1

原创 完全背包,0-1背包实战

完全背包,0-1背包实战完全背包原题摘录简要解析0-1背包原题摘录简要解析完全背包浅解:就是必须将背包装满原题摘录简要解析显然,这是一个完全背包问题.问题就是挑选物品,把总体积凑成40有多少种凑法?枚举显然不行.因为枚举每个物品选还是不选,有2^20种.先可以尝试使用递归的思想.递归是很多思想的一个起点.也最容易想到.以及从他出发优化出更好的办法.把ways(int w,int k...

2020-04-02 21:44:32 354

原创 动态规划实战练习2-滑雪

动态规划实战练习2-滑雪原题摘录-初步分析仔细阅读-进一步理解题意决胜之战-确定数据结构和算法编写伪代码-搭好框架正式编程-测试完善原题摘录-初步分析通读之后,大致意思就是就是让你求出一条最长的高度连续降低的路径,且只能往与他本身相邻的路径上走.仔细阅读-进一步理解题意第二遍读题,更深入的理解问题,其实就是获得更加细节的问题,往相邻的方向上走就是往上下左右四个方向上走.而且若同时存在几个...

2020-03-31 16:13:06 517

原创 动态规划实战练习1-Help Jimmy

动态规划实战练习1-Help Jimmy原题摘录-初步分析仔细阅读-进一步理解题意决胜之战-确定数据结构和算法编写伪代码-搭好框架正式编程-测试完善原题摘录-初步分析一只老鼠,在一个初始高点通过中间的平台一步步往下跳,到地面就算成功.需要我们计算出最小花费的时间,由于速度一定,其实就是一个最短路径的问题.仔细阅读-进一步理解题意第二遍读题,更深入的理解问题,其实就是获得更加细节的问题.速...

2020-03-29 17:34:39 310

原创 非常详细的原版实验报告-Oracle数据库建立

Oracle数据库管理实 验 报 告实验名称:____ Oracle数据库建立_学 院:_____ 信息工程学院_______专 业:___ _计算机科学与技术__ _班 级:_____计科173__ _________实验日期:__ 2020-03-12________指导教师:________刘勇__________信息工程学院计...

2020-03-16 14:15:42 4141

原创 枚举详解

在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。 尽管枚举偏暴力,但其往往不用太动脑筋,简单直白.而且即使采用这种暴力方法求解问题,对问题的一定分析往往会让算法简洁高效. 1.简单的枚举以除法(UVa725)和最大乘积(UVa 11059)为例.来说明枚举也不可简单.也有很多需要注意的地方需要领会学习...

2020-03-11 21:47:56 260

原创 动态规划初步

动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision process)的优化问题时,提出了著名的最优化原理(principle of optimality),把多阶段过程转化为一系列单阶段问题,利用各阶...

2020-03-11 18:59:15 217

原创 再谈递归

我们知道其实所有循环都可以通过递归实现.在有些函数式语言中并没有循环的概念,如Haskell和Scheme里既没有for循环,也没有while循环,只能使用递归。我们通过以下例子来说明:1.数组求和int arr[6]={1,22,33,11,5,6};int RA(int n){ if(n==0) return arr[0]; else return RA(n-1)+...

2020-03-10 21:10:00 175

原创 浅谈AC中的抽象思维-P1067多项式输出

题目链接:https://www.luogu.com.cn/problem/P1067显然这道题是一道水题.但往往水题的解法可以看出解题人的水平.在讨论之前,我们先看看此题的两种AC代码:代码一:#include<bits/stdc++.h>using namespace std; int main(){ string str=""; int n,m; c...

2020-03-07 14:11:21 263

原创 浅谈递归

"一个函数调用其自身,就是递归."递归的概念简单的有点让人摸不着头脑.我们知道一个函数本质上是为了能够让调用者通过传递一个口令(也即参数),让其实现一个固定的功能.那么递归就是自己既充当了主人,又充当了仆人的角色.他通过不断的使用同一个功能来解决问题,直到取得突破点.这个突破点往往是一些隐藏的已知条件.同时不难发现一般这样的问题可以划分为能用同一个功能完成的有限个子问题.例如求5的阶乘...

2020-03-03 17:07:17 328

原创 排序算法5——归并排序简析

排序任务可分为:1.把前一半排序.2.把后一半排序.(在这前两步用到递归,不在解释.)3.把两半归并成新的有序数组.拷贝回原数组,排序完成.#include<iostream>#include<map>using namespace std;int a[10]={12,1,23,14,55,6,88,34,100,37};int b[10];v...

2020-02-14 20:09:05 229

原创 十六进制转八进制算法

两种解法:都需要中转一次第一种:十六转十,十转八.由于执行多次循环,当数据很大时,超时.#include<iostream>#include<string>using namespace std;long long lc(int a,int n){ long long sum=1; for(int i=0;i<n;i++) sum=s...

2019-10-31 20:34:16 3424

原创 悬挂访问

产生在实际使用过程中,有时会因为用户申请了空间,但是在使用完成后没有向系统发出释放的指令,导致存储空间既没有被使用也没有被回收,变为了无用单元或者会产生悬挂访问的问题。例子假设使用 malloc 申请了一块存储空间,有多个指针同时指向这块空间,当其中一个指针完成使命后,私自将该存储空间使用 free 释放掉,导致其他指针处于悬空状态,如果释放掉的空间被再分配后,再通过之前的指针访问,就...

2019-09-03 22:28:31 402

原创 排序算法4——简单选择排序简析

简介简单选择排序是一种选择排序。在简单选择排序过程中,所需移动记录的次数比较少选择排序:每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止思想(1)从待排序序列中,找到关键字最小的元素;(2)如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换;(3)从余下的N - 1个元素中,找出关键字最小的元素,重复(1)、(2)步...

2019-08-18 15:49:40 817

原创 排序算法3——直接插入排序简析

简介直接插入排序是一种最简单的插入排序。插入排序:每一趟将一个待排序的记录,按照其关键字的大小插入到有序队列的合适位置里,直到全部插入完成。百度百科思想例:原始数据4,2,5,3,2.5插入排序 4 2 4 2 4 5 2 3 4 5 ...

2019-08-18 11:51:44 419

原创 排序算法2——冒泡排序简析

简介冒泡排序是一种交换排序。什么是交换排序呢?交换排序:两两比较待排序的关键字,并交换不满足次序要求的那对数,直到整个表都满足次序要求为止。前一篇的快速排序也是一种交换排序.百度百科思想它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素...

2019-08-18 10:24:00 539

原创 排序算法1——快速排序简析

简介对于包含n个数的输入数组来说,快速排序是一种最坏情况时间复杂度为O(n^2)的排序算法.虽然最坏情况时间复杂度很差.但是快速排序通常是实际排序中应用中最好的选择,因为他的平均性能非常好.他的期望复杂度为O(nlgn).常见的数据排序算法有冒泡排序、堆排序、简单选择排序,归并排序,插入排序等等,各个适用范围不同,快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过...

2019-08-18 09:27:07 230

原创 DES加密与解密原理及C++代码实现

一.DES算法简介DES(Data Encryption Standard)是目前最为流行的加密算法之一。对称性:DES是对称的,也就是说它使用同一个密钥来加密和解密数据。与此相对的是RSA加密算法,是一种非对称加密算法分组性:DES还是一种分组加密算法,该算法每次处理固定长度的数据段,称之为分组。DES分组的大小是64位,如果加密的数据长度不是64位的倍数,可以按照某种具体的规则来填...

2019-08-17 20:21:13 50942 18

原创 分数拆分(Fractions Again,Uva 10976)

原题摘录输入正整数k,找到所有的正整数x>=y,使得1/k=1/x+1/y.样例输入输出见文章最后.题目分析枚举对象为找出所有对应的x,y.那么问题在于没有终止条件无休无止的穷举下去肯定不是办法.注意审题可知:x,y,k均为正整数,x>=y则1/x<=1/y则1/k-1/y<=1/y故y<=2k.至此我们就可以根据y计算出x1....

2019-08-15 18:13:39 338

原创 最大乘积(Maximum Product,Uva 11059)

原题摘录输入n个元素组成的序列S,你需要找出一个乘积最大的连续子序列.如果这个最大的乘积不是正数,输出0.(1<=n<=18,-10<=Si<=10).样例输入32 4 -352 5 -1 2 -1样例输出820分析连续子序列有两个要素:起点和终点,因此只需枚举起点和终点即可.由于每个元素的绝对值不超过10,且不超过18个元素,最...

2019-08-14 20:41:54 505

原创 木块问题(The Blocks Problem,Uva 101)

原题摘录输入n,得到编号为0~n-1的木块,分别摆放在顺序排列编号为0~n-1的位置。现对这些木块进行操作,操作分为四种。1、move a onto b:把木块a、b上的木块放回各自的原位,再把a放到b上;2、move a over b:把a上的木块放回各自的原位,再把a发到含b的堆上;3、pile a onto b:把b上的木块放回各自的原位,再把a连同a上的木块移到b上;4...

2019-08-14 18:56:11 956 1

原创 堆(heap)/C++

1.解释:在这里“堆”是一种特殊的树形数据结构,它满足堆的特性:父节点的值一定不大于或不小于子节点的值。堆被认为在计算机算法中起到重要作用,并被用于各种编程语言,例如c++、Java等中。 百度百科堆(英语:Heap)是计算机科学中的一种特别的树状数据结构。若是满足以下特性,即可称为堆:“给定堆中任意节点P和C,若P是C的母节点,那么P的值会小于等于(或大于等于)C的值”。若...

2019-08-09 10:11:52 495

原创 优先队列详解/C++

优先队列1.概念:什么是优先队列呢?在优先队列中,元素被赋予优先级,当访问元素时,具有最高级优先级的元素先被访问。即优先队列具有最高级先出的行为特征。它可以说是队列和排序的完美结合体,不仅可以存储数据,还可以将这些数据按照我们设定的规则进行排序。2.定义:优先队列在头文件#include <queue>中;其声明格式为:priority_queue <int> a...

2019-08-09 08:49:44 13829 1

原创 队列详解/C++

队列1.定义队列:queue<Type> q;2.队列规则:FIFO(first in first out)后进先出,限定只能在栈顶进行插入和删除操作3.队列操作:PUSH入队,POP弹栈出队,FRONT取队首元素(不是删除),BACK取队尾元素(不是删除),SIZE队列元素个数,EMPTY判空用几行代码测试以下这几个基本操作:#include <ccty...

2019-08-06 20:11:47 2312 3

原创 栈详解/C++

STL提供三种特殊的数据结构:栈,队列与优先队列.接下来分三篇一一详述栈1.定义栈:stack<Type> s;2.栈规则:LIFO(last in first out)后进先出,限定只能在栈顶进行插入和删除操作3.栈操作:PUSH压栈,POP弹栈(从栈顶把元素弹出),TOP取栈顶元素(不是删除),SIZE栈元素个数,EMPTY判空用几行代码测试以下这几个基本操作...

2019-08-06 17:46:50 316

原创 List, Vector, Map, Set用法详解

~FIRSTList与VectorList封装了链表,Vector封装了数组, list和vector得最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[]。Vector对于随机访问的速度很快,但是对于插入尤其是在头部插入元素速度很慢,在尾部插入速度很快。List对于随机访问速度慢得多,因为可能要遍历整个链表才能做到,但是对于...

2019-08-06 11:39:57 621

原创 简单的二维码识别

环境:vs2019+openCV4.0.1代码:#include <iostream>#include <opencv2/highgui.hpp>#include <opencv2/core.hpp>#include <opencv2/imgcodecs.hpp>#include <opencv2/opencv.hpp>...

2019-08-04 17:43:49 848

原创 VS2019+opencv4.0.1安装配置详解及填坑(win10)

1.下载(github+迅雷)https://github.com/opencv/opencv/releases/download/4.0.1/opencv-4.0.1-vc14_vc15.exe复制此链接到迅雷下载,这是windows版,要不然会非常慢.其他版本:https://github.com/opencv/opencv/releases2. 安装opencv双击下...

2019-08-04 10:07:10 14919 28

原创 前导0的处理

一.概念前导0:整型数字前面的0,对数字的值来说没有意义.注1:int a=01;直接复制错误,数字无效.但可以输入,参与计算,输出(前导0被忽略)注2:%5d,前导0占位二.应用1.除法(Division,UVa 725)为例输入正整数n,按从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a-j恰好为数字0-9的一个排列(可以有前导0),2&lt...

2019-08-01 18:04:49 13278

原创 除法(Division,UVa 725)

原题描述:输入正整数n,按从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a-j恰好为数字0-9的一个排列(可以有前导0),2<=n<=79.样例输入:62样例输出:79546 / 01283 = 6294736 / 01528 = 62分析:不用枚举0-9的所有排列,只需枚举其中一个,已知的是除法的结果,相乘或相除即可得到另一个....

2019-08-01 17:46:48 755

原创 c++/sort函数的使用

关于sort函数的使用场景有很多,下面主要总结常用的几种.需要头文件<algorithm>语法描述:sort(begin,end,cmp),cmp参数可以没有,如果没有默认非降序排序。1.以int为例的基本数据类型的sort使用#include<iostream>#include<algorithm>#include<cstring&...

2019-08-01 10:25:37 665

原创 追踪电子表格中的单元格(Spreadsheet Tracking ACM/ICPC World Finals1997,UVa512)

解决本题最直接的思路是:先模拟增删交换操作,算出最后电子表格的状态,然后执行每次查询.这种方法不仅效率低而且不容易理解另一种思路,直接追踪要查询的单元格,不用关心整个单元格的变化.详细注释完整代码:#include <cstdio>#include <cstring>#include <cmath>#include <cctype&gt...

2019-07-28 10:51:04 357

原创 信息解码(Message Decoding,ACM/ICPC World Finals1991,UVa 213)-getchar()巧妙处理二进制串

关于本篇请先看:关于getchar()的基本知识及理解见:https://blog.csdn.net/a22222259/article/details/95999502原题摘录:对于下面这个字符串:0,00,01,10,000,001,010,011…….首先是长度为1的串,然后是长度为2的串,以此类推。不存在全为1的串。你的任务是编写一个程序。首先输入一个代码头(例如AB#TAN...

2019-07-15 22:40:38 237

原创 for(;;)和while(true)的区别

“死循环”有两种写法:for(;;)和while(true)源码中多数是for( ; ; )这种形式的.区别:总结:for (;;):1.指令少2.不占用寄存器3.没有判断跳转,并不是不能跳出也就是说两者在在宏观上完全一样的逻辑,但是底层完全不一样,for相对于来说更加简洁明了。#include <cstdio>#include <cstring&...

2019-07-15 19:53:35 4255 3

原创 getchar()详解及跨行读字符的解决办法

getchar是读入函数的一种。它从标准输入里读取下一个字符,相当于getc(stdin)。返回类型为int型,为用户输入的ASCII码或EOF(EOF是文件结尾标志).一个常见的应用是以这个函数为结尾,以防止窗口的闪退(不用system("pause"))getchar有一个int型的返回值。当程序调用getchar时.程序就等着用户按键。用户输入的字符被存放在键盘缓冲区中。直到用户按回...

2019-07-15 19:13:27 1856

原创 纵横字谜的答案(Crossword Answers,ACM/ICPC World Finals 1994,UVa232)-位置的移动处理

原题摘录:输入输出规范见文章最后.解释分析:1.建立坐标和向量的结构方便进行位置的移动处理.2.通过向量的计算来读取所有单词,简化代码的复杂度,向量加法自定义,p=p+dRight,left=p+dLeft等;3.Point向量eigible存放所有单词的起始点坐标int向量across,down存放横向单词和纵向单词的起始点坐标对应的编号4.内联函数:为了解决频繁...

2019-07-14 20:51:28 453

原创 刘汝佳第二版算法竞赛入门经典-第三章数组和字符串习题答案(完整版)

习题共有12个,第一个题为得分(Score,ACM/ICPC Seoul 2005,UVa1585)3-1#include <stdio.h>#include <string.h>#define maxn 80+1int main(int argc, char** argv){ char buf[maxn]; scanf("%s",buf); int...

2019-07-14 19:35:08 658

原创 子序列(All in All,UVa10340)-比对中的循环之美

题目概述:输入两个字符串s,t.判断是否可以从t中删除0个或多个字符(其它字符顺序不变),得到字符串s.例如,abcde可以得到bce,而不能得到dc.分析:两个字符串之间进行比对,肯定用到循环.下图模拟了整个对比过程,看完之后再编码想必已经很清晰了.可见外层循环也就是i的终止条件为字符串s的长度.而且是两个字符串都必须递增,任何一个都不能回头(题意).内层循环取决于对...

2019-07-12 22:16:09 307

原创 谜题 (Puzzle, ACM/ICPC World Finals 1993, UVa227)-移动之美

从编程角度,个人认为移动的实质就是点与点之间连续的位置交换所形成的假象.原题摘录:谜题 (Puzzle, ACM/ICPC World Finals 1993, UVa227)有一个5*5的网格,其中恰好有一个格子是空的,其他格子各有一个字母。一共有4种指令:A, B, L, R,分别表示把空格上、下、左、右的相邻字母移到空格中。输入初始网格和指令序列(以数字0结束),输出指令执行完...

2019-07-12 19:25:49 373

原创 Map查重-循环小数

原题摘录:循环小数(Repeating Decimals,ACM/ICPC World Finals 1990,UVa202)输入整数a[0,3000]和b[1,3000],输出a/b的循环小数以及其循环节长度.例如a=5,b=43,小数表示为0.(116279069767441860465),循环节长度为21.本题实际上是模拟长除法的计算过程,其中每一次除法时都有被除数和余数,...

2019-07-11 22:52:52 642

C++生成二维码源代码DLL文件加测试文件

内含详细注释,条例清晰,你值得拥有C++生成二维码源代码DLL文件加测试文件

2019-09-26

QRGenerator.rar

C++源码二维码生成,内有详细注释!!!!!!!!

2019-09-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除