自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 atcoder 补题 思维

C - Folia题目链接题目大意有一棵二叉树,总共n层(1e5),每层有ai个叶子节点(1e8).问这个二叉树里最多有多少个节点。肯定优先这种情况:一个连一个的这种二叉树最多有两个儿子,所以我比赛的时候总想着从上往下推万一多了,不能满足下面的,从下往上又不一定上面有那么多。于是我就懵逼了。题解如果这一层下面总共有x个叶子节点,最好分出x个分支,每个叶子节点一个分支,随便到第几层截至,只要是在这层下面即可。但是x个分支不一定能分出来,因为还受上层不是叶子结点的分支有多少个限制。这个

2020-05-31 11:25:07 322

原创 湖南多校补题 dp

C - Cent Savings题目链接题目大意给n个东西,每个东西ai块钱,付钱的时候四舍五入,让把这n个东西分成最多k+1块,问付的最少的钱是多少。题解dp[i][j] 表示前i个物品分成 j 块至少需要多少钱。转移方程就是前i个物品分成j块,可从前k个物品分成j - 1块转移来。然后取最小值就好。代码#include <iostream>#include <cstdio>#include <vector>#include <stack&g

2020-05-29 17:26:10 124

原创 cf补题 D

D - Yet Another Yet Another Task题目链接题目大意让你从一段区间里删除一个最大值,求他们的和。问这个和的最大值是多少。n是1e5.但是数组里数字的大小只有 -30~30题解求一段区间删除最大值后的和。可以枚举一个数,假设这个数是删除的数然后求这个数的前面连续的小于等于这个数的和的最大值和这个数后面的连续的小于等于这个数的和的最大值这怎么求?dpl[i][j] 表示第i个以及第i个左边小于等于j的数的和的最大值。dpr同理然后从左到右处理一遍,从

2020-05-29 13:36:48 150

原创 思维,,

H - Hash Code Hacker题目链接大意hash的算法:s [0]*31^( n -1) + s [1]*31^( n -2) + … + s [n -1]给出一个k,让找出k个hash值相等的字符串,(只能由大小写英文字母构成)。题解这道题,毫无头绪,我又菜了。好菜好菜把它看成31进制,,,前一位数-1,后一位数+31. 与原来的串相等。代码#include <cstdio>#include <iostream>#include <al

2020-05-27 16:37:35 105

原创 湖南多校补题 状压dp

C - Greetings!题目链接题目大意给n种信,每种信wi,hi,pi 分别代表长、宽、数量。让选择k种信封来装这些信,每个信封里装一个。如果把w,h的信装到了x,y的信封里,那么造成的浪费为x * y - w * h;问装完这些最小造成多少浪费n,k <= 15题解dp数组:dp[i][j] 表示用i种信封装集合为j的信造成的浪费最小是多少。j怎么表示一个集合? 状压。主要是想不到怎么表示dp数组。害~想到这里就变得很简单了。先预处理出每种集合的浪费数量s: fo

2020-05-27 13:30:21 119

原创 珂朵莉树

珂朵莉树(老司机树)别人的博客。。看别人博客学的,链接在上面。算法比较暴力,应该都看得懂主要用set实现一般什么时候用?推平一段区间(把区间里的数变为一个数)数据随机(数据水)哈哈哈哈哈哈哈具体实现存的东西mutable :可变的,set中的东西只能读不能改。但是加上这个也可以改。因为不知道这个,ce的我快崩溃了struct Node{ int l,r;//区间 mutable ll v;//值 Node(int lp,int rr = -1,ll vv = 0):l(l

2020-05-22 20:21:13 178

原创 青蛙过河 牛客

青蛙过河题目链接题目大意规定:青蛙只能站在比他大一号的青蛙的身上,荷叶上只能站一个青蛙,石墩上可以最底下站一个青蛙然后 按照规定往他身上站。初始时,青蛙在河的岸边也是按规定摞起来的(1~n,最底下是n)并且要跳到岸对面的时候也要按规定摞起来。河上有n个石墩,m个荷叶,问最多可以让多少个青蛙过河。题解别人的题解无从下手的我,害 菜啊我上面的那个题解就很好了,int main(){ int n,m; scanf("%d%d",&n,&m); printf("%lld

2020-05-13 12:05:44 277

原创 lis on tree atcoder 补题

lis on tree题目链接题目大意给一棵树,每个点都有点权求根节点(1号)到每个点的路径上的最大递增子序列题解怎么求最大递增子序列?(没有必须要包含当前这个点)要么是父节点的答案,要么是前面点权比它小的点的ans最大值+1.怎么求前面比它小的点的ans的最大值? 用一个数据结构维护就好。用一个线段树存维护最大值。代码:#include <cstdio>#in...

2020-05-07 11:28:37 171

原创 杀树 牛客 树形dp

杀树题目链接题目大意给一棵树n个节点,如果树上不存在一个链长大于等于m的链,那么这棵树就死了,去掉一个结点的代价是ai,删除节点后节点的边也就没了,问把这颗树杀死的代价最少是多少?(可以把这个数砍成多个树)n和m都是5000的范围题解树形dpdp[i][j]表示i为根节点的时候,向下最长长度为j的最小代价然后转移的话dp[i][0]就表示删除当前这个节点,因为当前节点删除了,所以...

2020-05-03 00:30:24 334

空空如也

空空如也

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

TA关注的人

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