- 博客(16)
- 收藏
- 关注
原创 [bzoj2002]Bounce 弹飞绵羊
[bzoj2002]Bounce 弹飞绵羊LCT板子题注意每个点的size可以直接在splay操作的时候维护代码#include<bits/stdc++.h>using namespace std;const int N=2e5+5;int n,m;struct SplayNode{ int ch[2],fa; int sz;}t[N];...
2018-09-30 20:55:47 207
原创 [bzoj4709]柠檬
[bzoj4709]柠檬首先可以确定全部取完一定是最优的,然后我们也不难想出一个方案取的si在所选的坐标两端时一定是最优的。由此我们可以分别对于每个si相等的点更新答案f[i]=f[j]+a[i]*(s[i]-s[j])^2 //条件(a[j+1]==f[i])//a[i]为值(上文Si),s[i],s[j]表示前缀中a[i]出现次数然后就可以斜率优化了。注意这道题只能...
2018-09-30 18:56:33 83
原创 [bzoj3675]序列分割
[bzoj3675]序列分割斜率优化不难发(cai)现(ce)答案与分割的顺序无关,所以可以直接从左到右分割来算转移就是:f[i][k]=max{f[j][k-1]+l[i]*r[i+1]-l[j]*r[i+1]}r[i+1]是单减的,于是对于点 (l[j],f[j][[k-1]) 维护上凸壳,跑斜率优化即可。代码#include<bits/stdc++.h...
2018-09-29 18:41:35 173
原创 [bzoj2555] SubString
[bzoj2555] SubStringSAM+LCT动态维护right大小这数据有毒。。。貌似N等于2e6才能过代码#include<cstring>#include<cstdio>#include<algorithm>using namespace std;const int N=2e6+5,SZ=26; int null=0...
2018-09-29 01:08:37 85
原创 [bzoj2049]洞穴勘测
[bzoj2049]洞穴勘测LCA板子题注意因为没有确定树的形态,只有先reverse一下把一个节点定为树根再进行操作代码#include<bits/stdc++.h>using namespace std;char ch[20];void getcmd(int& opt,int& x,int& y){ scanf("%s %d...
2018-09-28 21:07:07 170
原创 [bzoj1492]货币兑换Cash
[bzoj1492]货币兑换Cash不难推出式子 dp[i]=max(A[j]*a[i]+B[j]*b[i])//A[j]=f[j]/(a[j]+b[j]/rate[j]);//B[j]=f[j]/(rate[j]*a[j]+b[j]);//分别表示全部存入能得到的A,B金券数cdq分治统计l~mid对mid+1~r的贡献将左边的按A[i]的大小排序,维护下凸壳(A[i]...
2018-09-28 17:26:00 222
原创 [bzoj1227]虔诚的墓主人
[bzoj1227]虔诚的墓主人离散化+扫描线,树状数组维护当前列 每一行的左边右边各取k个的方案数代码#include<bits/stdc++.h>using namespace std;typedef unsigned int ui;ui mod=2147483648ll;const int N=1e5+5;int n,m,w,k;ui ans=0;u...
2018-09-28 14:20:04 148
原创 [bzoj3998]弦论
[bzoj3998]弦论建后缀自动机之后初始化每个点和其能到达的点表示的最小和最大的rank后在SAM上跑一遍即可T=0/1的时候要分类讨论代码#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=2e6+5,SZ=26;int T;ll k;struct ...
2018-09-24 18:34:12 262
原创 这是一个SAM板子
如题代码#include<bits/stdc++.h>using namespace std;const int N=2e6+5,SZ=26;struct SuffixAutomaton{ struct NODE{ int ch[SZ],fa; int len,right; }t[N]; int root,l...
2018-09-24 14:05:32 224
原创 [bzoj4552]排序
[bzoj4552]排序听说线段树合并nlogn来着。。。考虑二分答案,将小于等于mid的数设为0,大于mid的设为1,于是可以nlogn模拟判定(没算二分的)代码#include<bits/stdc++.h>using namespace std;const int N=1e5+5;int a[N],n,m,P;int opt[N],l[N],r[N];...
2018-09-21 21:31:45 168
原创 [bzoj1801]chess 中国象棋
[bzoj1801]chess 中国象棋观察到摆放其实实在要求每行每列不能出现三个棋子 记f[k][i][j]为第k行时当前还有i列还能放两个棋子,j列还能放一个棋子的方案数状态转移见代码代码#include<bits/stdc++.h>using namespace std;typedef long long ll; int n,m;ll mod=9...
2018-09-21 21:27:55 229
原创 [bzoj]4547小奇的集合
[bzoj]4547小奇的集合先排序找最大的两个数x1,x2然后发现 两个数都大于0时可以矩阵优化算出和 其他情况特判一下代码#include<bits/stdc++.h>using namespace std;typedef long long ll;ll mod=10000007;int n,k;ll s[100010],res;struct M...
2018-09-21 21:23:20 175
原创 [bzoj3209]花神的数论题
[bzoj3209]花神的数论题DP[i][1/0][j]表示考虑到二进制第i位,是否顶上界,1有j个的方案数然后快速幂算答案代码#include<bits/stdc++.h>using namespace std;typedef long long ll;int m=60;ll n;ll DP[80][2][80];int num[80];ll m...
2018-09-18 22:29:53 211
原创 [bzoj3444]最后的晚餐
[bzoj3444]最后的晚餐我们在A想与B坐时把A与B连接起来(去掉重边),可以发现答案不为0的条件是原图没有环并且原图每个点的度数都小于3之后发现每个联通块都有两种排列方式,单个的点有一种排列方式,而点/联通块之间的排序是互不影响的。设联通块个数为n,单个的点个数为m,那么答案为( m + n ) ! * pow ( 2 , n ) 联通块可以用并查集维护,并且可以判断环(建...
2018-09-17 23:38:41 345
原创 [bzoj4373]算术天才⑨与等差数列
[bzoj4373]算术天才⑨与等差数列 写的伪正解,应该会被卡 具体方法:维护区间max,min,区间和,区间平方和以及区间相邻两个数之差的gcd值,然后依次判断是否与要求的等差数列符合代码#include&lt;bits/stdc++.h&gt;using namespace std;const int N=3e5+4;typedef long long...
2018-09-16 21:48:26 133
原创 |NOIP提高2015(部分)
NOIP提高组2015神奇的幻方模拟完事信息传递发现图是一个基环树 拓扑排序然后把环找出来就行了跳石头二分答案On判断字串可以记dp[0/1][j][x]表示这一位置上选或没选 共匹配到第j个位置 分成了k段,考虑转移 dp[0][j][x]=dp[1][j][x]+dp[0][j][x]; dp[1][j][x]=dp[0][j-1][x-...
2018-09-14 19:48:09 101
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人