自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 信息学奥赛一本通网站1672:游戏通关

信息学奥赛一本通网站1672:游戏通关

2022-12-18 20:17:48 463 1

原创 算法随笔——尺取法(双指针Tow Point)

引例1.题解报告2第四题https://blog.csdn.net/weixin_41568030/article/details/1202780522.题解报告3第四题https://blog.csdn.net/weixin_41568030/article/details/120318017对于这两道题,我们发现共同的特点是1.都要求取出连续的一段做最值2.都会有效枚举所有可能那么下次一看到这两个特征并且貌似不会做惹不起的样子,就试试尺取法好下面讲讲尺取法就是说规定两个.

2021-09-15 22:24:26 179

原创 八皇后问题

一.绪论这是一个很经典的DFS问题,适合计算机批量求解(不是给人算的),是想当年让高斯折腰的题目啊二.预备知识1.构建模型就是要求构造一种特殊的棋局,使得上面的任何两点不能同行同列同主副对角线那么转化成数学问题就是(x,y)和(i,j)中,x!=i,y!=j,x+y!=i+j,x-y!=i-j2.确定算法这道题是经典地DFS,当然BFS也可以但是很麻烦然后确定DFS要素1.边界:dep==n+1时,决策万所有情况2.单层派生逻辑 这里我们本来应该...

2021-09-06 23:05:01 111

原创 FLOYD算法介绍

