mumei的博客

ACMer
私信 关注
木每立兄豪
码龄2年
  • 76,664
    被访问量
  • 391
    原创文章
  • 17,266
    作者排名
  • 60
    粉丝数量
  • 于 2018-10-20 加入CSDN
获得成就
  • 获得281次点赞
  • 内容获得42次评论
  • 获得235次收藏
荣誉勋章
兴趣领域
  • #算法
TA的专栏
  • 组队赛
    5篇
  • 杂记
    22篇
  • 平衡树
  • 算法学习总结
    17篇
  • 组合数学——群论
    6篇
  • 树状数组
    7篇
  • 数位dp
    12篇
  • 随机化算法
    1篇
  • 莫队
    2篇
  • dsu on tree
    3篇
  • 拓扑排序
    1篇
  • 差分约束系统
    1篇
  • 矩阵快速幂
    1篇
  • 二维线段树
  • ACM总结
    2篇
  • NTT
    1篇
  • 专业学习记录
    3篇
  • 组合数学——莫比乌斯反演
    4篇
  • 分块
    2篇
  • 原根
    1篇
  • 组合数学——容斥与鸽巢定理
    2篇
  • 组合数学——排列与组合
    5篇
  • C项目游戏
    2篇
  • C++算法入门
    88篇
  • C语言基础
    1篇
  • 数据结构
    55篇
  • dp
    28篇
  • 网络流
    14篇
  • 强连通
    5篇
  • 区间dp
    10篇
  • kmp
    18篇
  • 二分图匹配
    21篇
  • 线段树
    21篇
  • 最短路
    10篇
  • 最小生成树
    10篇
  • 计算几何
    50篇
  • 字符串哈希
    9篇
  • 概率dp+期望
    6篇
  • 并查集
    12篇
  • 博弈论
    19篇
  • codeforces
    19篇
  • 数论
    28篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

2020 Jiangsu Collegiate Programming Contest(C,D,H,J)

oj: CodeForces2021/1/27 组队赛C. Catsoj: CodeForces题意让你求出满足条件的任意一个序列并输出。条件:两个相等的值之间至少存在一个小于这个值的其他值。eg:{1,2,3}\{1,2,3\}{1,2,3}符合条件,{3,4,3}\{3,4,3\}{3,4,3}不符合条件。题解首先肯定只能有一个111,我们假设这个111在最左边。然后考虑222的位置,222只能在111的右边。333只能在222的两边,之后的类比333的情况。构造出来的序列就是
原创
24阅读
0评论
1点赞
发布博客于 4 天前

The 15th Heilongjiang Provincial Collegiate Programming Contest(A,C,F,G,H,L)

比赛链接2021/2/7训练赛Problem.A August题解不难发现上半部分是个半径为aaa的圆,下半部分利用割补小正方形的方法得出等价于一个长为2a2a2a,宽为2b2b2b的长方形。比赛时没有发现,不过队友看出下半部分面积应该是个关于aaa和bbb的表达式,并且很好算,用答案减去圆的面积反推出面积为4ab4ab4ab。代码#include <bits/stdc++.h>#define PI atan(1.0)*4#define rp(i,s,t) for (regi
原创
21阅读
1评论
0点赞
发布博客于 18 天前

Codeforces Round #640 (Div. 4)——解题报告

闲着没事打了场div4(好像是cf唯一的一场),不是很难的题,也是比较常见的cf类型的题目。比赛链接Problem.A Sum of Round Numbers题解直接按照题意模拟拆位,并输出每一个非零的数位。代码#include <bits/stdc++.h>#define PI atan(1.0)*4#define rp(i,s,t) for (register int i = (s); i <= (t); i++)#define RP(i,t,s) for (re
原创
21阅读
0评论
0点赞
发布博客于 19 天前

周行新春码拉松第二赛道——题解+代码

本题解参加2021周行新春码拉松比赛链接Problem.A 等差数列题解我们需要知道等差数列前n项和的第二个公式,不知道的话直接手推也行。公式:Sn=n∗a1+n∗(n−1)∗d2S_{n}=n*a_{1}+\frac{n*(n-1)*d}{2}Sn​=n∗a1​+2n∗(n−1)∗d​公式里面的d=a2−a1d=a_{2}-a_{1}d=a2​−a1​,然后直接带入公式即可。trick:数据范围会爆int,注意开long long。代码#include <bits/stdc++.h
原创
25阅读
0评论
0点赞
发布博客于 26 天前

The 14th Jilin Provincial Collegiate Programming Contest部分题解(A,B,C,E,F,G,H,J,L,M)

oj: CodeForces1月31训练赛Problem A.Chord题解签到题,根据题目判断一下就行(注意是环)代码#include <bits/stdc++.h>#define PI atan(1.0)*4#define rp(i,s,t) for (register int i = (s); i <= (t); i++)#define RP(i,t,s) for (register int i = (t); i >= (s); i--)#define .
原创
49阅读
0评论
0点赞
发布博客于 1 月前

2020 年第一届辽宁省大学生程序设计竞赛——全部题目

2020/1/23训练赛A.组队分配(签到题)oj: 牛客题解排序后直接输出。代码#pragma GCC optimize(2)#include <bits/stdc++.h>#define _for(i, a) for(int i = 0, lennn = (a); i < lennn; ++i)#define _rep(i, a, b) for(int i = (a), lennn = (b); i <= lennn; ++i)using namesp.
原创
51阅读
0评论
0点赞
发布博客于 2 月前

2020ICPC 江西省大学生程序设计竞赛(A,B,E,G,H,I,K,L,M)

