自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 21天好习惯第一期-21 数学考试

数学考试求两个不连续的区间的最大和,很容易想到前缀和,[l,r]的区间和是sum[r]-sum[l-1]。朴素方法一个指针枚举左区间的起点,另一个指针枚举右区间的起点,两层循环复杂度\thetaθ (n^2),应该会超时。枚举右区间的起点时,可以发现左区间的起点不需要从1开始找,此时的最优解一定是左区间最大,而此时右区间左边全部的左区间已经出现过了,只要一直保存最大的左区间起点,在枚举右区间的起点时就可以\thetaθ (1)的找到最优左区间起点。总复杂度\thetaθ (n)。#include&l

2021-11-12 22:12:06 83

原创 21天好习惯第一期-20

[SCOI2009]粉刷匠题意题目描述:windy有 N 条木板需要被粉刷。 每条木板被分为 M 个格子。 每个格子要被刷成红色或蓝色。windy每次粉刷,只能选择一条木板上一段连续的格子,然后涂上一种颜色。 每个格子最多只能被粉刷一次。如果windy只能粉刷 T 次,他最多能正确粉刷多少格子?一个格子如果未被粉刷或者被粉刷错颜色,就算错误粉刷。输入描述:第一行包含三个整数,N,M,T。接下来有N行,每行一个长度为M的字符串,'0’表示红色,'1’表示蓝色。输出描述:包含一个整数,表示

2021-11-12 22:09:57 127

原创 21天好习惯第一期-19【每日一题】「火」皇家烈焰

「火」皇家烈焰三维dp,dp[i][0/1][0/1]dp[i][0/1][0/1] 表示当前第i位是否有火和后面一位是否有火。第二维取0表示当前位置没有火,取1表示有火,第三维取0表示当前位置没有火,取1表示有火。这个三维dp的状态转移有点神奇,和之前转移的思想不太一样,这个是根据前一个状态和当前状态退出当前状态和下一个状态。用字符数组整行输入。1.s[i]0s[i]0dp[i][0][0]=dp[i-1][0][0]dp[i][0][0]=dp[i−1][0][0]上一位、这一位、下一位取0

2021-11-12 22:09:03 861

原创 21天好习惯第一期-18 【每日一题】codeJan与旅行