刚刚(就在十秒钟前),我把floyd算法CSP-J的专题模拟测试题解写好了那么对于FLOYD算法,你真的了解吗(呵呵,标题党)emmm我我的意思是你真的悟到了FLOYD算法的本质然后去做题吗?而不是单单把三重循环的顺序和模板背下来就把题目AC了?很多时候,我们无法(也不可能,不需要)带着所有算法的精神做题目,就需要把模板封装起来记住这个板子有什么用然后随手念来这个FLOYD算法就是这样,你这次弄懂了下次就只需要背下来就行了这样,你既容易记住模板,有方便你进行变通(也就是使用FLOYD

2021-09-05 18:04:12 227

原创 题解报告:contest 1094

Contest 1094第一题:1543 -- 分组看不到没关系:Description信息学竞赛班的班主任\text{Smart}Smart是一位心思很缜密的老师,他在接手信息学竞赛班一个学期以后,想调查一下班上同学之间相互交流的情况,以便及时了解班级动态。信息学竞赛班一共有nn个同学。这nn位同学每一个人都有一个小花名册,名册里面写着他所愿意交流的人的名字。比如说在AA的人名单里写了BB,那么表示AA愿意与BB交流;但是BB的名单里不见得有AA,也就是说...

2021-09-05 17:40:09 179

原创 一些注意点

一.书写问题 1.freopen(“文件名”,“小写字母r或者w”,stdin或stdout); 2.分类讨论的ifelse 不要写太长,不要复制黏贴,尽量把能提取出来的公共信息都放在全局上一层 3.BFS和DFS以及DP的初始化还有辅助数组(VIS,桶)在多组数据的时候要清空二.思路问题 1.对于问题应该具有逆向思维 就比如要求n的最大质因子,这个时候我们只要找到一个n的最小因子,使得n/i是质数...

2021-09-01 22:41:38 82

原创 算法:前缀极值或后缀极值

之前我已经发布了前缀和和差分、前缀和和后缀和的例题两篇博客,说实话那个时候前缀和我也没有真正弄懂,知识感觉这种算法很好用那现在我们就把做前缀和做后缀的思想本质和变化投影讲清楚一.前缀后缀和 1.前缀后缀和:s[i]=a[1]+...a[i],a[i]+...a[j]=s[j]-s[i-1] 2.疑似前缀后缀和:root p1710题解二.前缀极值和后缀极值 1.例谈算法 2010NOIP导弹拦截这道题就是...

2021-08-21 13:36:12 304

原创 一本通贪心经典:1227:Ride to Office

一.题目大意每次C追上或者被追上,都会选择是否变速,又由于要求最快到达那么一定是被赶上被赶上的条件是什么?一个比C当前速度快的人,比C晚出发,就会被赶上二.确定算法于是每次在线读入,一旦满足上述条件,就做一次比较,看和这个人一起到终点和之前一起到终点那个时间短就跟哪个由于没有询问人的编号,所以不需要记录过程,直接记录最小值怎么计算到终点的时间,使用宏观上的思维,不去考虑具体的过程,聚焦结果从C的角度看: 阶段1.被赶上 阶段2.一起走从那个人的角度看:阶段1...

2021-08-21 13:10:37 340

原创 一本通贪心经典:1226:装箱问题

1226:装箱问题一.-题目大意题目中所说的H没有意义(当然最后输入也没有给),其实就是给你a[1]个1*1矩形,a[2]个2*2矩形。。。a[6]个6*6矩形,让你求他们最少要覆盖多少的6*6的矩阵,每一个矩形不允许重叠然后t组数据二.确定算法实际上一本通中很多问题叫贪心都很勉强,明明就是有技巧的模拟和枚举,因为本质上没有一个定论说什么是贪心好,下面对于1*1~6*6的矩形进行分类6*6一人一个cnt+=a65*5:一人一个,但会有剩余cnt+=a6+a54

2021-08-21 12:40:37 1043

原创 root p1919 题解

1919 -- 好序列一.题目大意就是给你一个序列,让你求所有能够划分成好字段的子序列注意其中字段、子序列和好的序列 字段是指连续的一段子数组 子序列是指顺序不变,不必连续的一个子集 好的序列就是a[i],a[i+1]....a[i+a[i]],a[i]>=0时才有可能。。。二.确定算法这道题妥妥的DP(实际上一点都不妥,我就没想出来看的答案,)好我们首先来从0开始一点一点想到DP(我想把自己的思路全部展现出来也很那,就不知...

2021-08-19 21:58:17 137

原创 经典题目题解:连续子串和

连续子串和(subs)问题描述:给定n个整数,求其中至少k个连续数的最大和。输入格式:第一行为正整数t(≤5),表示数据组数;每组数据中,第一行为两个正整数n(≤3*105)和k(≤n);接下来一行n个整数ai,满足-5000≤ai≤5000。输出格式:对于每组数据,输出至少k个连续数和的最大值。 输入样例 输出样例 1 5 3 -2 3 6 0 1 10 一.题目大意要求找到

2021-08-19 11:42:44 400

原创 经典基础算法的一些精髓和注意点总结

一.搜索遍历算法 0.搜索概论 搜索,某个维度(角度)上分为两种,分别是遍历逻辑结构和遍历状态空间结构,二者都是一张图,而一个是题目给定的,一个是由题目给定所确定的 所谓状态空间,就是这个问题的询问,会分解成那些小问题,从上帝视角来看整体构成的结构 初学算法的懵懂时期,我一直弄不明白为什么一个好端端的分苹果问题,为什么是对一个树的遍历,那时候感觉树要是能看得见摸得着的数据结构,然而并不是的...

2021-08-18 15:13:44 191

原创 一本通DFS经典:1214:八皇后

1214:八皇后一.数学模型八皇后问题描述的是八个国际象棋中皇后棋子如何摆放的问题,而实际上可以抽象成8*8二维空间中的一种特殊选点问题:任意选择8个点,其中任意两个点:不同行不同列不同对角线;数学描述就是:对于(a,b)和(c,d),a!=c &&b!=d && a+b!=c+d && (a-b+7)%8!=(c-d+7)%8至于怎么找出来的,自己画个二维坐标系,列下坐标自己探究规律最细(gǒu)节(xiě)的就是第四个条件,由于你不知.

2021-08-18 14:47:28 737

原创 一本通递归经典 1205:汉诺塔问题

1205:汉诺塔问题一.题目大意就是经典的汉诺塔问题,要求输出路径二.确定算法0.肯定事递归 1.这不常识吗(如果你觉得不是常识现在把他变成常识,经典题目就得这么做)。 2.你觉得这不是常识,那么怎么能想到使用递归呢 考虑对N个盘子的解法,我们一定要先把上面n-1个挪开,在让第n个单独动一次,那怎么把n-1个挪开呢 方法是一样的,把n-2挪开,在做第n-1个一次 又由于在做小盘子问题的时候,大盘子(垫底的)可以忽视,所以就不用在做第n-...

2021-08-18 12:19:47 668

原创 一本通递归经典 1206:放苹果

1206:放苹果一.题目大意 如题意,注意苹果和盘子都不区分,并且可以由空的盘子,区别于一本通递归经典 1315:【例4.5】集合的划分二.选择算法显然是递归,从大状态分解出很多小状态来求解0.递归的参数 n表示苹果数,m表示盘子数1.单层分解子问题的逻辑 1.如果可以没有空盘子(n>=m)分类两种情况 : 最后一个盘子都不空(由于不区分盘子,所以最后一个不空就表示都不空),剩下的交给递归;最后一个盘子放空,剩下的交给递归 ...

2021-08-18 12:07:11 758

原创 一本通递归经典 1315:【例4.5】集合的划分

1315:【例4.5】集合的划分一.题目大意:已经说的很精简了 如果被题目的一大堆集合符号搞蒙了的话,精简版的题目其实就是把n个不同的物品放在k个相同的盘子中,盘子不允许空着二.确定算法 可以考虑DP(其实就是简单的递推),但由于他放在了递归里面,我们就使用递归 于是确定单层派生子节点的逻辑: 0.f(n,k)的答案一定考虑第n个元素放在哪里,其余的的交给递归 1.由于这里每个...

2021-08-17 21:54:15 340

原创 root p1710题解

递归,将大规模问题分解成一个或者多个小规模同种问题,以此类推,达到叶子节点直接得到答案,层层回溯p1710--序列Description我们按以下方式产生序列:1、 开始时序列是: "O" ;2、 每一次变化把序列中的 "O" 变成 "OI" ,"I" 变成 "O"。经过无限次变化,我们得到序列"OIOOIOIOOIOOIOIOOIO...."。总共有QQ个询问,每次询问为:在区间[aa,bb]之间有多少个"O"。请写一个程序回答QQ个询问Input第一行为一个整数Q...

2021-08-14 20:24:38 103

原创 计数方法——前、后缀和计数

题目大意:给定一个字符串,只由NOI 组成,问其中“NOI” 子串(可以不连续) 有多少个?例如:NOIOI,就有子串NOI 3个。样例输入:NOIOI样例输出:3解析:这道题的大致思路是寻找O字符,找到了,就寻找该O左边的N,右边的I,接着相乘加入ans就行了如果你是顺着标题点进来的,那么,下面才是你想要的东西如何寻找O前面的N,后面的I?方法一:暴力枚举,从一到addO,找N,从addO到len,找I时间效率:o(n),但是你还要找O,所以整体时间复杂度为:o(n²).

2020-10-10 12:09:53 349

原创 前缀和 和差分

前缀和,又称 和数组,用于求解获取某一部分连续区间的问题。算法实现:定义一个和数组d,接着输入过后,用和数组中的第i个元素表示前i个数的和,递推式:d[i]=d[i-1]+a[i],想要获取其中从x 到y的连续元素和, 只需要使用o(1)公式d[y+1]-d[x]即可。算法原理:求和时 使用了简单的容斥原理,如下图所示 ...

2020-10-08 16:30:20 330

原创 c++一本通 1238一元三次方程求解

题目可以在7种二分查找法的总结中 找到这道题 需要用到一些数学知识: 关于一个方程ax3+bx2+cx+d=0ax3+bx2+cx+=0,一定有三个复数解, 并且题目 保证 所有解在 实数范围内,并且 任意两个解之间 的距离大于等于 第一种方法:将-10000到10000之间 所有数都试一遍,但是这种方法需要 遍历20000次,过于低级第二种方法:可从-100到100之间定义变量x,每次自增1.0,在x以及x+1 之间进行二分,并且在l和r的差≤0.001时停止,输出任意一个。二分方法:...

2020-10-01 22:24:52 763 1

原创 动态规划概述番外

为大家提供一些题目:小胖办证简化洛谷友好城市

2020-03-22 10:31:57 104

原创 关于upper‘_bound 和 lower_bound

刚复习了最长不下降子序列,发现了有种解法用了upper_bound 和 lower_bound,那么,我就来普及一下这两个函数。首先,包含他们的头文件是bits/stdc++.h(实际上是algorithm)。首先先剧透一下二分算法。猛戳这里。upper_bound()和lower_bound()函数在刚刚的二分中提到了,upper_bound是第一个大于第三个参数的数在给定地址中...

2020-03-01 16:25:57 434

原创 七种二分 查找法

二分查找是一种很简单且常用的算法,常用于线性查找,在10000个数里面查找一个数,用循环查找最坏的情况最坏的情况是10000,但用二分就可以降到logn的时间代价...

2020-03-01 16:25:07 288

原创 动态规划概述(4)总结

动态规划三大要素,三大特点要素一:状态正确设定。要素二:状态转移方程列正确。要素三:最终获取的输出参数一定要选择正确。特点一:最优子结构特点,每一个问题派生出的小问题一定拥有最用性特征。特点二:最优性要求,有最优子结构组合而成的解一定满足最优性要求。特点三:无后效性,目前的参数和获值,只与子问题有关,不与父节点有关。(逆推的时候只有父节点和此节点有关)动态规划所解决的问...

2020-02-29 21:15:52 117

原创 动态规划概述(3)例谈DP

这次来讲讲数塔问题和最长不下降子序列。数塔问题已经讲过了,但通过长期研究得到了四种方法:搜索,记忆化搜索,正向DP,反向DP。而这个地方还是要放低难度先弄一道简单到爆的题...

2020-02-29 15:22:47 335

原创 动态规划概述(2)

这次来讲讲关于数塔问题的题目题目:考虑在下面被显示的数字金字塔。 写一个程序来计算从最高点开始在底部任意处结束的路径经过数字的和的最大。 每一步可以走到左下方的点也可以到达右下方的点。 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5在上面的样例中,从7 到 3 到 8 到 7 到 5 的路径...

2020-02-21 18:57:40 109

原创 动态规划概述(1)

动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优解的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题...

2020-02-21 12:13:47 241 1

原创 转载——背包九讲之完全背包问题

我的另一篇博文https://blog.csdn.net/weixin_41568030/article/details/104419786上发布了洛谷1616的题解,用到了完全背包问题求解,而我呢并不擅长将这些东西,所以就用背包九讲这篇最著名的将背包问题的文章讲一下,具体内容如下:P02: 完全背包问题 题目 有 N 种物品和一个容量为 V 的背包,每种物品都有无限件可用。第 i 种...

2020-02-20 22:55:42 164

原创 洛谷p1616疯狂的采药

这是个朴实无华的名字,所以下面是一篇朴实无华的文章,请大牛们轻喷洛谷上这道题确实很疯狂。其实这是一道完全背包的板子题,但有两点需要注意:第一点最重要,这道题不是0-1背包问题!!!这道题不是0-1背包问题!!!这道题不是0-1背包问题!!!所以,献上第一次全WA代码:#include<iostream>using namespace std;int f[10...

2020-02-20 22:48:39 183

空空如也

空空如也

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

TA关注的人

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