我不是手机
码龄5年
关注
提问 私信
  • 博客:69,582
    69,582
    总访问量
  • 274
    原创
  • 1,824,545
    排名
  • 15
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:浙江省
  • 加入CSDN时间: 2019-11-17
博客简介:

qq_45891413的博客

查看详细资料
个人成就
  • 获得61次点赞
  • 内容获得30次评论
  • 获得67次收藏
  • 代码片获得163次分享
创作历程
  • 43篇
    2021年
  • 231篇
    2020年
成就勋章
TA的专栏
  • oj
    2篇
  • 背包问题
    15篇
  • LeetCode
    2篇
  • acwing
    7篇
  • 中级数据结构集训
    3篇
  • dp集训
    21篇
  • cf800--1200
    82篇
  • 题解打印
    2篇
  • 基础字符串kuangbin题单
    2篇
  • ac自动机
    1篇
  • 线段树
    15篇
  • dp
    18篇
  • 基础数论kuangbin题单
    11篇
  • 训练赛
    1篇
  • 博弈论
    1篇
  • atcoder
    2篇
  • 图论
    2篇
  • 数学方法
    15篇
  • 动态规划
    9篇
  • DFS BFS
    19篇
  • STL
    6篇
  • 贪心
    7篇
  • 模拟
    9篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

342人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

LeetCode 678. 有效的括号字符串 括号序列+栈

