bzoj
文章平均质量分 73
Fop_zz
这个作者很懒,什么都没留下…
展开
-
BZOJ 1060: [ZJOI2007]时态同步
BZOJ 1060orzzyy 跪烂如果要满足题目的要求,则以每一个非叶节点 到其子树中所有叶子节点距离相同这很显然然后考虑到我们只能加大一条边的权值而不能减小所以我们只能所有路径加长到最长的那一条所以我们只要贪心就好了具体实现看代码#include #include #include #include #include原创 2017-07-10 19:52:21 · 285 阅读 · 0 评论 -
BZOJ2405——数字 找规律
http://www.lydsy.com/JudgeOnline/problem.php?id=2405神题首先可以发现D(x)=(x-1)%9+1然后发现、、如果x是个合法的数字,那么x+22680也是22680=lcm(1,2,3..9)*9于是暴力预处理出a[i]表示1~i中合法数字个数,然后询问x可以转化为a[22680]*(x/22680)+a[x%22680]原创 2017-12-11 16:48:46 · 610 阅读 · 0 评论 -
BZOJ2142 礼物 EXlucas
全场最佳...毒瘤题一眼得出公式:C(n,sum)*C(sum,a[1])*C(sum-a[1],a[2])*....然而数据范围n显然可以用lucas定理算,但是模数tmd不一定是个质数于是需要用到ex_lucas......把p拆成若干个质因子幂乘积的形式,然后对于每一个质因子幂次求解,最后中国剩余定理乘起来即可具体过程:1、拆得到底数q原创 2017-10-24 20:55:21 · 595 阅读 · 0 评论 -
3048: [Usaco2013 Jan]Cow Lineup
3048区间伸缩推出每一个数字种类小于等于k+1的区间一个区间中出现最多次数的数字既是一种可能的答案取个max即可#include#include#include#include#include#include#include#define eps 1e-5#define For(i,j,k) for(int i=j;i<=k;++i)#define D原创 2017-10-12 20:44:07 · 356 阅读 · 0 评论 -
BZOJ 4742: [Usaco2016 Dec]Team Building ——DP
4742挺简单的一个dp首先对两组牛分别排序状态f[i][j][k]表示前i只约翰的牛 和前j只保罗的牛 各选k只 构成序列的种类数#include#include#include#include#include#include#define For(i,j,k) for(int i=j;i<=k;++i)#define Dow(i,j,k) for(int原创 2017-10-12 20:32:27 · 532 阅读 · 0 评论 -
BZOJ 1746: [Usaco2005 open]Lazy Cows
1746一道思维复杂度不高...代码细节很多的dp题这题突破口显然就在于只有2行那么我们考虑第i列的状态共有五种:1. 没有纸片覆盖2.上边被覆盖3.下边被覆盖4.被同一纸片覆盖5.被不同的纸片覆盖离散后,显然不存在第一种状态那么我们用dp[i][t]表示第i个有宝藏的列 状态为t的最小面积于是就可以转移了实现细节见代码……原创 2017-10-12 20:27:13 · 412 阅读 · 0 评论 -
BZOJ 3100 排列——单调队列
3100这道题很多网上的题解都是错的啊..一部分题解对区间的要求:1 不重复2 和为k*(k+1)/23 最大值为k很对啊。。但是貌似不重复这个东西用i-mx这样找区间很难判啊——————(对错误题解的吐槽到此结束依然是上面这几个条件但是我们发现,只要满足1.3并且区间长度=k,则2必然满足于是我们用枚举右端点,用bj[a[i]](表示a[i]上一次原创 2017-10-18 21:31:01 · 473 阅读 · 0 评论 -
D. Limak and Shooting Points 计算几何+模拟
D. Limak and Shooting Pointstime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputBearland is a dangerous place.原创 2017-10-08 22:32:17 · 608 阅读 · 0 评论 -
BZOJ 1304: [CQOI2009]叶子的染色 树形dp
第一眼感觉像贪心,但是仔细想了想显然不行。那么考虑dp,f[i][j]表示i这个节点染成j色后,以它为根的子树满足要求,需要染多少个点j色的话……不包含无色,后面再讲然后这是一棵无根树?怎么办?反正也无所谓……你随便拎个非叶子节点当根就可以了,比如说假装是n+1然后我们考虑转移son[x]表示x的其中一个子节点f[x][0]+=min(f[son[x]]原创 2017-07-24 16:17:42 · 439 阅读 · 0 评论 -
BZOJ 1782 [Usaco2010 Feb]slowdown 慢慢游 dfs序,树状数组
还是比较水的用dfs序来维护子树信息,我们让一个点归位后,使这个点所在点的子树加一,然后每次得出答案就行了#include #include #include #include #include #include #include #include #include #include #define ll long long#define maxn 20001原创 2017-08-07 17:34:57 · 403 阅读 · 0 评论 -
BZOJ 1305: [CQOI2009]dance跳舞
1305: [CQOI2009]dance跳舞啊啊啊noi同步赛弃疗来刷水题了不知道会不会被老师打死。。。曾经用几行贪心水过vijos和luogu的题。。终于跪在了bzoj面前显然答案具有单调性,考虑二分(暴力枚举也可以)考虑对答案x的可行性验证:对于每一个人拆成两个点,p,p'p表示连向喜欢的,p'则是不喜欢的那么对于喜欢的两个人连p,否则连p'然后考虑k的限原创 2017-07-19 10:59:01 · 342 阅读 · 0 评论 -
BZOJ 1663: [Usaco2006 Open]赶集 floyd(划掉+dp
bzoj1663神!他!妈!虽然乡间小路奇特的布局使得从i号商店走到j号商店的最短路不一定是直接连接这两个商店的那条,但约翰并不会选择那些会经过其他商店的路线,只是直接走到目标商店等待礼物的送出.被坑死。。。首先按礼物顺序排序,dp[i]表示一定取第I个获得的最多礼物然后n^2转移即可#include #include #include #incl原创 2017-07-07 15:14:22 · 345 阅读 · 0 评论 -
BZOJ 2023: [Usaco2005 Nov]Ant Counting 数蚂蚁——DP
BZOJ2023我好弱啊、、只会刷水题啊。。 这题我们首先考虑暴力的n^3 dp,f[i][j]代表前i个种类的蚂蚁构成size为j的集合的方案数转移枚举第i类蚂蚁选了几个,可以在n^3的复杂度内解决此题不过 应该是T*n^2,。。。所以显然过不去考虑优化我们在n^3时的dp转移:f[i][j]=sigma(f[i-k][j-1])那么显然原创 2017-07-07 22:13:16 · 373 阅读 · 0 评论 -
BZOJ1104 [POI2007]洪水pow——并查集+乱搞
POI2007 洪水pow乍一眼还以为是水题,仔细一看发现还是有点难度的。。首先我们考虑对于节点x,如果他上下左右的点有一个点已经放了抽水机且海拔比x低,则x不需要放抽水机。或者我们可以认为我们花费代价0在x这个节点上放了一个抽水机那么我们把所有点关于海拔排序,那么依次加入高度为h的点后去判断一下有没有与已经放了抽水机的点相连,如果没有则答案+1,并且在该点放上一个抽水机 这个操作可以用并查集或者原创 2017-07-04 18:08:06 · 557 阅读 · 0 评论 -
BZOJ 1222: [HNOI2001]产品加工
BZOJ 1222很神奇的一个DP题嗯、、、这种方程我也是第一次见ORZf[i][j]表示完成前i个产品的加工,第一台机器用时j时,第二台机器用时的最小值转移显然:f[i][j]=min(f[i][j],f[i-1][j-a[i],f[i-1][j]+b[i],f[i-1][j-z[i]]+z[i])空间可以压维不是问题然而我感觉理论上来说时间复原创 2017-07-11 15:10:05 · 328 阅读 · 0 评论 -
BZOJ 1010: [HNOI2008]玩具装箱toy——斜率优化
BZOJ 1010第二道斜率优化,对斜率优化有了新的理解。开心(大雾这题的题面其实就是在说 斜率优化!斜率优化!斜率优化!好吧就是道裸题我们考虑更新f[i]时选择的节点如果k比j更优则有:f[j]+(j-i+sum[i]-sum[j]-L)^2f[j]+(sum[i]-sum[j])^2-2*(i-j+L)*(sum原创 2017-07-10 20:08:50 · 901 阅读 · 0 评论 -
BZOJ3207+2802+2318+1933+1934题解 12.11
#include#include#include#include#include#define For(i,j,k) for(int i=j;i<=k;++i)#define Dow(i,j,k) for(int i=k;i>=j;--i)#define ll long longusing namespace std;inline ll read(){ ll t=0原创 2017-12-11 22:33:58 · 320 阅读 · 0 评论