自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 bzoj2726(任务安排 斜率优化dp+二分找决策点 入门)

题目1<=N<=3* 1e5 0<=s,ci<=512 -512<=ti<=512t可以是负数 要查询的斜率不具有单调性。要在凸壳上二分查找到最优决策。这个dp 转移方程 我开始觉着方程最后应该是 +s * sumC[n]-sumC[i]. 不过这样每次都把第一次启动忽略掉啦。 可以这样做 最后dp[n]+=s*sumC[n] 就可以啦。#include...

2019-08-30 20:35:42 178

原创 HDU3842(Machine Works 斜率优化dp+cdq分治维护凸壳)

题目题意: 你的公司获得了一个厂房D天的使用权和一笔启动资金,你打算在这D天里租借机器进行生产来获得收益。可以租借的机器有N台。每台机器有四个参数d p r g。你可以在第d天花费p的费用(当然,前提是你有至少p元)租借这台机器,从第d+1天起,操作机器将为你每天获得G元,卖掉这个机器卖掉获得 r 元。厂房里只能停留一台机器。不能在购买和卖出机器的那天操作机器,但是可以在同一天卖掉一台机器再买入...

2019-08-30 18:24:03 328

原创 bzoj1492(货币兑换Cash 斜率优化dp+cdq分治维护凸壳 入门题)

题目每天都给出AB券值多少钱以及一个该天的比例 r你想用钱买券的话 会给你AB分别若干张券 满足两个条件:1 . A券的价值+B券的价值=你想花的钱2 . A券的数量/B券的数量=该天的比例 r你要想将券兑换成钱的话 就与该天的 r 毫无关系了。你可以随便出一个0%-100%之间的数字o。 将%o的A券兑换成钱 将%o的B券兑换成钱。刚开始有一些钱问你n天之后最多可以有多少钱不可...

2019-08-30 11:04:19 286 1

原创 HDU2829(Lawrence 斜率优化dp入门题)

题目题意: 给定一个长度为n的序列,至多将序列分成m+1段,每段序列权值为序列内两个数两两相乘之和。求分段后整个序列权值和最小为多少?数据规模: m<=n<=1000.w[i]:区间[1,i]任选两个数的乘积之和 w[i]=w[i-1]+sum[i-1] * a[i];dp[i][j]:将前j个数分成i段 dp[i][j]=dp[i-1][k]+w[j]-w[k]-sum...

2019-08-29 19:29:52 241

原创 HDU3480(Division 斜率优化dp入门题)

题目题意: n个数分成m组,每组的花费是(max-min)^2,求最小花费;先对所有数字的权值从小到大排序。dp[i][j]:前 j 个数分成 i 组.则转移方程为:dp[i][j]=dp[i-1][k]+(a[j]-a[k+1])^2.(0<=k<j)把外层循环 i 看作定值,j 是状态变量,k 是决策变量。方程存在项 2 * a[j] * a[k+1],应考虑使用斜率优化...

2019-08-29 18:16:07 258

原创 HDU3045(Picnic Cows 斜率优化dp入门题)

题目题意: 有n个奶牛分别有对应的兴趣值,现在对奶牛分组,每组成员不少于t,在每组中所有的成员兴趣值要减少到该组的最小值,问总共最少需要减少的兴趣值是多少。先对所有成员的兴趣值从小到大排序。记录兴趣的前缀和sum[i]dp[i]=min(dp[j]+sum[i]-sum[j]-a[j+1]*(i-j)) (j>=0&&j<i-t+1)dp[j]-sum[j]+...

2019-08-29 16:31:22 208

原创 HDU4746(Mophues 莫比乌斯反演模板提)

题目//预处理后半部分//f[i][j]:i的 所有k<=j的约数 的mu和.(其实不是他的mu之和 而是除以它得到的另一个因子的mu之和 推式子会有的啦)for(int d=1;d<=N;++d) for(int i=d;i<=N;i+=d) f[i][t[d]]+=mu[i/d];//d作为i的约数 对f[i][t[d]]的贡献是mu[i/d]for(int...

2019-08-28 20:35:50 178

原创 bzoj3994(约数个数和 简单反演)

题目感觉这题好简单哦#include<cstdio>using namespace std;typedef long long ll;const int N=5e4+5,mod=1e9+7;int is[N],prime[N];ll mu[N],s[N];void init(){ mu[1]=1;int tot=0; for(int i=2;i<...

2019-08-28 14:37:05 116

原创 HDU6706(huntian oy 公式+杜教筛板子)