题目链接class Solution {public: bool checkValidString(string s) { stack<int>st; stack<int>st1; int len=s.size(); for(int i=0;i<len;i++){ if(s[i]=='(') st.push(i); else
原创
发布博客 2021.03.02 ·
158 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LeetCode 672. 灯泡开关 Ⅱ

题目链接class Solution {public: //12-3; //13-2; //23-1; //0 1 2 3 4 14 24 34 int state[8][6]={ {1,1,1,1,1,1}, {0,0,0,0,0,0}, {1,0,1,0,1,0}, {0,1,0,1,0,1}, {0,1,1,0,1,1}, {1,0,0,1,0,0},
原创
发布博客 2021.03.01 ·
211 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

acwing 1230. K倍区间 前缀和+同余

题目链接#include<bits/stdc++.h>using namespace std;const int N=100100; ;long long res=0,cnt[N],s[N];int main(){ int n,k; cin>>n>>k; for(int i=1;i<=n;i++){ cin>>s[i]; s[i]+=s[i-1]; } cnt[0]=1;
原创
发布博客 2021.02.18 ·
225 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

acwing 1414. 牛异或 异或前缀和+trie树

题目链接对于异或来说,组成前缀和数组时应该对上一位取异或值,在判断范围[i,j]时会与普通前缀和相同:普通的前缀和sum=w[j]-w[i-1],但是异或区间的前缀和是sum=w[j]^w[i-1]因为如果在数组中遍历两遍的端点,时间复杂度是on2的,所以需要使用01trie来维护。对于每个点都insert到trie中创建当前的空间和记录当前的位置,每次插入一个就query一次寻找当前长度中最长的异或值,如果当前点有分支的话就走到不同分支,否则就走到相同分支#include<bits/std
原创
发布博客 2021.02.17 ·
213 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

acwing 1102. 移动骑士 马走日bfs

题目链接总共8个方向#include<bits/stdc++.h>using namespace std;const int N=350;typedef pair<int, int> PII;PII a,b;int n,m,d;int dist[N][N];int bfs(PII start,PII end){ if(start==end) return 0; queue<PII>qu; qu.push(start); m
原创
发布博客 2021.02.03 ·
190 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

acwing 1613. 数独简单版 DFS爆搜

题目连接数独问题,需要在横、纵、每9个方格之中填1到9数字。我们可以构建一棵dfs树,对于每一个节点要求满足以上三总条件才可以更新这一个点,如果这个点可以走下去那么就深度搜索下去,并且更新当点的状态以此复原现场。y总代码#include<bits/stdc++.h>using namespace std;const int N=10;char g[N][N];bool row[N][N],col[N][N],cell[3][3][N];bool dfs(int x,int y)
原创
发布博客 2021.02.02 ·
117 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

acwing 1402. 星空之夜 哈希+连通块

题目链接对于结构特别的连通块可以将它的每个点到其他点的距离之和作为hash值并且在判断浮点数是否出现过时,应该比较fabs的差值#include<bits/stdc++.h>#define lowbit(x) x&(-x)#define x first#define y secondusing namespace std;typedef pair<int,int>PII;const int N=110;const double eps=1e-6;int
原创
发布博客 2021.02.02 ·
147 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

acwing 243. 一个简单的整数问题2 树状数组 区间操作

题目链接树状数组对于单点操作只需要开一个树状数组就可以了,但是对于区间的整体进行修改需要开两个树状数组,通过差分操作去维护,一个维护bi,一个维护bi×i#include <bits/stdc++.h>using namespace std;#define ll long long#define lowbit(x) x&(-x)const int N=2e5;ll c1[N],c2[N],n,m,a[N];inline void add(ll x,ll v){ f
原创
发布博客 2021.01.29 ·
127 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

acwing 482. 合唱队形 最长上升子序列+最长下降子序列 寒假集训

题目链接假设中间有一个数n,那么排队的最多人数就是它左边的最长上升子序列和它右边的最长下降子序列的和。我们把每个点上的点作为中间的点去做同样的操作,取两个值的和的最大值#include<bits/stdc++.h>using namespace std;const int maxn=500;int a[maxn],dp[maxn],dp1[maxn];int main(){ int n,id,mx; cin>>n; for(int i=1;i<
原创
发布博客 2021.01.27 ·
154 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

acwing 297. 赤壁之战 树状数组优化DP 寒假集训

题目链接想要求长度为M的子序列,我们可以拿DP方程来计算,并且这个DP也是比较好看出来的DP[i][j]代表着i后j位置中的所有长度为j的子序列,递推方程为for(int i=1;i<=n;i++){ for(int j=2;j<=m;j++){ for(int k=1;k<i;k++){ if(a[k]<a[i]) dp[i][j]+=dp[k][j-1] } } }}的一个三重循环,但是n^3的暴力一定是会超时的,所以我们可以用树状数组来优化一个
原创
发布博客 2021.01.27 ·
136 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

K Smallest Sums UVA - 11997 贪心+优先队列 寒假集训

题目链接这道题网上说的奇奇怪怪,在加上我地址符看不太懂,所以比较难以理解其实原理比较简单,我们先把所有的数组进行sort,并将第一个数组命名为A数组,后面的命名为Bn数组,那么我们利用优先队列进行选择最优解,就是一直用B数组去维护A数组。将A1去加上B1到n所有数并放入优先队列,同样一直遍历到An去加上B1到n的值放入优先队列,这样我们取A的前n个作为维护后新的A数组,重复这样的操作到Bn这样答案就是数组A的所有值了。这里有个小问题,如果你不断把A1加B1到n的值,An加B1到n的值放入队列,再去取
原创
发布博客 2021.01.26 ·
119 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

power oj 2920: 第K大1.0 优先队列

题目链接题意是在一组数组里面,对每一个数求它右边的最大值。题解:我们把可以不断将数字都放进一个优先队列里面,做一个在线操作:对于每一次放入a[i]的数,通过比较将队列前面比他小的所有数字弹出,记录这些数字被弹出的次数。如果==3就直接用数组记录这个数右边第k个数的下标为i,如果不等于3就将它暂且放在一个双端队列中(至于为什么是deque,是因为比较好操作,用queue或者stack都是可以的)。在这个放入的a[i]将它前面所有的数字都弹出并标记后,我们把在deque中的所有数字再放回优先队列中,因为
原创
发布博客 2021.01.26 ·
121 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

acwing 1432. 棋盘挑战 DFS爆搜

给定一个 N×N 的棋盘,请你在上面放置 N 个棋子,要求满足:每行每列都恰好有一个棋子每条对角线上都最多只能有一个棋子1 2 3 4 5 61 | | O | | | | |2 | | | | O | | |3 | | | | | | O |4 | O | | | | | |5 | | | O | | | |6 | | | | | O | |上图给
原创
发布博客 2021.01.22 ·
115 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Round Numbers POJ - 3252 01二进制 数位DP 寒假集训

The cows, as you know, have no fingers or thumbs and thus are unable to play Scissors, Paper, Stone’ (also known as ‘Rock, Paper, Scissors’, ‘Ro, Sham, Bo’, and a host of other names) in order to make arbitrary decisions such as who gets to be milked first
原创
发布博客 2021.01.22 ·
137 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

P1886 滑动窗口 /【模板】单调队列 寒假集训

有一个长为 nn 的序列 aa,以及一个大小为 kk 的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。例如:The array is [1,3,-1,-3,5,3,6,7][1,3,−1,−3,5,3,6,7], and k = 3k=3。输入格式输入一共有两行,第一行有两个正整数 n,kn,k。 第二行 nn 个整数,表示序列 aa输出格式输出共两行,第一行为每次窗口滑动的最小值第二行为每次窗口滑动的最大值输入输出样例输入 #1复制8 3
原创
发布博客 2021.01.22 ·
106 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Subsequence HDU - 3530 维护区间最大差值 单调队列 寒假集训

There is a sequence of integers. Your task is to find the longest subsequence that satisfies the following condition: the difference between the maximum element and the minimum element of the subsequence is no smaller than m and no larger than k.InputThe
原创
发布博客 2021.01.22 ·
282 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

Balanced Number HDU - 3709 寻找力矩 数位DP 寒假集训

A balanced number is a non-negative integer that can be balanced if a pivot is placed at some digit. More specifically, imagine each digit as a box with weight indicated by the digit. When a pivot is placed at some digit of the number, the distance from a
原创
发布博客 2021.01.22 ·
119 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Bomb HDU - 3555 出现多少个49,数位DP, 寒假集训

反恐精英在尘土中发现了一枚定时炸弹。但这次恐怖分子改进了定时炸弹。定时炸弹的编号顺序从1到N计数。如果当前的编号顺序包括(子串!!)“49”,爆炸威力将增加一个点。问最后爆炸的时候威力为多少。输入描述输入T代表T组(T <= 1e4)每组输入一个n(1 <= n<=2^63 - 1)输出描述输出爆炸的威力样例输入11样例输出0区间里面的数字间出现了多少个49,数位dp板子#include <stdio.h>#include <string.h&
原创
发布博客 2021.01.22 ·
208 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

Dire Wolf HDU - 5115 区间DP,寒假集训

有n头狼排成一排,每只狼两个属性,攻击力和加成值,狼的实际攻击力等于自身攻击力加相邻狼的加成值,被杀死之后的狼对相邻的狼的攻击力的加成会被取消,同时,原先与 被杀死的狼相邻的两头狼会变成相邻的狼。问杀死所有狼受到的伤害值最小是。Input多组输入,第一行一个T每组输入一个n(n <= 200)输入n个数,代表每只狼的攻击力(0<=a[i] <=1e5)输入n个数,代表每只狼的加成值(0<=b[i]<=5e4)Output每组样例输出一个Case,然后输出答案。S
原创
发布博客 2021.01.22 ·
138 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

X mod f(x) HDU - 4389 数位DP 寒假集训

定义一个函数 f(x):int f ( int x ) {   if ( x == 0 ) return 0;   return f(x/10) + x%10;}现在,我们有个区间 (1 <= A <= B <= 10 9), 查询有多少个整数 x mod f(x) 等于 0.Input第一行是一个整数 T (1 <= T <= 50), 表示数据组数。接下来 T 行每行包含两个整数 A B (1 <= A <= B <= 10 9)Outp
原创
发布博客 2021.01.22 ·
130 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多