自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 收藏
  • 关注

原创 蓝桥杯回文数字

#include<iostream>using namespace std;int flag=0;//表示是否输出过回文数int flag1=0;//表示是否输出AABBBBAAint in_arr[8];//存储日期int month_arr[13]={0,31,30,31,30,31,30,31,31,30,31,30,31};//存储月份bool run(int n){ return ((n%4==0&&n%100!=0)||n%400==0);

2022-04-06 22:14:04 259

原创 蓝桥杯七段码

/*先产生所有可能的序列,然后判断是否连通*//*从0000000-1111111*/#include<iostream>#include<fstream>using namespace std;int judge(int,int); void dev(int);int map[5][3]={0};int num[7]={0};int move[8][2]={ {1,1},{1,-1},{-1,-1},{-1,1},{0,1},{0,-1},{-1,0},{1

2022-04-04 20:48:52 343

原创 小兰爱跑步

/*小蓝每天跑1千米。周一或者月初(1日)要跑2千米。同时是,也是跑2千米。从2000年1月1日周六(含)到2020年10月1日周四(含)。小蓝总共跑步多少千米?*/#include<iostream>using namespace std;bool judge(int );int month[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};int main(){ int week=6;//记录星期几 int cnt=0.

2022-04-02 21:08:13 309

原创 完全背包问题

完全背包问题格式回顾题解插一嘴,这里并不一定要一个二维数组来存贮AC代码(滚动数组版)先来一个奇妙的比喻,完全背包之于0/1背包,就仿佛是apple A15之于A14。格式有n个重量和价值分别为wi,vi的物品。从这些物品中挑选出总重量不超过W的物品,求所有挑选方案中价值总和的最大值。在这里,每种物品可以挑选任意多件。回顾我们之前在解决0/1背包的时候,采用的是记忆化搜索的方式,把当前的情况存放在一个二维数组中,每当便利到这个新情况的时候,就拿当前新情况的值和之前的最优解进行比较,谁的价值更大就保

2022-02-22 15:49:06 122

原创 最长公共子序列问题——简单版

最长公共子序列什么是子序列思路AC代码字符串从0开始存储什么是子序列定义还是要搞清楚的字符串s1s2···sn的子序列可以是si1si2···sim(这里的i1,i2,im并不一定要规律递增,只要保证是递增即可,例如2,4,6,9,或1,2,3,5皆可)。区分一个概念,字串是需要连续的,子序列只要保证下标递增即可。思路不用说,隔着屏幕都能嗅到动态规划的味道。首先确定转移方程,我们用dp[m][n]这个二维数组存储每一个状态下的最大子序列的长度。dp[i][j]的定义:字符串s1 ~ si处和字

2022-02-22 15:02:17 515

原创 01背包问题——记忆化搜索的妙用

目录最基本的想法思想引申解决方案这是一道很经典的01背包问题,是有限背包。我们可以看到利用记忆化搜索的方法时间是最基本的想法#include<iostream>using namespace std;int n,W;const int MAX_SIZE=100;int w[MAX_SIZE+1],v[MAX_SIZE+1];void solve();int rec(int,int);int main(){ cin >> n >> W

2022-02-14 23:25:46 550

原创 POJ 3253