2021/1/16训练赛A-A Simple Math Problemjudge:牛客题意给你一个n,让你求出∑i=1n∑j=1i[gcd(i,j)==1]f(j)\sum_{i=1}^{n}\sum_{j=1}^{i}[gcd(i,j)==1]f(j)∑i=1n​∑j=1i​[gcd(i,j)==1]f(j)。其中f(x)表示的是数位和,eg:f(122)=1+2+2=5。题解一眼可以看出是道反演题,但是仔细想想发现不是特别好维护,然后给的范围又有点误导,让人以为可以瞎搞过(实际上真.
原创
79阅读
0评论
0点赞
发布博客于 2 月前

Codeforces Round #693 (Div. 3)ABCDE——解题报告

比赛链接:https://codeforces.com/contest/1472A-Cards for Friends题解按照题意直接模拟就行,答案就是能 (被w乘除的最大的2的n次幂) 乘以 (被h乘除的最大的2的n次幂)。判断是否大于等于n就行了。简单做法:巧妙利用二进制运算&处理,答案就是( w&(-w) )*( h&(-h) ),这个运算在树状数组中用的比较多。麻烦做法:直接根据题意模拟即可。代码简单做法if(1ll*(w&..
原创
39阅读
0评论
0点赞
发布博客于 2 月前

Codeforces Round #696 (Div. 2)ABCD——解题报告

比赛链接LinkA - Puzzle From the Future题解本来以为是个规律题,还找了一个看似合理的规律,最后发现直接模拟就行了。根据题意进行贪心模拟就行了,当前位置为1时,看上一个位置的和是不是2,是的话当前位置只能为0,否则就选1当前位置为0时,看上一个位置的和是不是1,是的话当前位置只能为0,否则就选1代码#include <bits/stdc++.h>#define PI atan(1.0)*4#define rp(i,s,t) for (registe
原创
39阅读
0评论
0点赞
发布博客于 2 月前

Codeforces Round #691 (Div. 2)ABC——解题报告

比赛链接https://codeforces.com/contest/1459A - Red-Blue Shuffle直接求出ai>bi和ai<bi的个数就行了,如果ai>bi比较多则输出RED,如果ai<bi比较多则输出BLUE,相等的话输出EQUAL证明:首先ai==bi的情况不用考虑,因为不论怎么排列,对应位置都是相等的。然后考虑ai>bi的情况,当ai和bi都在第一位时,RED的个数会加一,ai<bi的情况同理。最后比较一下RED的..
原创
28阅读
0评论
0点赞
发布博客于 2 月前

2020ICPC江西省赛A——莫比乌斯反演

A-A Simple Math Problemjudge:牛客题意给你一个n,让你求出∑i=1n∑j=1i[gcd(i,j)==1]f(j)\sum_{i=1}^{n}\sum_{j=1}^{i}[gcd(i,j)==1]f(j)∑i=1n​∑j=1i​[gcd(i,j)==1]f(j)。其中f(x)表示的是数位和,eg:f(122)=1+2+2=5。题解一眼可以看出是道反演题,但是仔细想想发现不是特别好维护,然后给的范围又有点误导,让人以为可以瞎搞过(实际上真的可以打表过或者容斥过),然后
原创
29阅读
0评论
0点赞
发布博客于 2 月前

Educational Codeforces Round 102 ABCD——解题报告

比赛链接:https://codeforces.com/contest/1473A——Replacing Elements当数组中的最小值和次小值的和小于等于d时或者数组中每个位置的值都小于等于d时输出YES,否则输出NO。因为按照贪心的思想我们肯定每次选择这两个位置的值对其他位置进行赋值,所以直接判断就行了。特判一下一次都不赋值的情况就行了。#include <bits/stdc++.h>#define PI atan(1.0)*4#define rp(i,s,.
原创
102阅读
0评论
0点赞
发布博客于 2 月前

GDUT2020新生赛——解题报告

比赛链接https://ac.nowcoder.com/acm/contest/9692#questionA题——肥猪的钢琴床一道挺不错的dp+结论题。首先最终的字符串的形式肯定是0...01...10...0这种,分为三个部分,第一部分的全0,中间部分的全1,最后一部分的全0。我们定义状态dp[i][1/2/3]表示第i个字符属于第几个部分时最少需要删除的字符数量。状态转移方程:dp[i][1]=dp[i-1][1]+(s[i]=='1')当第i个字符属于第一部分时,.
原创
49阅读
0评论
0点赞
发布博客于 2 月前

Codeforces Round #690 (Div. 3)——解题报告

比赛链接:https://codeforces.com/contest/1462A题——Favorite Sequence根据题意直接模拟即可。#include <bits/stdc++.h>#define PI atan(1.0)*4#define rp(i,s,t) for (register int i = (s); i <= (t); i++)#define RP(i,t,s) for (register int i = (t); i >= (s);.
原创
26阅读
0评论
0点赞
发布博客于 2 月前

牛客巅峰训练赛S2钻石&王者——补题

第五场求一个树的非严格第二直径,我们首先可以直接求出树的直径,并记录下直径的两个端点,然后我们考虑分别以这两个端点进行bfs,记录最大深度以及最大深度的个数,判断最大深度个数是否大于等于二,如果满足条件,答案就是最大深度,否则答案就是最大深度-1.#define rp(i,s,t) for (int i = (s); i <= (t); i++)int vis[100007];int dis[100007];vector<int> G[100007]; int a.
原创
28阅读
0评论
0点赞
发布博客于 2 月前

2020河南省赛F题——二分+2-SAT

题目链接http://acm.zzuli.edu.cn/problem.php?cid=1566&pid=5题解首先不难想到可以二分枚举答案,然后再判断枚举的答案是否合法,因此关键就在于这个怎么能够快速地判断是否合法了。根据题意我们可以发现一个景点最多有两种状态,要么不是商业区(值为a[i],用i来表示),要么是商业区(值为b[i],用i+n表示)。因此可以联想到图论中经典的2-SAT问题,之后就只需要考虑怎么建图了。我们可以直接枚举每条边的两个点的所有状态,即x不是..
原创
25阅读
0评论
0点赞
发布博客于 2 月前

哈理工新生赛S题Calculate Sum——莫比乌斯反演基础题

题目链接:https://ac.nowcoder.com/acm/contest/9536/S题解:一道反演的比较基础的题,进行一下比较简单的转换就行了。不过需要对反演的知识有一定的了解,不懂的可以参考:我也不知道什么是"莫比乌斯反演"和"杜教筛"推导过程:代码实现:#include <bits/stdc++.h>#define PI atan(1.0)*4#define rp(i,s,t) for (int i = (s); i <= (t);...
原创
75阅读
1评论
0点赞
发布博客于 2 月前

Educational Codeforces Round 98B——Toy Blocks

题目链接https://codeforces.com/contest/1452/problem/B题意给你n个盒子,每个盒子有ai个木块,现在可以将一些额外的木块放进n个盒子里面,求最小的额外木块数使得下面这个条件成立。任意选择一个盒子,并从盒子取出所有木块,并且把木块分配到其他n-1个盒子中,使得这n-1个盒子的木块个数相等。题解设cnt为最小的额外木块数,sum为所有盒子的木块数根据题意(即最终n-1个盒子的木块相等)可得(sum+cnt)%(n-1)==0。而且还.
原创
28阅读
0评论
1点赞
发布博客于 2 月前

操作系统课设——编程演示三种管理方式的地址换算过程

核心内容编程演示三种管理方式的地址换算过程分页方式的地址换算 分段方式的地址换算 段页式的地址换算概括程序主要有三个功能,分别是 分页方式的地址换算,分段方式的地址换算,段页式的地址换算。Switch 函数包含 3 个 case 语句,分别用 page , Segment , SegPageTable 分别完成分页方式的地址换算,分段方式的地址换算,段页式的地址换算。数据结构struct segtable{//定义段表 int segF[256];//段首...
原创
96阅读
0评论
0点赞
发布博客于 2 月前

JAVA课设.zip

设计完成一个观影网站影评管理程序。使用Java语言,与存储在Hsqldb数据库中的数据进行交互,恰当地使用集合对数据相应的操作,通过控制台或图形界面拟实现以下功能: 1. 用户信息的录入、修改、删除、查询 2. 电影信息的录入、修改、删除、查询 3. 按电影名字或用户名字查询影评信息 4. 用户对某一电影进行影评操作
zip
发布资源于 2 月前

观影网站影评信息管理系统

设计完成一个观影网站影评管理程序。使用Java语言,与存储在Hsqldb数据库中的数据进行交互,恰当地使用集合对数据相应的操作,通过控制台或图形界面拟实现以下功能:用户信息的录入、修改、删除、查询 电影信息的录入、修改、删除、查询 按电影名字或用户名字查询影评信息 4.用户对某一电影进行影评操作类图运行结果图代码,课程报告和任务书在上传...
原创
135阅读
1评论
1点赞
发布博客于 2 月前

Codeforces Round#688——解题报告

链接https://codeforces.com/contest/1453A——Cancel the Trains题意给你n个从y轴出发的火车(从左到右)和m个从x轴出发的火车(从上到下),火车的速度相同,问你有多少个火车会相撞。题解转换后的题意就是问你n个火车里面和m个火车里面有多少个位置相同的点。代码#include <bits/stdc++.h>#define PI atan(1.0)*4#define rp(i,s,t) for (regist.
原创
51阅读
0评论
0点赞
发布博客于 3 月前

Codeforces Round#687(div2)——解题报告

比赛链接:https://codeforces.com/contest/1457A——Prison Break题意:给你一个n*m的矩阵,求这个矩阵
原创
17阅读
0评论
0点赞
发布博客于 3 月前

牛客小白月赛29 DIJ题——解题报告

题目链接:https://ac.nowcoder.com/acm/contest/8564I题修改题解:比较巧妙的转换成图论的好题,思路感觉不太好像,不过感觉是个经典题(雾)。因为初始的序列是随机,不妨假设序列的每一位的数都不一样,即最复杂的情况。然后我们考虑这个操作的意义,第i次操作其实就是把的值变成的值,我们可以建一个虚点a[n+1]=0。这样操作就变成了在和建一条权值为的边,具体的含义上面解释过了。这样最终的答案不就是求我们建的图的最小生成树的权...
原创
31阅读
0评论
0点赞
发布博客于 3 月前

Codeforces Round684(Div 2)——解题报告

题目链接https://codeforces.com/contest/1440A题:Buy the String题意:给你一个长度为n的01串,你可以执行任意次翻转操作(即把第i位翻转),每次操作消耗的代价为h,定义0的代价为c0,1的代价为c1,对于一个串的代价就是0和1的代价和,求最小代价和。题解:我们考虑每一位,如果当前位为0,考虑翻转和不翻转的情况,那么最小的代价就是min(c0,c1+h),同理可以得出当前位为1的最小代价为min(c1,c0+h).最终的代价和就是..
原创
76阅读
0评论
2点赞
发布博客于 3 月前

Codeforces Round #683——解题报告

题目链接:https://codeforces.com/contest/1447A题——Add Candies题意: 给你一个数n,表示这个排列为1-n(即第i个数的值为i),然后我们可以执行无限次一种特殊操作:对第i个数的第j次操作可以使除第i个数之外的其他 n 个数的值加 j 。让你输出一个方案使得所有位置的数的值相等。题解: 样例给出的方案有点误导,因此我们需要自己构造一个合法的方案,观察操作不难发现,可以想办法尽可能的把每个位置的数都凑成n*(n...
原创
107阅读
0评论
0点赞
发布博客于 3 月前

2020CCPC长春F题——dsu on tree+二进制拆分

题目链接https://codeforces.com/gym/102832/problem/F题意:给你一颗n个节点的树,让你求出的值。题解:对于这种子树查询的问题,常用的方法也就那几种,要么就是树链剖分后用数据结构维护,要么就是dsu on tree。不难发现这个题用dsu on tree比较好写,即考虑以每个节点为根(即lca)的子树,然后枚举不同儿子之间对答案的贡献。dsu on tree常见的套路是处理子树内的查询,而对于这种子树间的查询就需要对dsu on.
原创
79阅读
0评论
1点赞
发布博客于 3 月前

2020杭电多校9-Game——无旋treap

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6873前置知识:无旋treap和线段树无旋treap推荐博客:https://www.luogu.com.cn/blog/85514/fhq-treap-xue-xi-bi-ji线段树推荐博客:https://www.cnblogs.com/TheRoadToTheGold/p/6254255.html题目大意:一共有n个位置,每个位置上都有一些方块。每次有两种操作:1 x ..
原创
27阅读
0评论
0点赞
发布博客于 4 月前

杭电多校第六场E题——区间dp

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6831题意:给你一个无限长的字符串"114514191911451419191145141919...",然后对于这个字符串的任意一个前缀,我们可以在中间插入(),*和+,让你求出能够凑出n的最小的字符串的长度。题解:定义状态dp[l][r][val]表示[l,r]区间能否凑出val状态转移方程:dp[l][r][p+k]=dp[l][m][p]&dp[m+1][r][k];dp.
原创
27阅读
0评论
0点赞
发布博客于 5 月前

杭电多校第三场 Triangle Collision——思维+二分

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6798题意:给你一个等边三角形的坐标,以及等边三角形内运动的球的坐标和速度,当这个球在三角形碰撞到一条边反射时,反射角等于入射角,且速度不会变,即没有碰撞损失,现在让你求出第k次碰撞的时间。题解:这个题的难点在于怎么把题意转换成比较好求的方法。官方题解给的方法是把这个等边三角形不断对称,直至铺完整个平面。这样就不用考虑反射了。题意就转换成了小球的运动轨迹会穿过多少轨迹线,不难发现只有与x轴平.
原创
56阅读
0评论
0点赞
发布博客于 5 月前

杭电多校第三场X Number——数位dp+指数型母函数

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6796题目大意:给你一个区间[l,r],让你求出这个区间内满足数位中众数为d的数的个数。题解:一道披着数位dp皮的组合计数题。如果用常规数位dp的思路去维护,不难发现状态很难维护,因此我们要考虑换一种思路。考虑数位dp枚举当前位时,当前位不是数位的上限的情况。eg:假设数位上限为123456789,当前枚举到第七位,之前的数位为123455(即123455XXX),即前面数位有1个1.
原创
28阅读
1评论
0点赞
发布博客于 5 月前

牛客第六场H题——数位dp

题目链接:https://ac.nowcoder.com/acm/contest/5671/H题意:给你一个区间[l,r],求区间内满足S(A)>S(B)且A<B的对数,S表示一个数的数位和。题解:定义状态dp[i][j][f1][f2][f]表示当前枚举到第pos位,之前的数位差为j,f1表示A是否枚举到数位上限,f2表示B是否枚举到数位上限,f表示前面是否已经满足S(A)>S(B)。然后就是数位dp的常规写法了。代码实现:#pragma GCC opti.
原创
10阅读
0评论
0点赞
发布博客于 5 月前

2017浙江省赛F - Heap Partition ——贪心+stl+二分

题目链接https://zoj.pintia.cn/problem-sets/91827364500/problems/91827370090题意:给你一个长度为n的序列,然后让你求出把这个序列分成最少个数的"堆子序列",请输出"堆子序列"的个数和方案。堆子序列:一棵n个节点的二叉树,对于一个非根节点,节点的值小于等于儿子节点的值,且下标小于儿子节点的下标。题解:不难想到解法就是从前往后枚举,并维护一个存储不同树对应节点的结构,然后贪心的把当前数插入到最大的小于当前值的节点的下.
原创
34阅读
0评论
0点赞
发布博客于 5 月前

2017浙江省赛E-Seven Segment Display——简单数位dp

题目链接:https://zoj.pintia.cn/problem-sets/91827364500/problems/91827370089题目大意:给你一个16进制数s和偏移量n(注意超出的话就从00000000重新开始),0-F分别对应一种权值,求s到s往后加n位的所有数的每一位的权值和,包含前导0.题解:首先要清楚利用数位dp我们可以直接求出L到R的所有数的每一位的权值和或者求出L到R中所有数的每一位的出现次数,然后乘以对应权值相加就是答案。但是这里有一种情况需要考虑,..
原创
30阅读
0评论
0点赞
发布博客于 5 月前

2020牛客多校第三场题解(ABCEFGL)

题解:https://ac.nowcoder.com/acm/contest/5668
原创
105阅读
0评论
0点赞
发布博客于 7 月前

2020牛客多校第一场反思+总结+题解(AFHIJ)

题目链接https://ac.nowcoder.com/acm/contest/5666#question题解A题B-Suffix Array题意:给你一个字符串s,同时定义B函数为:其中,如果没有符合的j,那么。然后让你求出s字符串的所有后缀串按照B函数求出的字符串t排序后的顺序。这个题有两种做法,一种是直接套用官方题解给出的结论直接求后缀数组就行,一种是按照正常思路来解,但是相对而言还算好想(相比官方题解)。先讲第二种解法,也是比赛时还能想到的。首先我们如果能想到一种..
原创
107阅读
0评论
0点赞
发布博客于 7 月前

2020牛客多校第二场总结+反思+题解(BCDFJ)

题目链接:2020牛客暑期多校训练营(第二场)题解B题Boundary题意给你n个点,考虑这选一个经过原点的圆,并且这个圆经过这n个点的个数最多,求这个最多的点数。题解这个题的做法挺多的,可以枚举圆心或者半径,也可以枚举圆周角(题解的做法)。时间复杂度:O(n^2logn)首先我们需要知道一个定理:三个点可以确定一个圆。做法一:枚举圆心或者半径现在我们已知一个原点(0,0),然后我们可以枚举两个点,然后求出三个点形成的圆的圆心,并记录圆心的最大出现次数,.
原创
188阅读
1评论
0点赞
发布博客于 7 月前

食堂窗口信息管理系统.7z

C语言程序设计大作业。 食堂窗口信息管理系统,也可以进行投票,并筛选出最佳窗口。 操作前把文件内的数据存入到结构体数组中。 投票结束后把投票数据存储到文件中。
7z
发布资源于 9 月前

Rinne Love Xor——异或性质

题目链接:https://ac.nowcoder.com/acm/contest/5505/B题解:首先我们要分析一下这个公式
原创
69阅读
0评论
0点赞
发布博客于 10 月前

小H和游戏——dfs序+树状数组 | 思维

题目链接:https://ac.nowcoder.com/acm/contest/5203/D题目大意:给你一棵n个节点的树,然后有q次轰炸,每次轰炸可以波及到与当前节点距离小于等于2的节点,并输出该次轰炸后当前节点的被轰炸次数。题解:解法一:树状数组(线段树)+dfs序这个题先讲相对而言时间复杂度比较高的解法,但是比较好想,容易理解。首先我们可以求出每个点的儿子编号...
原创
85阅读
0评论
0点赞
发布博客于 10 月前

Music Problem——01背包优化

题目链接:https://ac.nowcoder.com/acm/contest/5203/B一道很不错的题目,综合了多个知识点。题意:给你n个数,判断能否在这n个数中选一些数组成3600的倍数。先给这个题的一般形式。给你n个数,判断能否在这n个数中选一些数组成m的倍数。(1 ≤ n ≤ 1e6,2 ≤ m ≤ 1e3)然后我们可以发现一个01背包的解法(时间复杂...
原创
65阅读
0评论
0点赞
发布博客于 10 月前

hdu4352——数位dp+O(nlogn)求LIS+状压

题目链接:https://vjudge.net/problem/HDU-4352题目大意:给你一个区间[l,r],让你求这个区间内符合条件的数的个数。条件:这个数的数位上的LIS的长度等于k。题解:一道很好的题目,需要知道怎么O(nlogn)求LIS,这样在才能进行状态转移。如果不懂怎么O(nlogn)求LIS,可以看下我的的博客:https://blog.csdn...
原创
43阅读
0评论
0点赞
发布博客于 1 年前

dp——O(nlogn)求LIS

闲话众所周知,求LIS最简单的方法是O(n^2)的,但是有的题目会卡这个做法,这时我们就需要考虑优化了。算法描述我们定义一个数组d[i]为表示长度为i的上升子序列的最小末尾元素。然后我们每次往里面插入数字的时候考虑是否大于最后一个元素,如果大于接直接插入,否则的话找到前面比他大的第一个元素,并且把它替换掉,最后的数组大小就是LIS的长度。举例阐述下面模拟一组数据:2,5,...
原创
65阅读
0评论
1点赞
发布博客于 1 年前

cf55D——数位dp+离散化+构造

题目链接:https://vjudge.net/problem/CodeForces-55D题目大意:计算给定范围中有多少个漂亮数。一个正整数是漂亮数,当且仅当它能够被自身的各非零数字整除。题解:首先要知道一个结论:一个数如果能被一些数整除,那么一定会被这些数的最小公倍数整除。因此我们可以求出lcm(1,2,3....9)=2520.对于任何一个数 num,...
原创
30阅读
0评论
1点赞
发布博客于 1 年前

hdu4507——数位dp(计数求和)

题目链接:https://vjudge.net/problem/HDU-4507题目大意:如果一个整数符合下面3个条件之一,那么我们就说这个整数和7有关——  1、整数中某一位是7;  2、整数的每一位加起来的和是7的整数倍;  3、这个整数是7的整数倍;求一定区间内与7无关的数的平方和。题解:这个题约束条件很常见,但是要求的不是数的个数,而是平方和就有点恶心了。...
原创
88阅读
0评论
1点赞
发布博客于 1 年前

SPOJBALNUM——数位dp+状压

题目链接:https://vjudge.net/problem/SPOJ-BALNUM题目大意:求[l,r]区间的平衡数的个数。平衡数:所有数位中每一个奇数出现偶数次,每一个偶数出现奇数次。题解:定义flag为0表示未出现,1表示出现奇数次,2表示出现偶数次。所以我们可以把0-9的所有数状压成一个10位的三进制数state,这个状态记录每个数的出现情况。定义状态为...
原创
32阅读
0评论
1点赞
发布博客于 1 年前

luoguP3413——高精度+数位dp

题目链接:https://www.luogu.com.cn/problem/P3413题目大意:求[l,r]中满足"存在长度至少为2的回文子串"的数的个数。题解:存在长度至少为2的回文子串意味着我们只需要考虑是否存在'aa'或者'aba'这种形式的子串就行了。因此我们可以定义状态为dp[pos][pre1][pre2][flag]表示枚举到pos位,pre1表示上一个数...
原创
46阅读
0评论
1点赞
发布博客于 1 年前

luoguP4127——数位dp+枚举

题目链接:https://www.luogu.com.cn/problem/P4127题目大意:给出两个数a,b,求出[a,b]中各位数字之和能整除原数的数的个数。题解:各位数字之和最大为9*18=162,因此我们可以枚举数字之和。定义状态为dp[pos][sum1][sum2]表示枚举到pos位,前面数位的和sum1,以及前面数位的组成的数对mod取余的结果。最后...
原创
29阅读
0评论
1点赞
发布博客于 1 年前

hdu3709——数位dp+枚举

题目链接:https://vjudge.net/problem/HDU-3709题目大意:求区间[l,r]里面满足平衡数的数的个数平衡数定义:可以通过找一个平衡数位,该数位左边的数位乘以偏移距离的和等于右边的数位乘以偏移距离的和。e.g:4139,平衡数位为3,4*2+1=9,因此该数是平衡数。题解:定义状态dp[pos][k][sum]表示枚举到pos位置,当前平衡数位...
原创
36阅读
0评论
1点赞
发布博客于 1 年前

hdu4734——数位dp(减去的艺术)

题目链接:https://vjudge.net/problem/HDU-4734题目大意:求区间[l,r]内满足数x的F(x)<=F(a)的数的个数。对于一个n位的数(AnAn-1An-2....A1),F(x)=An*2^(n-1)+An-1*2^(n-2)+...+A1*1.题解:首先我们肯定要维护一个状态sum表示前pos位数的F(x)值,最后判断一下是否大于F(...
原创
47阅读
0评论
1点赞
发布博客于 1 年前

poj3252——数位dp(减去的艺术)

题目链接:https://vjudge.net/problem/POJ-3252题目大意:求满足区间[l,r]内满足二进制0的个数大于1的个数的数的个数。题解:设状态dp[pos][sum]表示枚举到第pos个位置,前面的所有数位的数的二进制0的个数减去1的个数。因此sum可能小于0,且最小为-32,因此我们可以离散化一下,把实际的-32看成0,实际的0看成32,这样只需要最...
原创
46阅读
0评论
1点赞
发布博客于 1 年前

2019ECfinal H - King ——随机算法|推结论

题目链接:http://codeforces.com/gym/102471/problem/H题目大意:给你一个长度为n的序列,要你求这个序列中的最长国王子序列长度,如果长度小于n/2,输出-1,否则输出长度。国王序列定义:对于一个序列a1,a2,a3,.....,an。当且仅当有一个整数q(1<=q<p)使得,且 q*ai-1= ai (mod p)。题解:...
原创
468阅读
0评论
1点赞
发布博客于 1 年前

2019EC E - Flow——贪心+规律

题目链接:http://codeforces.com/gym/102471/problem/E题目大意:给你n个点的一个简单图(即保证所有从1到n的路径上的点数都是相等的,且这些路径没有交点)然后有一种操作,给一条边上的容量减一,另一条边的容量加一,问最少执行多少次操作使得从1到n的最大流最大。题解:这个题的关键在于读题,需要注意到这个图的特点。首先我们不难想到图的最...
原创
58阅读
0评论
1点赞
发布博客于 1 年前

2019湘潭邀请赛C - Chika and Friendly Pairs——莫队+树状数组+离散化

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6534题目大意: 给你一个长度为n的序列,有m次查询操作,每次查询[L,R]区间的友好对的个数。友好对的定义:满足i<j,且|ai-aj|<=K。题解:首先我们把题意转换一下,相当于枚举[L,R]区间内每个值a[i],且[L,R]区间内值在[ai-k,ai+k]的数的个数。...
原创
90阅读
0评论
1点赞
发布博客于 1 年前

dp训练计划——poj3666(离散化+滚动数组优化)

题目链接:https://vjudge.net/problem/POJ-3666#author=0258题目大意:求最小的代价使得序列变成不减或者不增序列。题解:状态:dp[i][j]表示前i个序列,且最大值为j的代价。状态转移方程:dp[i][j]=abs(j-w[i])+min(dp[i-1][k])(k<=j)注意我们求min(dp[i-1][k...
原创
85阅读
0评论
1点赞
发布博客于 1 年前

dp训练计划——poj3616LIS变形

题目链接:https://vjudge.net/problem/POJ-3616题解:直接把额外需要的休息时间加到结束时间上,然后按照开始时间排个序,用类似于LIS的套路求出最大牛奶量就行了。状态:dp[i]表示从1到i的最大牛奶量状态转移:dp[i]=dp[j]+第i个的牛奶量(1<=j<=i-1&&j的结束时间小于等于i的开始时间)#pr...
原创
67阅读
0评论
0点赞
发布博客于 1 年前

dp训练计划——最大对称子矩阵hdu2859

题目链接:https://vjudge.net/problem/HDU-2859题意:给你一个n*n的字母矩阵,求最大对称子矩阵的长度。题解:经典的dp问题。状态:dp[i][j]表示从(i,j)开始到右上角某一点能形成的最大对称子矩阵长度。状态转移:注意枚举顺序,因为是考虑的右上角,我们可以考虑正着枚举i,倒着枚举j。这样保证了无后效性。代码实现:...
原创
61阅读
0评论
0点赞
发布博客于 1 年前

2019ICPC徐州站重现赛——ACFM题解

比赛链接:https://www.jisuanke.com/contest/5529?view=challengesA - Cat题解:先打出异或前缀和的表,不难发现当在偶数位置pos时,[pos,pos+3]这些数的异或和为0,这意味着中间的序列可以每四个四个的连一起,因为他们异或和的值为0,因此我们就可枚举开头和结尾的位置,并维护最大长度。代码实现:...
原创
128阅读
0评论
0点赞
发布博客于 1 年前

dp训练计划——hdu1078记忆化搜索

题目链接:https://vjudge.net/problem/HDU-1078题目大意:有一种游戏是的玩法是这样的:有一个n*n的格子,每个格子有一个数字。遵循以下规则:1. 玩家每次可以由所在格子向上下左右四个方向进行直线移动,每次移动的距离不得超过m2. 玩家一开始在第一行第一列,并且已经获得该格子的分值3. 玩家获得每一次移动到的格子的分值4. 玩家下一次移动到达...
原创
43阅读
0评论
0点赞
发布博客于 1 年前

dp训练计划——poj3186区间dp简单题(递推+记忆化搜索)

题目链接:https://vjudge.net/problem/POJ-3186题目大意:给你n个数字v(1),v(2),...,v(n-1),v(n),每次你可以取出最左端的数字或者取出最右端的数字,一共取n次取完。假设你第i次取的数字是x,你可以获得i*x的价值。你需要规划取数顺序,使获得的总价值之和最大。Input第一行一个数字n(1<=n<=2000...
原创
64阅读
0评论
0点赞
发布博客于 1 年前

dp训练计划——poj1015(01背包变形+路径输出)

题目链接:https://vjudge.net/problem/POJ-1015题目大意:在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定。陪审团是由法官从公众中挑选的。先随机挑选n个人作为陪审团的候选人,然后再从这n个人中选m人组成陪审团。选m人的办法是: 控方和辩方会根据对候选人的喜欢程度,给所有候选人打分,分值从0到20。为了公平起见,法官选出陪审团的原则是:选出的m个人,...
原创
62阅读
0评论
0点赞
发布博客于 1 年前

dp训练计划——hdu1176逆序dp

题目链接:https://vjudge.net/problem/HDU-1176题目大意:都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接。但由于小径两侧都不能站人,所以他只能在小径...
原创
43阅读
0评论
0点赞
发布博客于 1 年前

dp训练计划——hdu1260简单dp

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1260题目大意:现在有n个人要买电影票,如果知道每个人单独买票花费的时间,还有和前一个人一起买花费的时间,问最少花多长时间可以全部买完票。Input给出 N(1<=N<=10),表示有N组样例     给出K (1<=K<=2000),表示有K个人买票....
原创
74阅读
0评论
0点赞
发布博客于 1 年前

dp训练计划——hdu1257简单dp

题目链接:https://vjudge.net/problem/HDU-1257题目大意:某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹.怎么办呢?多搞几套系统呗!...
原创
67阅读
0评论
0点赞
发布博客于 1 年前

dp训练计划——完全背包板子题

题目链接:https://vjudge.net/problem/HDU-1114题目大意:给你一个罐子的承受重量V,然后给你n种金币,每一种金币有两个属性,价值C[i]和重量W[i],每一种金币有无限个。然后让你判断是否能用罐子装重量为V的金币,如果能,请输出重量为V时金币的最小价值。题解:完全背包模板题,不过要注意初始化问题,在背包九讲里面也都讲了,不懂的自行百度。...
原创
95阅读
0评论
0点赞
发布博客于 1 年前

dp训练计划——hdu1074状压dp入门题

题目链接:https://vjudge.net/problem/HDU-1074题目大意:给你n个作业的名字,截止时间,完成需要的时间,数据按照字典序大小给你让你求出完成这个n个作业的最小延误时间(即超时时间),并输出字典序最小的安排顺序。题解:经典状压dp入门题,其实就是暴力枚举,只不过压缩一下用一个数表示全部的状态,然后暴力枚举所有状态,维护答案。我们首先需要发...
原创
69阅读
0评论
0点赞
发布博客于 1 年前

dp训练计划——hdu1024最大子段和

题目链接:https://vjudge.net/problem/HDU-1024题目大意:给你一个长度为n的序列,让你求出把这个序列分为m个不相交子段的最大和。题解:从今天开始重新刷一起没写完的dp了,开始自闭之旅。首先说一下状态:dp[i][j]表示在前j个数中分成i个子段的最大值,并且最大值以第j项结尾状态转移方程:dp[i][j]=max(dp[i][j-1]+...
原创
75阅读
0评论
0点赞
发布博客于 1 年前

CCPC2019哈尔滨E题——拓扑排序|数学

题目链接:https://codeforces.com/gym/102394/problem/E题目大意:总共有两种操作:1.给一个长度为m的序列2.给两个数字x,y,代表本次操作是将第x个序列和第y个序列拼接成一个序列。(x,y均为之前某次操作得到的串)操作总数1e6,给出的序列长度1e6,由2操作得到的串的长度保证不超过1e18,求最后一个操作得到的串的最大快乐值是多...
原创
282阅读
0评论
0点赞
发布博客于 1 年前

CCPC2019哈尔滨站L题——单哈希+模拟

题目链接:https://codeforces.com/gym/102394/problem/L题目大意:给你一个长度为n的序列,即执行序列,然后给你qu次查询操作,每次给你一个m值,即内存大小,以及一个长度为m的序列状态,然后让你判断在执行LRU算法(在内存大小为m)时是否会出现该序列状态。题解:比赛最后一个小时开的这个题,当时想着先暴力一下,之后再找个什么优化,结果暴力...
原创
228阅读
0评论
1点赞
发布博客于 1 年前

2019CCPC哈尔滨A题——差分约束系统+二分

题目链接:https://codeforces.com/gym/102394/problem/A题目大意:有N≤3e3个格子,你可以任意给每个格子染色,但是要满足M≤3e3限制条件,限制条件有两种类型:1.区间[l,r]中被染色的格子数量不少于K。2.区间[l,r]外被染色的格子数量不少于K。在满足所有限制条件下求染色格子数量的最小值。题解:算作是差分约束+二分的板...
原创
208阅读
0评论
0点赞
发布博客于 1 年前

Codeforces1042D——线段树|树状数组|分治+尺取

题目链接:https://vjudge.net/contest/357503#problem/D题目大意:给你一个由n个整数组成的数组a,请你计算二元组(l,r)的个数,其中(l,r)满足条件Input第一行两个整数n和t (1 ≤ n≤ 200,000 ,|t|≤ 2e14 )第二行为一个序列:a1,a2...an,注意可能有负数和零Output二...
原创
71阅读
0评论
2点赞
发布博客于 1 年前

Codeforces Round 618 A-D题解

比赛链接:A题题解:直接统计0的个数和所有数的和,如果0的个数加上总和等于0,表示我们处理把0都变成0之外,还需要在一个正数上额外再加1。代码实现:#pragma GCC optimize(2)#include<iostream>#include<algorithm>#include<cmath>#include<cs...
原创
60阅读
0评论
1点赞
发布博客于 1 年前

CodeForces1284D New Year and Conference——线段树|ST表+二分

题目链接:https://codeforces.com/contest/1284/problem/D题目大意:有n场表演,有两个场地,如果在a场地表演则需要占用[sai,eai]这段时间,在b场地表演则需要占用 [sbi,ebi] 这段时间。如果两个表演,占用了同一个时间点,则认为这两个表演是冲突的。但因为每个表演在a场地和b场地的时间段不同,有表演可能在一个场地冲突而在另一个不冲突。所...
原创
130阅读
0评论
2点赞
发布博客于 1 年前

Codeforces Hello 2020——A-E题解

比赛链接:https://codeforces.com/contest/1284A题New Year and Naming题解:当时第一思路是求出循环节就行了,不过处理的时候需要特判是n的倍数或是m的倍数的情况。比赛完看了zzq的代码,真的简介,我们从0开始读入字符串,这样询问的时候直接模拟输出就行了。代码实现:#pragma GCC optimize(2)#i...
原创
88阅读
0评论
1点赞
发布博客于 1 年前

Codeforces Round612(div2)——A-D题总结

比赛链接:https://codeforces.com/contest/1287A题 Angry Students题目大意:给你一个只包含A和P的字符串,求每个A字符后面连续出现P字符的最大次数。举个例子:APAPPAPPP答案为3,因为最后一个A后面出现连续出现了3个P字符,出现次数是最大的。Input312APPAPPPAPPPP3AAP3PPA...
原创
150阅读
0评论
1点赞
发布博客于 1 年前

Codeforces Round613 C 题——dfs+数论 | 暴力

题目链接:https://codeforces.com/contest/1285/problem/C题目描述:给你一个数x(1<=x<=1e12),让你求出满足lcm(a,b)=x,且max(a,b)最小的a和b.题解:很显然可以知道通过唯一分解定理,x可以分解为最多11个数,满足lcm(a,b)=x的条件是把x拆成两个数a,b。且a是一部分质因子的乘积(但是相同质...
原创
102阅读
0评论
0点赞
发布博客于 1 年前

2020牛客寒假集训第一场J题——矩阵快速幂

题目链接:https://ac.nowcoder.com/acm/contest/3002/J题目描述:给你5个数 :n,x,y,a,b(1<=n,x,y,z,b<=1e12)f(1)=x,f(2)=y,f(i)=f(i-1)*f(i-2)*a^b(i>3)让你求f(n)%1e9+7的值题解:f(1)=x;f(2)=y;f(3)=x*...
原创
84阅读
0评论
0点赞
发布博客于 1 年前

Codeforces Round614 D 题——暴力+构造

题目链接:https://codeforces.com/contest/1293/problem/D题目大意:偶像A在(xs, ys)处,她在坐标轴上能活动t秒,每秒她只能往上下左右方向移动一次(不能斜着走)。她的目标去去到目的地。目的地的生成条件是:第0个目的地在(x0,y0),第i个目的地在(ax⋅xi−1+bx,ay⋅yi−1+by),其中xi−1,yi−1指的是第i-...
原创
52阅读
0评论
0点赞
发布博客于 1 年前

Codeforces Round #448 (Div. 2):C题Square Subsets——线性基|状压dp

题目链接:https://codeforces.com/contest/895/problem/C题意:给你n个数,每个数<=70,问有多少个集合,满足集合中所有数相乘是个完全平方数(空集除外)题解:比赛时对这个一点思路都没有,自闭了,但是观察到数小,考虑可以用状压dp来求,但是发现很不好想,也不好调,赛后意外发现学长写的这个题的题解,发现竟然可以用线性基来求,而且相对而言也...
原创
77阅读
0评论
1点赞
发布博客于 1 年前

dsu on tree(树上启发式合并)算法总结+习题

前几天补了一下在camp中没学到的算法,树上启发式合并,一个O(nlogn)处理树上查询问题比较好的算法(其实就是暴力)前置知识学习这个算法之前需要知道一些树链剖分中的概念,不知道也没问题,下面我会给出节点的大小:以当前节点为根的子树中的节点个数重儿子:所有儿子节点中大小最大的那个节点轻儿子:除重儿子之外的儿子节点至于节点的深度等常见概念就不解释了。算法思想先拿一...
原创
613阅读
2评论
5点赞
发布博客于 1 年前

CF741D——树上启发式合并+状压优化

题目链接:https://www.luogu.com.cn/problem/CF741D题目描述一棵根为1 的树,每条边上有一个字符(a-v共22种)。 一条简单路径被称为Dokhtar-kosh当且仅当路径上的字符经过重新排序后可以变成一个回文串。 求每个子树中最长的Dokhtar-kosh路径的长度。给你n个点构成的一棵树,树里面的每一条边有一个权值,求出每个子树里面能通过...
原创
259阅读
0评论
1点赞
发布博客于 1 年前

二维线段树——区间最值系列

最近这几天学习了一下二维线段树,二维线段树主要有两种写法,四分树和树套树,暂时还没写过四分树,因为这个东西确实不常用,而且不好写也不好调。树套树的写法思路其实不难,首先我们知道,我们通常的线段树的操作都是在线段上进行的,即一维的,当推广到二维上,即矩阵时,我们就把它叫做二维线段树。二维线段树其实就是我们再操作时先找到对应x轴的区间(即第一维),之后再找到对应y轴的区间(即第二维),进行相...
原创
415阅读
0评论
0点赞
发布博客于 1 年前

Camp总结

2020-CCPC-Winter-Camp-总结今天下午最后一次camp的比赛结束了,一晃之间,7天就这么结束了,虽然都是自闭,但还是有了不小的提高,知道了很多牛逼的算法,也意识到了自己的菜。从开始的全场自闭,到最后慢慢地开始适应了比赛节奏,心态也越来越稳了,可能几天的训练不能很大...
原创
148阅读
0评论
1点赞
发布博客于 1 年前

CCPC-Winter-Camp-day6-A——NTT经典例题

题目链接:题意:给你一个数列a1,a2,....an,让你求出下面这个结果在模998244353情况下的答案。数据范围1<=n,ai<=100000Input21 2Output26题解:首先我们考虑暴力的做法,算算时间复杂度肯定过不去,然后我们考虑怎么优化,一个很明显的做法就是,我们可以单独算出i=j时的答案,即,这个可以在O(n)的时间复杂...
原创
149阅读
0评论
0点赞
发布博客于 1 年前

C++面向对象课设——观影网站影评信息管理程序

main.cpp#include <iostream>#include"User.h"#include"Review.h"#include"Film.h"#include<vector>#include<bits/stdc++.h>using namespace std;void userMenu();void filmMenu();v...
原创
555阅读
2评论
4点赞
发布博客于 1 年前

2019年12月河南农业大学邀请赛F题——幂求和

题意给你一个数列a1,a2,a3......an,数列所有值的初始值为0,有三种操作:操作1:将区间[l,r]中所有数加c操作2:将区间[l,r]中所有数变成c操作3:查询区间[l,r]中,的值最终答案对1e4+7取余就行了。题解:这个题有两个做法,一种是明显的用线段树维护就行,另一种就是用珂朵莉树,可以说是板子题了。其实正确做法是用线段树维护,珂朵莉树的做法可以...
原创
154阅读
0评论
0点赞
发布博客于 2 年前

hdu3642——矩形体积并(覆盖三次以上)

题目链接:https://vjudge.net/problem/HDU-3642DescriptionJack knows that there is a great underground treasury in a secret region. And he has a special device that can be used to detect treasury unde...
原创
92阅读
0评论
1点赞
发布博客于 2 年前

hdu1255——矩形面积并(两次覆盖以上)

题目链接:https://vjudge.net/problem/HDU-1255Description给定平面上若干矩形,求出被这些矩形覆盖过至少两次的区域的面积.Input输入数据的第一行是一个正整数T(1<=T<=100),代表测试数据的数量.每个测试数据的第一行是一个正整数N(1<=N<=1000),代表矩形的数量,然后是N行数据,每一...
原创
131阅读
0评论
1点赞
发布博客于 2 年前

hdu4553——线段树区间合并

题目链接:https://vjudge.net/problem/HDU-4553Description 寒假来了,又到了小明和女神们约会的季节。  小明虽为屌丝级码农,但非常活跃,女神们常常在小明网上的大段发言后热情回复“呵呵”,所以,小明的最爱就是和女神们约会。与此同时,也有很多基友找他开黑,由于数量实在过于巨大,怎么安排时间便成了小明的一大心事。  我们已知...
原创
59阅读
0评论
1点赞
发布博客于 2 年前

hdu4614——线段树+二分

题目链接:https://vjudge.net/problem/HDU-4614#author=2013551629Description Alice有N个花瓶(标号为0~ N-1)。当她收到一些花时,她会随机的选择一个瓶子A,从它开始遍历A,A+1, A+2, ..., N-1号瓶子,遇到空瓶子就放一朵花进去,直到花朵放完或没有瓶子,剩下的花将被丢弃。有...
原创
90阅读
0评论
1点赞
发布博客于 2 年前

hdu4578——线段树多种操作

题目链接:https://vjudge.net/problem/HDU-4578#author=hzoi2017_csmDescriptionYuanfang is puzzled with the question below:There are n integers, a 1, a 2, …, a n. The initial values of them are 0. The...
原创
80阅读
0评论
0点赞
发布博客于 2 年前

hdu3974——dfs序+线段树

题目链接:https://vjudge.net/problem/HDU-3974#author=dawn_LLDescription有一家公司有N个员工(从1到N),公司里每个员工都有一个直接的老板(除了整个公司的领导)。如果你是某人的直接老板,那个人就是你的下属,他的所有下属也都是你的下属。如果你是没有人的老板,那么你就没有下属,没有直接老板的员工就是整个公司的领导,也就是说N个员...
原创
71阅读
0评论
1点赞
发布博客于 2 年前

HDU1540——线段树维护连续区间

题目链接:https://vjudge.net/problem/HDU-1540#author=cqbzguomaoDescription在抗日战争期间,华北平原广大地区进行了大规模的隧道战。 一般来说,通过隧道连接的村庄排成一列。 除了两端,每个村庄都与两个相邻的村庄直接相连。入侵者经常对一些村庄发动袭击并摧毁其中的部分隧道。 八路军指挥官要求最新的隧道和村庄连接状态。 如果某些...
原创
50阅读
0评论
1点赞
发布博客于 2 年前

数列分块入门总结

前序分块是一种基于暴力的解决在线区间查询和区间修改等常见区间操作的算法,可以说是一种优雅的暴力,而且莫队等其他算法也是在这个算法的基础上进行的改进,所以说是很经典有用的技巧和思想。知识分块顾名思义就是把区间分成一块一块的处理,然后维护的是一个块里面的值,以达到快速解决题目给出的问题。这类算法思想不难理解,难的在于怎样运用,具体思想和代码实现可以参考UESTC的算法讲堂。这个...
原创
75阅读
0评论
1点赞
发布博客于 2 年前

cdoj1324——分块入门

题目链接:https://acm.uestc.edu.cn/problem/qing-xue-jie-yu-gong-zhu/descriptionDescription某日,百无聊赖的卿学姐打开了某11区的某魔幻游戏在这个魔幻的游戏里,生活着一个美丽的公主,但现在公主被关押在了魔王的城堡中。英勇的卿学姐拔出利刃冲向了拯救公主的道路。走过了荒野,翻越了高山,跨过了大洋,卿...
原创
74阅读
0评论
1点赞
发布博客于 2 年前

组合数学知识总结(排列组合+母函数+容斥鸽巢原理+FFT和FWT)

这篇文章算是前一段时间组合数学学习的总结吧,总算是告一段落了。目录序章知识点排列组合常用公式和定理常见数列及其性质母函数FFT&&FWT经典习题序章其实本来自己对这些知识已经总结了一部分(手写的),不过发现网上也都有,写的也都挺全面的,就懒省事搬了网上的一部分知识点的总结,当然对于一名Acmer来说只知道知识...
原创
230阅读
0评论
0点赞
发布博客于 2 年前

poj2481(二维偏序+树状数组)

题目链接:poj.org/problem?id=2481题目描述农夫约翰的牛发现,他的田地里沿着山脊生长的三叶草(我们可以将其视为一维数字线)特别好。农夫约翰有N头母牛(我们将母牛的编号从1到N)。每位农夫约翰的N头母牛都有她特别喜欢的三叶草范围(这些范围可能重叠)。范围由闭合间隔[S,E]定义。但是有些母牛很强壮,有些却很弱。给定两个母牛:母牛i和母牛j,它们最喜欢的三叶草...
原创
84阅读
0评论
0点赞
发布博客于 2 年前

poj3067(二维偏序+树状数组)

题目链接:http://poj.org/problem?id=3067DescriptionJapan plans to welcome the ACM ICPC World Finals and a lot of roads must be built for the venue. Japan is tall island with N cities on the East coa...
原创
91阅读
0评论
0点赞
发布博客于 2 年前

poj2352——二维偏序+树状数组

题目链接:http://poj.org/problem?id=2352目录DescriptionInputOutputSample InputSample OutputDescription天文学家经常研究星图,星图上的星星由平面上的点表示,每颗星星都有笛卡尔坐标。一颗星星的等级是指该星星左下方的星星的数量.例如,查看上图所示的地图,5号星的等级为3...
原创
118阅读
0评论
1点赞
发布博客于 2 年前

poj2299 树状数组+逆序数

题目链接:http://poj.org/problem?id=2299In this problem, you have to analyze a particular sorting algorithm. The algorithm processes a sequence of n distinct integers by swapping two adjacent sequence e...
原创
39阅读
0评论
1点赞
发布博客于 2 年前