![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
算法_王晓扬
点滴记录,智慧人生
展开
-
动态规划1----背包问题
动态规划是一个非常难啃的问题,模型就非常的多,也没有什么很固定的模板。动态规划的模型有:背包问题线性dp 区间dp 计数类dp 数位统计类dp 状态压缩类dp 树形dp 记忆化搜索其中背包问题的模型就非常之多,这篇文章记录下背包的几大类问题。一:01背包01背包的问题模型,问题如下:以上这是01背包的问题,我们思考的方式采用y总的分析法。即从状态表示和状态计算上看。以上的分析法是y总的分析套路,代码如下://二维#include<bits/stdc++.h&..原创 2022-03-30 22:23:30 · 413 阅读 · 0 评论 -
多个高精度数相(加&乘)和质数的两种重要筛法
本篇文章主要是记录一下这一周的收获。一.多个高精度相加。之前在学习高精度的时候一直不知道怎么处理多个高精度数据连续相加,然后前几天看到蓝桥杯上面有一些题目,就研究了多个高精度相加,还有就是多个高精度相乘。1.多个高精度相加#include<bits/stdc++.h>using namespace std;vector<int> add(vector<int> a,vector<int> b){ int t=0; vector&l原创 2022-03-06 09:01:23 · 394 阅读 · 2 评论 -
用sort遇到的问题
有好几次,我在遇到排序的时候,会遇见题目说,如果两个数据相等,就先输出最先输入的那个,然后看了题解,再看分析。发现sort其实是有两种的,简单的sort,还有就是stable_sort两种,而后者,是可以实现上述功能的,但是在结构体中,用的时候,有些测试点过不去,因此在写题目的时候尽量手写比较好,写法如下:struct p{ int f;//数据 int num;//输入序号,表示先后 }q[5];int cmp(p x,p y){ if(x.f==y.f) return x.原创 2021-12-05 11:33:33 · 323 阅读 · 0 评论 -
week13反思(快排,归并,二分答案)
反思:最近写题发现前面学的那些语法太长时间不看,不用,就忘了,而且,学的很浅,不能够学以致用。这周主要是快排,递归,还有二分答案的应用,但是大多数的题目都要依赖着答案才能写出来,要不然这个知识点也用不起来。最主要的还是二分答案,这个理解的太浅的话真的用不好。二分答案的话,...原创 2021-12-05 11:20:16 · 1184 阅读 · 0 评论 -
week12反思
反思:对于思维题的练习需要加强,这两周的重点也都在思维题,但是问题还是比较多的。感觉我的思维不是特别的灵活,需要多做题。此篇博客记录week11上面没有写出来的题目,还有就是本周的写的一些值得反思的题目。一:week11题1.week11思维 - Virtual Judge死亡笔记这道题,大概的意思就是一共几天时间,每页笔记可以记录多少字,然后给出每天必须写多少字,问当天要翻几页笔记。思维题,要好好想如何去记录当页剩余。和如何计数。#include<bits/stdc++...原创 2021-11-28 12:24:22 · 461 阅读 · 0 评论 -
一些小知识
总结:这周没有安排知识点的学习,然后就,好像这篇文章就没有内容写!!!就来记录一些小的知识点!!!(ps:我这不是敷衍,真的有用哎!!)小知识点一:见到一道题目,题目要求是输出日期,例如 2021-11-27 2021-02-09 2021-08-23 可以发现,对于小于10的月和日的前面需要加上一个0,如果我们不加以区分的接下来我要讲的小知识点的话,我们还有判断手动补零。知识点就是 %02d %2d %d的区别1.%02d:就是我们在输出数据的时候,如果数据正好是一个两...原创 2021-11-27 17:56:16 · 201 阅读 · 0 评论 -
week11反思
反思:这周写的题目比上周要多很多,感觉还是应该多做题,不然的话还是不太行。这篇主要是记录一下上周周赛比较好的题目,还有就是传智杯初赛的好题,好的知识点。一:week10的好题:一:week10 - Virtual Judge这道题我之所以觉得好,不是因为题目难,而是原来我没有想到的用法。就是set,其用法在我上一篇的博客有讲到。其实就是用到如何去在set中插入一个数组,还有就是set的简单运用。代码:#include<bits/stdc++.h>using na..原创 2021-11-20 21:47:06 · 883 阅读 · 0 评论 -
set&拓扑排序
这周的主要任务是学习拓扑排序,其次是补题,这个过程中的比较重要的stl是set在这里特别记录一下。然后记录这周学的最重要的算法。一:set的用法介绍set容器中的元素不会重复,当插入集合中已有的元素时,并不会插入进去,而且set容器里的元素自动从小到大排序。即:set里面的元素不重复 且有序。//头文件#include<set>//初始化定义set<int>se;set的不重复性插入在week10的比赛中运用的特别广泛,我们可以单单的插入一.原创 2021-11-20 21:02:18 · 557 阅读 · 0 评论 -
一个小细节
这周因为体测没有参加重现赛,因此比赛的记录博客仅做一个小细节记录细节来自:算法荣佬!!!!这是c++中的一个小细节,c++在使用时输入输出语句可以用cin和cout,但是会发现耗时是使用scanf和printf耗时的两倍,如何解决?在主函数里加上下面的语句就好了ios::sync_with_stdio(false)cin.tie(0);cout.tie(0);这样处理下来,时间会比scanf和printf时间还要少。还有就是最好不要使用cout<<endl;而是去使用原创 2021-11-14 11:21:21 · 855 阅读 · 0 评论 -
链表&DFS&BFS
周总结:总体上来,这周的学习内容相对来说很杂乱,也有点难,尤其是链表,模拟链表,因为是刚刚接触,所以在遇到题目的时候,首先是不会用,而且模拟链表中也还尚存着部分知识没有理解。然后牵扯到的dfs还有bfs还是没有办法灵活的运用。最近一周都没有怎么写题,感觉收获比较少,下周我希望自己能够多做一些题目,而不是单纯的学语法,因为仅仅是学习语法,我还是不能做题,而且我也发现,还是要先把基础知识要打牢。一:链表二:栈和队列三:bfs和dfs一:链表首先在链表里面如果是使用指针,一是时间会很长,二原创 2021-11-14 11:05:22 · 243 阅读 · 0 评论 -
当输入行数不定and当每行输入数据不定时
此篇用于记录困扰我几天的"世界难题"!!!1.当输入行数不定时在一道题目中,可能并不会告诉你到底让你输入多少行数据,就是让你一直处于输入状态,这有三种解决办法。第一种: int n; while(scanf("%d",&n)!=EOF) { cout<<n<<endl; } int m;第二种: while(cin>>m) { cout<<m<<endl; }第三种:原创 2021-11-02 21:51:43 · 242 阅读 · 0 评论 -
“九韶杯“记录
“九韶杯”河科院程序设计协会第一届程序设计竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com)此篇文章记录一些小但是非常致命的细节。首先是第一题,6的个数。问题是出在0%6也是0,没有直接让他等于个位数字直接等于6.其次是字符串的输入问题c++在输入时,如果在一行里面有空格,系统会默认这是两个字符串,这里的解决方式是,首先在输入的时候用getline函数,其次输入时要加getchar()题解如下#include&l原创 2021-10-29 21:22:14 · 123 阅读 · 0 评论 -
practice1--时间复杂度,快排,归并,二分,位运算,桶排
1.算法的时间复杂度,一篇推荐文章。各位学弟学妹,别再看教材了,时间复杂度看这篇就好了_帅地-CSDN博客原创 2021-09-20 20:05:20 · 184 阅读 · 0 评论 -
STL--关于stack--括号匹配
P3056 [USACO12NOV]Clumsy Cows S - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)这是关于括号匹配的一道问题。首先了解stack的基本用法。栈为数据结构的一种,是STL中实现的一个先进后出,后进先出的容器1.要使用适配器,需要加入一下头文件:#include <stack> //stack2.函数stack<类型> s;stack< int, vector<int> > stk; /..原创 2021-08-27 11:30:01 · 267 阅读 · 0 评论 -
双指针练习(1)
题目1:P1716 双调序列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)这是我第一次一次提交就满分的题目,很开心。#include<iostream>#include<algorithm>using namespace std;int a[1000];int n, m;int main(){ cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i];原创 2021-08-11 10:13:44 · 94 阅读 · 0 评论 -
二分练习(1)
题目:P2249 【深基13.例1】查找 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)题解很不错,小细节特别的多。#include<iostream>using namespace std;int n,m,q;int a[100005];int search(int target){ int left = 0; int right =n-1;//注意这个地方,决定决定着下面的输入区间和返回的mid还是mid+1 while (left &原创 2021-08-09 22:02:40 · 123 阅读 · 0 评论