目录分析采用优先队列解决问题作者的代码模仿哈夫曼编码的方法(作者的思想,但是我写的会超时,可能是因为sort的关系,而且我的变量sum没有申明为long long int 会造成越界)AC截图![在这里插入图片描述](https://img-blog.csdnimg.cn/b4e05b537ddd457aa297bf2250ca68ec.png)分析可以用的算法,首先想到的是贪心,再想一想可以理解成哈夫曼编码因为每次砍掉的成本包含着等待被砍掉的长度。所以我们可以试想一下,如果你是伐木工,要想让成本最小

2022-02-13 00:54:38 295

原创 挑战程序设计竞赛——迷宫的最短路径

文章目录题目题解类型内存超限版本测试版采用数组记录次数版类/结构体版本All In Allset判重版Over了,还是练得不够????题目题解类型很经典的BFS模板题,最短路径大多数采用BFS解决,但是BFS的缺点是空间复杂度太大,我们必须进行剪枝操作,即标记自己已经走过的点,而且一定要注意,在入队push操作之后就可以标记自己已经走过的点了,否则后面一定会有重复的位置进入队列,从而造成内存超限。内存超限版本#include<iostream>#include<queue&

2022-02-10 14:40:30 756

原创 POJ 2386 经典的BFS/DFS

目录题意AC代码题意说白了就是检测连通性,题目给出干的地面和湿的地面。我们编写DFS检测连通性,从W进入,走过的路都标记成.,看看能进行几次DFS,就是最终答案。注意这里需要检测8个方向。AC代码#include<cstdio>void dfs(int,int);int n,m;char f[110][110];int main(){ scanf("%d %d\n",&n,&m); for(int i=0;i<n;++i){

2022-02-09 19:20:16 424

原创 在递归中记忆搜索的重要性

用斐波那契数列进行测试,计算到第50项,看看记忆化搜索和纯递归消耗的时间#include<cstdio>#include<cstdlib>#include<ctime>int Num[51];int fun1(int);int fun2(int);int main(){ int result; Num[1]=Num[2]=1; clock_t start=clock(); result=fun2(50);

2022-02-09 14:06:12 323

原创 挑战程序设计竞赛——抽签Ⅱ

目录题目解析二分查找AC代码题目解析牌的数量增加到了1000,因此如果使用四个for循环,肯定会超时,当n=1000时,我们的时间复杂度就是n^4^,肯定寄了,所以我们要对代码进行优化,想想看能不能减少一个for(),因此我们发现可以把最内层的for换成查找,这里的查找用的是二分查找,时间复杂度为logn,这样一来时间复杂度就变成了n3logn,一下子快了不少,但是这样交上去还是有问题,我们还要更快,因此,我们可以再淦掉一个for循环,因为4层for循环,内两层for循环就是用来查找是否有值等于m-

2022-02-09 12:57:02 883

原创 POJ 1853 ants

POJ ants 1853文章目录POJ ants 1853题型题解

2022-02-06 23:55:29 272

原创 C++ 指针常量/常量指针 const *point/*const point 一句话整明白

目录 精华——区分方法常量指针——const pointer指针常量——pointer to const顶层const和底层const精华——区分方法从变量名出发,自右向左看,看看是先指针还是先常量例如常量指针——const pointerint * const p变量名是p,向左看,先看到const,我们就知道p是个常量,然后再看到*,我们就知道p是个常量指针——const pointer常量指针意味着p的指向不能变,但是p指向的变量的值可以改变int a=2;int b=3;int

2022-01-29 22:20:10 2108

原创 关于C++ 中的const-member function和non-const-member function

诸位直接看图

2022-01-29 20:17:12 892

转载 计算机网络思科模拟器设置密码相关知识

https://www.cnblogs.com/qzqdy/p/8418279.html看不看随意,反正我看完直呼内行~

2021-12-24 12:52:09 615

原创 CodeUp 1928 日期差值

@TOC欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;增

2021-12-01 16:11:57 152

原创 C/C++竞赛语法入门

1、在使用scanf("%s",XXX);读取数据的时候,scanf是以读入空白为分界线,也就是说scanf是不能读入空格的。这时候我们可以用gets()来读入空格或者getchar()来接收空格。2、在输出的时候,使用puts()来输出二维数组中的一维,注意puts会自动输出一个换行符。3、在字符数组的尾部会有空字符\0,使用gets()或scanf("%s",)读入字符串时,会自动添加在输入的字符串尾部,并占用一个字符位,而puts()和printf("%s")就是通过识别末尾的空字符\0来完成输出

2021-11-18 23:12:03 560 1

原创 数据结构--多重链表--稀疏矩阵的表示方法

数据结构–多重链表–稀疏矩阵的表示方法其实画个图就理解了#include<stdio.h>#define MAXSIZE 100typedef enum{Head,Term} NodeTag;typedef int ElementType;//这个结构体用来存放非零元素的行号列号以及自生的值struct TermNode{ int Row,Col; ElementType Value;};typedef struct MNode * PtrToMNode;

2021-10-16 20:34:30 395

原创 C++ 关于常量指针(const pointer)与指针常量

#include<iostream>using namespace std;int main(){ //按照书上的标准,常量指针(const pointer)指的是这个指针是一个常量,指针常量指的是这个指针指向一个常量 //小声BB:这里可能和百度上的有出入,应该是翻译导致的,本程序依照上述定义。 typedef char* cptr; const char c1='a'; char c2='a'; //下面两行写法不同,但是表示的意义相同

2021-10-08 09:11:13 360

原创 梯度下降法

文章目录梯度下降梯度下降这样之后我们已经有了原始数据y_hat和y然后先对损失函数求梯度,从下图我们可以看出是对梯度求和,而不是对原始数据求和以后再求梯度。我们先对损失函数求偏导,然后将数据代入就能得到衡量系统判断优劣的损失值这里的求梯度,假设我现在有10组数据代价函数如上图,先对代价函数求偏导,平方求导得到的2巧妙地和前面的1/2相消,我们得到的导函数为:对于w1:对于w2:对于b:由此可见,对于不同变量的偏导函数的形式由原函数决定这里的i代表数据索引,我们现在有10组数

2021-06-03 10:21:42 112

原创 hdu2648——map的使用

文章目录题目流程图数据结构细节代码AC图片题目有n家商店,其中有一家叫做memory的商店,每家商店每天上涨一些价格,连续m天,请你输出memory商店每天的涨价排名。流程图1、读入n家商店名称2、读入持续天数3、将所有的数据存放到map中4、通过vector里的店名,逐个寻找大于memory的值5、输出memory的排名数据结构n家商店名称放在vector里面每天每家店的涨价存放在map里面细节每个商店的涨价是累加的,论看题和英语的重要性代码#include<iostr

2021-05-13 14:26:57 279

原创 hdu2094——set的应用

题目n场比赛,每场比赛对应为一行输出,格式为A队战胜B队,经历过n场比赛,请判断是否有冠军产生。算法由题意得但凡是输过的队伍都不能作为冠军,我们只需要把所有队伍放进一个集合,再把比赛失败的队伍放入另一个集合,当全部比赛结束后,比较两个集合的大小,如果A-B=1,说明已经产生冠军了,如果=0则没有冠军,如果>1则说明冠军还未产生。数据结构放入set中进行代码#include<iostream>#include<string>#include<set>

2021-05-13 13:39:19 91

原创 hdu1276——双向链表List的使用

文章目录题目数据结构算法细节代码题目给定人数,从1-2报数,报到2的人出列,再从1-3报数,报到3的人出列,如此循环往复,知道队伍中的总人数小于三。数据结构使用双向链表存放,满足双向链表的特点:插入删除操作频繁随机访问较少算法当List.size()>3时继续循环,使用flag来标记当前报数种类。停止循环后输出。每次删除前先计算一共会进行多少次删除操作如果flag=2的话,每进行一次删除操作(假设现在删除的是第i位),后一位就会前进一位来填补空缺,我们下一位要删除的便是i+1

2021-05-13 13:11:17 208

原创 HDU1003——在线处理

文章目录题目流程图算法代码细节题目寻找最大字串和咋一看是水题,但是这里介绍一种算法,叫做在线处理算法流程图1、读入测试用例数量2、读入当前行数字数量3、看每个数字的贡献值算法用sum储存每次的和,用 max储存最大值,用start记录开始位置,用end记录结束位置。每次数字加和,得到新的sum,和max进行比较,若sum>max,则更新max的值,若sum<max,则继续向后加,但是这是必须保证sum>=0,因为如果sum<0,不管后面如果sum>0就继续向

2021-05-12 23:31:53 122 2

原创 hdu1873——优先队列(priority_queue)的使用

文章目录题目算法代码题目为什么会想到使用优先队列来处理问题呢?因为首先涉及到优先级比较的问题,第二又涉及到入队先后的问题,那么采用优先队列无疑是最优解。算法主要是优先队列的自定义排序大于和小于是相反的代码#include<iostream>#include<string>#include<queue>using namespace std;struct node{ int num;//病人的编号,编号越小,来的越早 int pri

2021-05-12 19:50:46 248

原创 hdu1702——queue和stack的使用

文章目录题目流程图数据结构代码题目给你一个规则以及一些指令和数字,按照规则遵循指令,输出数字,若指令数量>数字数量,则在数字全部输出后输出None流程图1、读入测试个数2、读入行数和规则3、选择相应数据结构4、读入指令和数字5、判断指令并输出数据结构当指令为FIFO时,选择队列存储当指令为FILO时,选择栈存储代码#include<iostream>#include<string>#include<stack>#include<

2021-05-12 18:53:49 187

原创 hdu1020——使用stack解决

文章目录题目目的流程图数据结构算法代码AC截图题目上链接给你一个字符串,里面有重复的字符,然后你要输出字符串中有哪些字符,每个字符重复了几次。目的累加,读取笔者的目的是联系stack的使用,以下解法属于舍近求远。流程图1、读入测试数量2、定义结构体,字符域和数字域,分别用来存储当前字符和出现的次数3、输出结果数据结构栈算法由于使用栈进行存储,所以读入以后先将字符串翻转然后开始匹配,如果是新的字符,就压入栈中,如果不是就次数++代码#include<iostream&

2021-05-12 18:25:47 191

原创 HDU1237——stack的应用、逆波兰数

文章目录题目解法题目简单计算机,也不算难吧,但是有些坑,不仔细的话要de好久的bug上链接解法笔者的想法是用两个栈,分别存储数字和运算符~建议如果不太明白的话,可以搜索一下逆波兰数~废话不多说,上代码!#include<iostream>#include<string>#include<stack>using namespace std;bool cmp(char,char);double compute(double,double,char)

2021-05-12 13:15:05 126

原创 HDU1062——stack的应用

文章目录题目解法题目上链接解法//翻转字符串#include<iostream>#include<algorithm>#include<string>#include<stack>using namespace std;int main(){ int n; cin >>n; getchar(); while(n--){ stack<char>s; c

2021-05-11 19:44:38 104

原创 hdu4841——圆桌问题(Vector的使用)

文章目录题目思考题目圆桌上围坐着2n个人。其中n个人是好人,另外n个人是坏人。如果从第一个人开始数数,数到第m个人,则立即处死该人;然后从被处死的人之后开始数数,再将数到的第m个人处死……依此方法不断处死围坐在圆桌上的人。试问预先应如何安排这些好人与坏人的座位,能使得在处死n个人之后,圆桌上围坐的剩余的n个人全是好人。链接思考就是普通的圆桌问题,但是如果用静态数组来做的话,很难表现出把坏人踢出去这一操作,所以采用动态数组可以生动形象的踢人。注释我写的还是比较详细了~/*圆桌上围坐着2n个人。

2021-05-11 19:19:37 891

原创 C++ STL Vector常用操作集合

#include<iostream>#include<algorithm>#include<vector>using namespace std;int main(){ vector<int>a; for(int i=0;i<10;i++){ a.push_back(i);//在链栈的尾部插入一个元素 } a.pop_back();//删除尾部元素 a.erase(a.begin()+1);//删除单个元素

2021-05-10 19:20:18 143

转载 辗转相除法(采用递归)

int gcd(int a,int b){ if(a%b==0) return b; else return gcd(b,a%b);}这样写不用比较a和b的大小,也不用每次除完都对a和b重新赋值,太强了~作者是:元气算法链接:link

2021-05-06 20:20:41 882

原创 蓝桥杯——密码发生器

题目在对银行账户等重要权限设置密码的时候,我们常常遇到这样的烦恼:如果为了好记用生日吧,容易被破解,不安全;如果设置不好记的密码,又担心自己也会忘记;如果写在纸上,担心纸张被别人发现或弄丢了…。这个程序的任务就是把一串拼音字母转换为6位数字(密码),我们可以使用任何好记的拼音串(比如名字,王喜明,就写:wangximing)作为输入,程序输出6位数字。变换的过程如下:第1步:把字符串6个一组折叠起来,比如wangximing则变为:wangximing第2步:把所有垂直在同一个位置的字符的asc

2021-04-27 15:47:42 351

原创 蓝桥杯——奇怪的比赛

题目奇怪的比赛某电视台举办了低碳生活大奖赛。题目的计分规则相当奇怪:每位选手需要回答10个问题(其编号为1到10)越后面越有难度。答对的,当前分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理)每位选手的起步分都是10分,某获胜选手最终得分刚好是100分如果不让你看比赛过程,你能推断出他(她)哪个题目答对了哪个题目答错了吗?如果把答对的记为1,答错的记为0则10个题目的回答情况可用仅含1和0的串来表示如0010110011就是可能的情况。你的任务是算出所有可

2021-04-26 21:32:05 654

原创 蓝桥杯——比酒量

题目比酒量有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复----直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。当第4瓶酒平分喝下后,大家都倒下了。等船长醒来,发现海盗船搁浅了。他在航海日志中写到:“…昨天,我正好喝了一瓶…奉劝大家,开船不喝酒,喝酒别开船…”请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人。如果有多个可能的答案,请列出所有答案,每个答案占一行。格式是:人

2021-04-26 20:11:57 253 1

原创 蓝桥杯——古堡算式

题目古堡算式福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE*?=EDCBA他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”华生:“我猜也是!”,于是,两人沉默了好久,还是没有算出合适的结果来。请你利用计算机的优势,找到破解的答案,把ABCDE所代表的数字写出来。解法其实看到最后一句话,大家应该心知肚明了,暴力杯嘛,暴搜就完事儿了,所以解决这个很简单,详见代码/*古堡算式 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE*?=EDCBA他对

2021-04-26 19:49:25 339

原创 next_permutation && prev_permutation in C++

这个是C++里面用于生成全排列的函数很好用,不仅能对数组进行全排列,还能对字符串进行全排列,但是必须保证字符串内的数组是有序的。当然,我们也可以用sort对字符串内的字符进行排序#include<iostream>#include<algorithm>#include<string>using namespace std;int main(){ string s; s="213"; sort(s.begin(),s.end()); do{ co

2021-04-26 19:44:52 75

原创 蓝桥杯——细菌分裂

文章目录题目思路题目假设有两种微生物X和YX出生后每隔3分钟分裂一次(数目加倍)Y出生后每隔2分钟分裂一次(数目加倍)一个新出生的X,半分钟之后吃掉1个Y,且从此开始每隔1分钟吃掉1个Y已知新出生的X=10,Y=89,求60分钟后Y的数目。若X=10,Y=90呢?本题的要求就是写出这两种初始条件下,60分钟后Y的数目。题目的结果令你震惊吗?这不是简单的数字游戏!真实的生物圈有着同样脆弱的性质!也许因为你消灭的那只Y就是最终导致Y种群灭绝的最后一根稻草!思路首先进行模拟,x和y之间

2021-04-26 19:14:16 674

原创 蓝桥杯——等差素数列

文章目录题目解法题目解法首先先对素数进行打表,把1e5内的所有素数都求出来,然后开始寻找,外层循环控制变量,内层循环控制第一个素数,再来个计数器,当循环走完计数器等于10时,输出公差,结束。上代码#include<iostream>#include<cstring>using namespace std;const int NUM=(int)1e5;bool not_prime[NUM];void init();int main(){ init();

2021-04-25 18:21:17 211

原创 图论学习笔记——链式前向星——永远滴神

文章目录图的存储邻接矩阵(方阵)邻接表前向星构造前向星前向星的PRO——PLUS——ULTRA:链式前向星图的存储邻接矩阵(方阵)比较简单,没啥可说的邻接表考虑三种可能把每个链表的表头放在一个链表中(链表+链表)把每个链表的表头放在一个数组中(数组+链表)作用:表示一张图中两顶点之间的关系,用1表示前向星假设有那么一张有向图,一种数据结构,以储存边的方式来存储图。构造方法如下:读入每条边的信息,将边存放在数组中,把数组中的边按照起点顺序排序(可以使用基数排序,如下面例程),前向星

2021-04-20 21:58:04 186

空空如也

空空如也

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

TA关注的人

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