codeJan与旅行给定n个城市坐标,每个城市可以多次到达,但是只有离开再回来才算次数+1,问一共到m次,最短花费。给出起始位置,并且起始位置不在城市上。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e5+1;template inline void read(T &res) {char c; T flag = 1;while ((c = getchar())

2021-11-12 22:07:40 78

原创 21天好习惯第一期-17

过河青蛙从桥头跳过独木桥,跳过就行,桥长为ll ,青蛙跳过的路程disdis 只要大于等于ll 就行。桥上有一些石头,题目会给石头的数量m和m个石头的位置,还有青蛙跳跃的最小距离s、最大距离t。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1e4+5;template <class T>inline void read(T &res) { c

2021-11-12 22:06:07 47

原创 21天好习惯第一期-16 【每日一题】3月30日滑动窗口

滑动窗口思路:就和邓老师说的那样,每次滑动一个区间,区间从[l,r]到[l+1,r+1],只是增加了a[r+1]减少了a[l],所以完全没有必要重新扫一遍区间。以最大值为例:1.将新进入区间的这个元素往双端队列里放,但放进来之前需要判断队尾(也就是还有可能成为最大值的最后一个元素)是不是小于他小于他,如果是,就把这个队尾删掉(r- -),一直到前一个元素大于等于它为止。这样得出来的队列实际是单调递减的。2.可以输出时先判断队首的元素是否在这个区间的范围内,如果不在,就把它删掉(l++)。3.这个元

2021-11-07 22:59:13 53

原创 21天好习惯第一期-15 【每日一题】3月27日数学考试

数学考试求两个不连续的区间的最大和,很容易想到前缀和,[l,r]的区间和是sum[r]-sum[l-1]。朴素方法一个指针枚举左区间的起点,另一个指针枚举右区间的起点,两层循环复杂度\thetaθ (n^2),应该会超时。枚举右区间的起点时,可以发现左区间的起点不需要从1开始找,此时的最优解一定是左区间最大,而此时右区间左边全部的左区间已经出现过了,只要一直保存最大的左区间起点,在枚举右区间的起点时就可以\thetaθ (1)的找到最优左区间起点。总复杂度\thetaθ (n)。#include&l

2021-11-07 22:57:55 69

原创 21天好习惯第一期-14 【每日一题】城市网络

城市网络题意:给你一颗树,然后n个点,n-1条边.然后给你q组查询,每组查询给你三个数分别是:u,v,c 题目保证1是首都,并且u->v->1这种类型的查询(此时v是u的父亲),问你从u->v的最长上升子序列长度。倍增+dfs题目表明v一定在u去网1的最短路径上,如果从u一直往上走到v,再去判断到达的每一个城市,需不需要购买。这种算法的极端情况,形成了一条长为n的链,时间复杂度达到了O(nq),后面数据加强就会超时了。正确的做法是用倍增,f[i][k]表示i结点的第2^{k}2

2021-11-07 22:56:23 41

原创 21天好习惯第一期-13 codeJan与旅行

codeJan与旅行问题:给定n个城市坐标,每个城市可以多次到达,但是只有离开再回来才算次数+1,问一共到m次,最短花费。给出起始位置,并且起始位置不在城市上。通过观察法(观察大佬题解),发现这题是贪心,最优解一定是在i\sim i+1i∼i+1 之间横跳或者直接一直朝前走到某个城市。具体方法:1.判断能否直接走到i城市,如果走不到就抬走下一个,刚好是第m个到达的城市计算路径p-pos[i]p−pos[i] (假设p为起点的位置,i在p的左端,x为p左端第一个元素,pos[i]pos[i] 表示第i

2021-11-04 18:32:42 56

原创 21天好习惯第一期-12【每日一题】过河

[NOIP2005]过河、Question:青蛙从桥头跳过独木桥,跳过就行,桥长为ll ,青蛙跳过的路程disdis 只要大于等于ll 就行。桥上有一些石头,题目会给石头的数量m和m个石头的位置,还有青蛙跳跃的最小距离s、最大距离t。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1e4+5;template <class T>inline void rea

2021-11-03 23:47:11 52

原创 21天好习惯第一期-11 【每日一题】Removeal

Removal题意:题目描述:Bobo有整数s1,s2,…,sn,其中1 ≤ si ≤ k。删除m个后问有多少种序列,然后对(1e9 + 7)取模。输入描述:输入包含多个测试用例,并以文件结尾终止。每个测试用例的第一行包含三个整数n,m和k。第二行包含n个整数s1,s2,…,sn。输出描述:对于每个测试用例,请打印一个表示结果的整数。计数类dp。f[i][j]f[i][j] 表示前i个数字删掉j个元素的序列数。如果不考虑重复,状态转移方程就是f[i][j]=f[i-1][j]+f[

2021-11-02 22:39:45 72

原创 21天好习惯第一期-10【每日一题】美味菜肴

美味菜肴题目描述:小明是个大厨。他所在的餐厅每天早上都会买好n件食材(每种食材的数量可以视为无限),小明从到达餐厅开始就连续工作T时间。每道菜肴的制作需要特定的一种食材以及一段时间,但是食材一旦放久就不新鲜了,菜的美味值会降低。第i道菜肴有三个属性ai,bi,ci,ai是该菜肴的美味值,bi是该菜肴所选食材不新鲜的速率,如果在第t时刻完成第i道菜则美味值为:ai - t * bi,完成这道菜需要ci的时间。小明希望在这T时间内能做出菜肴使得总美味值最大,所以小明求助于你。输入描述 :第1行输入

2021-11-02 22:38:11 283

原创 21天好习惯第一期-9【每日一题】合并回文子串

合并回文子串思路:区间dp,dp[i][j][k][l]dp[i][j][k][l] 表示a串的第i个字符到第j个个字符和b串第k个字符到第l个字符组成的串能否构成回文串,求法通过分解代码的形式分析,因为这个思路对我来说有点难。for(int len1=0;len1<=n;++len1)for(int len2=0;len2<=m;++len2)for(int i=1;i+len1-1<=n;++i)for(int k=1;k+len2-1<=m;++k)``这里是

2021-10-31 11:09:58 59

原创 21天好习惯第一期-8【每日一题】Symmetric Matrix

【每日一题】Symmetric MatrixSymmetric Matrix题目描述:计算一个满足下列条件的,n x n的矩阵的数量(答案对mod取余)输入描述:多组输入,每行输入两个整数,n和mod1 ≤ n ≤ 1051 ≤ mod ≤ 109The sum of n does not exceed 107.输出描述:输出一个整数表示结果简单回顾邻接矩阵思路:了解了数据结构的邻接矩阵后再看这个矩阵满足的条件,矩阵对称和a_{ii}aii​ =0 可以让我们联想到无

2021-10-31 11:06:43 62

原创 21天好习惯第一期-7周练题解

题意:n根木棍中截取k根长度一样的木棍,多余的木棍舍去。华华给月月准备礼物思路:先用最简单的方法从长度1开始一个一个枚举,直到达不到题目要求,这样的复杂度\thetaθ (n^2),显然会超时。我们就可以选区间的中点,如果不行答案一定比这个小,如果可以我们继续试试大一点可不可以,一步步缩小区间,这是二分的思路。以前属于完全套一个模板,现在才了解了一点二分:因为我是把答案存在l上,所以如果当前mid可行,那么l=mid,否则r=mid-1,直到l==r。l左区间,r右区间,mid要取l+r+1,

2021-10-29 22:29:23 70

原创 21天好习惯第一期-6周练题解

前面的碎碎念:菜鸡差点爆0,题目有点不对胃口牛客练习赛61A、打怪签到题,差点没签到成功思路:计算勇士砍死一个怪需要的次数,从而得到砍死一个怪需要消耗的血量,于是能砍死的怪物数量就等于自身血量除于需要消耗的血量,如果能整除则答案数减一,特判自身血量为0;复杂度:\thetaθ (1)。#include<bits/stdc++.h>#define ll long long#define js ios::sync_with_stdio(false);cin.tie(0);co

2021-10-28 21:01:08 75

原创 21天好习惯第一期-5斐波那契

小白月赛20斐波那契题目大意:输出前斐波那契数列前n项平方和,1<=n<=1e18。前备知识:快速幂和矩阵,可以进我的博客了解一下,小白非常容易理解:思路:斐波那契数列前n项平方和有递推式:前n项平方和等于 f[n] * f[n+1]。因为n非常大,用递归的思路去求肯定超时,所以想办法用\thetaθ (log n)的方法去解,用矩阵转化为乘法,然后快速幂求解就可以了。一道模板题,难度适宜。Code:(那个时候学的代码)#include<bits/stdc++.h&

2021-10-28 20:56:46 106

原创 21天好习惯第一期-4第4篇周练题解

嘀咕一下:原本以为和前几次的的题目一样的难度,结果我就会写一题,线段树当时还没学,多组背包还不会,但是其实这个难度还是可以接受的传送门A-咪咪游戏题目大意:每次询问你一个字符串,判断是否由mq连接而成难度:看懂了题目要你做什么就很好做出来了,一道签到题题目类型:模拟思路:1.由mq连接而成一定是一个偶数串2.如果是偶数串,就用一个strng类的变量模拟连接的过程复杂度:\thetaθ (log n)#include<bits/stdc++.h>#define js

2021-10-26 21:40:48 104 2

原创 21天好习惯第一期-3

牛客算法周周练1 【题解】牛客算法周周练1 【题解】小结:这个比赛最有意思了,对小白来说很友好,都是一些基础的算法,第一题就是我在学习前缀和的时候写过的,当时非常高兴直接秒提交了,E题打表简直不要太爽,就是题目长了点,还是不够冷静读题。题解部分A、Maximize The Beautiful Value题意:输入t组数据,每组数据给定n个递增的数,选择任意一个数(必须在第k个数后面)向前移动k步,美丽值f就是每个数与下标之积的和,求最大的美丽值f是多少难度:前缀和的基础题。题目类型:前缀

2021-10-25 18:42:16 3204

原创 21天好习惯第一期-2 DFS

思路:感觉和dfs序联系不大,画个图后发现涂颜色只有两种方案(引用每日一题的图片):1.使用用过的颜色,但是一定要和它处理过的父结点或者儿子结点涂一样的颜色,只有这样才能保证一样颜色的点在一个路径上;2。使用没用过的颜色,已经用了j-1种颜色,所以还剩k-j+1种颜色可以涂可以用dp来求解:状态:dp[i][j],处理到第i个点时用了j种颜色。状态转移方程:dp[i][j]=(dp[i-1][j]+dp[i-1][j-1]*(k-j+1))%mod.代码:#include<bits/

2021-10-24 21:28:38 2077 2

原创 21天好习惯第一期-1 DP

标题 [ZJOI2007]棋盘制作 [NOIP1999]拦截导弹[ZJOI2007]棋盘制作ZJOI2007悬线法求解最大矩型(DP)1.有效竖线:除了两个端点以外,不覆盖任何一个障碍点的竖直线段1.有效竖线:除了两个端点以外,不覆盖任何一个障碍点的竖直线段2.悬线:上端覆盖了一个障碍点或者到达整个矩形上边界的有效线段2.悬线:上端覆盖了一个障碍点或者到达整个矩形上边界的有效线段如果把一条悬线向左右两个方向尽可能的移动,那么就得到了一个矩形。如果把一条悬线向左右两个方向尽可能的移动,那么就得到了

2021-10-23 22:57:39 75 2

空空如也

空空如也

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

TA关注的人

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