题目先放题解的截图下面就是我自己写的啦 几乎一样#include<cstdio>#include<tr1/unordered_map>using namespace std;using namespace std::tr1;typedef long long ll;const int N=5e6+5,mod=1e9+7,Max=2147483647...

2019-08-28 11:23:18 160

原创 51nod(2026 Gcd and Lcm 巧妙的积性函数+杜教筛)

题目f(x)是一个积性函数。#include<cstdio>#include<tr1/unordered_map>using namespace std;using namespace std::tr1;typedef long long ll;const int N=1e6+5,mod=1e9+7,Max=2147483647,inv2=50000000...

2019-08-28 09:59:36 187

原创 51nod(1220 约数之和 推式子反演+线性筛+杜教筛)

题目1.学会线性筛出 d(i):i 约数的个数 以及 dd(i):i 所有约数之和。学习链接2.慢慢推式子 需要用到 一个小结论(挺好yy证明的)+反演+积累技巧把(比如dd前缀和可以转化成别的式子进而分块求)学习链接第三个式子是反演得到的。最后一个橙点点有一丢丢小错误sigma(q=[1,[n/d]).我还是自己再次按照上述过程首推一下(由于我的式子太丑啦T_T放在代码后面留着自己...

2019-08-27 16:00:07 191

原创 51nod(1238 最小公倍数之和 V3 杜教筛)

题目http://jiruyi910387714.is-programmer.com/posts/195270.htmlhttps://www.cnblogs.com/abclzr/p/6770714.html#include<cstdio>#include<iostream>#include<map>using namespace std;typ...

2019-08-26 22:01:56 176

原创 51nod(1237最大公约数之和 V3 反演+杜教筛)

题目这里需要反演一波。。。最后一个式子就可以整除分块+杜教筛。。。#include<cstdio>#include<map>using namespace std;typedef long long ll;const int N=5e6+5,mod=1e9+7,inv=500000004;int is[N+5],prime[N+5];int phi[N+...

2019-08-26 19:00:59 181

原创 P4213(杜教筛模板)

题目#include<cstdio>#include<tr1/unordered_map>using namespace std;using namespace std::tr1;typedef long long ll;typedef unsigned long long ull;const int N=5e6,Max=2147483647;templa...

2019-08-26 12:14:18 152

原创 p4332(三叉神经树 lct维护链上信息 好题)

题目感谢洛谷题解的第二篇!!!我也不知道说什么。。对lct理解的不够好。。。//此题没有makeroot lct中的深度大小对比就是原树中的#include<cstdio>#include<iostream>#include<algorithm>using namespace std;const int N=(5e5+5)*3;int f[...

2019-08-18 16:46:36 126

原创 bzoj2002(Bounce 弹飞绵羊 lct模板)

题目#include<cstdio>#include<iostream>#include<cstring>#include<map>#define m(a,b) memset(a,b,sizeof a)using namespace std;typedef long long ll;const int N=2e5+5;int f...

2019-08-18 01:03:46 121

原创 bzoj3282(Tree lct模板)

题目虽然代码ac了。由于不太清楚原理。。模模糊糊的。。找了网上好几个代码对拍一下每份之间都不一样。。emmm。。第一道lct很难受,不知道以后写题的过程需不需要了解这么清原理。#include<cstdio>#include<iostream>#include<cstring>#include<map>#define m(a,b) me...

2019-08-17 19:34:52 139

原创 bzoj3223(文艺平衡树 splay区间翻转模板)

题目思路: 以下标建立一颗平衡树。splay之后序列顺序并不改变,就像splay之后不改变数的大小关系。翻转区间[l,r]先把 l-1 翻转到根部,然后把r+1翻转到根部的右儿子。此时根部右儿子的左儿子就是区间[l,r]。此时对这个区间tag[ch[ch[root][1]][0]]^=1;每次route的时候需要pushdown(f[x]),pushdown(x).将l-1旋转到根部的操作是...

2019-08-14 17:24:49 197 4

原创 bzoj1101Zap(莫比乌斯反演入门)

题目#include<cstdio>#include<iostream>#include<algorithm>using namespace std;typedef long long ll;const int N=5e4+5;int is[N],prime[N],mu[N],sum[N];void Moblus(){ mu[1]=1...

2019-08-14 11:28:33 158

原创 HDU1695(GCD 莫比乌斯反演入门)

题目以下均学习于:https://blog.csdn.net/lixuepeng_001/article/details/50577932题意: 给你 a , b , c , d , k 五个值 (题目说明了 你可以认为 a=c=1) x 属于 [1,b] ,y属于[1,d] 让你求有多少对这样的 (x,y)满足gcd(x,y)==k。#include<iostream&gt...

2019-08-14 11:08:03 172

原创 Beauty Values (所有 子区间内不同数字的个数 的和)

题目题意: 给你一个序列有n个数字 一个子区间的val:该区间内不同数字的个数 问这个序列的所有子区间val的和。思路: 单纯的考虑每个元素。 每个元素的贡献就是可能会有多少区间里面含有这个元素并且这个元素可以发挥作用 不是多余的。[这个元素上次出现的位置+1,当前]*[当前,n] 总有二者相乘这么多个贡献。意思就是尽管一个区间可能有多个x 但是只其中一个x计算这个贡献了。#inc...

2019-08-11 18:06:37 449

原创 All-one Matrices (不能扩展全1子矩阵的个数 单调栈)

题目题意 给你n行m列的0 1矩阵 定义不能扩展的子矩阵为最大矩阵 问最大子矩阵的个数。思路 http://bubbleioa.top/archives/828emmm当然不是同一道题目。。。//单调栈#include<iostream>using namespace std;const int N=3e3+5;char str[N];int num[N],su...

2019-08-11 17:44:32 119

原创 Inner World (转化成二维问题 dfs序+线段树/主席树(tag))

题目题意: 给你n个数 m次操作 每次操作u v l r 将[l,r]这些树为u添加一个儿子v 题目保证[l,r]中u一定存在。 qq次询问:x l r 问[l,r]这些树中以x为根的树的sz的和。学会主席树处理区间修改 tag问题思路: 看起来好像很复杂的样子。确实。如此傻逼的我当然看不出来怎么写。我好菜哦。。将题目 操作转化为时间[l,r]添加一个v 查询转化为时间[l,r]v的子树大小...

2019-08-11 13:29:21 177

原创 Explorer(线段树时间分治+并查集)

题目题意: 有n个点 m条边 每条边u v w1 w2.要想从这个边经过必须sz在[w1,w2]之间。问sz的合法(1 n联通)个数是多少?思路: 将题目转化为这个边在时间[w1,w2]处存在 问多少时刻1-n联通。 建立一颗时间线段树。对线段树中的每个节点存一个node[]数组 装在[l,r]的时刻需要添加的[u,v]边。然后dfs这个线段树 这个节点node不空的时候就并查集连关系 每到...

2019-08-11 00:52:51 247

原创 bzoj1503(郁闷的出纳员 splay模板)

#include<cstdio>#include<iostream>using namespace std;typedef long long ll;const int N=1e5+100+5;int ch[N][2],f[N],sz[N],cnt[N],val[N];int tot,root;inline void _clear(int x){ ch...

2019-08-09 18:40:38 111

原创 bzoj1208(宠物收养所 splay模板)

题目#include<cstdio>#include<iostream>using namespace std;typedef long long ll;const int N=8e4+5,mod=1e6;const ll INF=1e12;int ch[N][2],f[N],sz[N],cnt[N],val[N],root=0,tot=0;ll a[N]...

2019-08-09 15:21:40 156

原创 POJ3585(Accumulation Degree 换根dp模板 所有点到所有点的容量)

题目#include<cstdio>#include<cstring>#include<algorithm>#define en '\n'#define m(a,b) memset(a,b,sizeof a)using namespace std;typedef long long ll;const int N=2e5+5;struct E...

2019-08-06 15:13:23 177

原创 CF767C(Garland 简单树形dp(算不上dp)+思维)

题目思路: 看代码就知道了。。发现我的脑子每天都跟被驴踢了一样哦。怎么什么都想不起来。。。我一开始认为按我的代码的话num=2就一定可以保证num=3。emmm 第33组数据卡掉我了 我是错的…40 11 -12 13 -1这组数组当你的sum=0的时候。0/3=0不代表0可以三等分哦,这组数据被二等分了。。#include<bits/stdc++.h>#def...

2019-08-06 13:47:37 191

原创 CF219D Choosing Capital for Treeland(换根dp模板 一个点可任意到达其他节点需要翻转的边数)

题目dp[x]:x想到达所有节点需要翻转的边数。先求出root=1想到所有节点需要翻转的边数。自底向上dfs1。然后自顶详细dfs2。if(fa->y) dp[y]=dp[fa]+1;if(y->fa) dp[y]=dp[fa]-1;(因为本身fa想到达所有的话就必须翻转过来与y这个儿子的 但儿子想到达所有正好这个边可以到达fa emm不多说了 很好理解的对吧)#inclu...

2019-08-06 12:27:37 173

原创 HDU2196(Computer 经典换根dp 求一棵树中所有节点能达到的最长距离)

题目博主讲的很好:https://blog.csdn.net/u013480600/article/details/21831363#include<bits/stdc++.h>#define en '\n'#define m(a,b) memset(a,b,sizeof a)using namespace std;typedef long long ll;const ...

2019-08-06 11:22:59 393

原创 HDU1520Anniversary party(树形dp模板 父子(相邻节点)不能同时选 最多选多大)

题目题意: 给你一颗树,每个点都有权值,有正有负,随意选取但是父子不能同时选取问你选取的最大的权值和是多少?dp[x][0]:不选x节点 dp[x][1]:选x节点dfs即可完成dp过程 注意dp[x][1]+=val[x]一定刚进dfs就要这样。dp[fa][0]+=max(dp[son][0]+dp[son][1])dp[fa][1]+=dp[son][0];#includ...

2019-08-05 21:01:52 357

原创 P2713(罗马游戏 可并堆模板)

题目#include<cstdio>#include<iostream>#define en '\n'#define m(a,b) memset(a,b,sizeof a)using namespace std;typedef long long ll;const int N=1e6+5;char s[3];int val[N],f[N],ls[N],r...

2019-08-04 19:39:37 137

原创 HDU1512(Monkey King 可并堆模板)

题目#include<cstdio>#include<iostream>#include<cstring>#define en '\n'#define m(a,b) memset(a,b,sizeof a)using namespace std;typedef long long ll;const int N=1e5+5;int val[N]...

2019-08-04 19:38:26 183

原创 P3306(Running Away From the Barn 可并堆+标记)

题目题目: 给出以1为根的一棵有根树,问每个点的子树中与它距离<=l的点有多少个。也可以 倍增+树剖+树上差分 当然我不会!!! 以后补//可并堆#include<cstdio>#include<iostream>#define en '\n'#define m(a,b) memset(a,b,sizeof a)using namespace ...

2019-08-04 19:35:23 131

原创 HDU6610(Game 带修莫队+将区间内的值异或转化为两个前缀异或)

题目题意: 给你n堆石头,m次操作。操作:将x与x+1堆石头交换位置 询问:[L,R]多少子区间里面的石头值异或起来不等于0.思路: 带修莫队板子。那我们就求异或起来等于0的子区间个数。可能modify_t add del函数有一丢丢不好写! ?! 我们利用前缀异或和。若区间[l,r]满足要求则sum[r]^sum[l-1]=0,即sum[r]=sum[l-1]。所以这个题我们就转化为了区...

2019-08-02 16:44:43 297

原创 HDU6604(Blow up the city DAG支配树模板提)

题目题意:给你一个DAG,定义中心城市为没有出度的点。一个DAG里会存在多个中心城市。q次询问x,y。问炸掉一个城市使得a,b至少有一个不能到达中心城市得方案数。T<=10 n<=1e5 m<=2e5 q<=1e5 Time Limit: 5000 MS Memory Limit: 131072 K思路:将所有的中心城市用一个超级终点root连接起来。就转化为在DAG...

2019-08-02 12:50:22 1407

原创 HDU6621(K-th Closest Distance 主席树+二分答案)

题目题意:n个数,m个询问[l,r,p,k] 区间[l,r]最接近p的第k个数。强制在线。思路:每次二分答案mid,查找区间[l,r]里面[p-mid,p+mid]的数>=k right=mid;主席树维护.#include<cstdio>#include<algorithm>using namespace std;struct tree{int l,r...

2019-08-02 12:49:35 1426

原创 HDU6579(Operation 贪心+动态维护线性基)

题目题意: 给你n个数字。m次操作+询问 操作:在序列末尾加一个数。询问:区间[l,r]中的数任选任意个数异或值最大。思路: 贪心+线性基。我们假如数固定的话 肯定要转化为上三角形式,贪心依次从高位到地位选择。现在每次插入一个属就动态维护当前数目的线性基。用f[i][j]表示前i个数第j位上的线性基的数目是多少,pos[i][j]是前i个数第j位上的线性基在原序列出现的位置是哪里。动态维护的...

2019-08-02 12:43:16 271

空空如也

空空如也

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

TA关注的人

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