题库
文章平均质量分 68
Fop_zz
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #468 Div1 A~D解题报告
D题好假E题更假A.Peculiar apple-tree题意:一个树上每个节点有一个苹果,每秒下落(既到它的父亲),两个苹果到同一节点瞬间消失,若奇数个剩一个显然是对于所有深度相同的一起考虑深度为x的节点数量奇数贡献1,偶数贡献0#include<iostream>#include<cstdio>#include<cmath>#include<cs...原创 2018-03-06 21:51:04 · 632 阅读 · 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 评论 -
E. Sasha and Array——矩阵+线段树
E.Sasha and Array很神奇的一道题题意大概就是支持区间加,然后求区间和。。。区间和的求法是 sigema(i,l,r) f[i] f[i]表示斐波那契序列第i项例如一个区间的数字是1 2 3 4 5 6 那么其和为1+1+2+3+5+8=20看到数据范围。。那斐波那契肯定不能离线处理了,只能是用矩阵去算那我们如果给一个数+x,相当于让他再乘x次,原创 2017-06-15 10:15:06 · 685 阅读 · 0 评论 -
vijos刷题记录(可能弃坑
突发奇想的记录下vijos的刷题情况(逃三月中旬(不知道什么时候) 突破100 rp 1500++ rank 900++四月十日 突破200 rp4005.19 rank 192. . . (假装图床的样子) 4月10日 204题 rp:4290.19 rank 166| ->一天11题啊开心 4月11日 219题 rp:4491.46 rank 159|->把一大堆原创 2017-04-10 10:14:58 · 1065 阅读 · 1 评论 -
Mahmoud and a xor trip——766E 树形dp
E. Mahmoud and a xor trip第一眼好假啊。。题意:给定一棵树,树上的点有权值,求所有无序点对(x,y)间路径的和,a->b的路径定义为a到b经过的所有的权值异或值第一眼还以为可以n^2*lg跑啊。。然而数据范围打破了我美好的梦想- -N^2*lg就是枚举两个点然后算一个lca,把Lca的贡献算上,然后1->x的路径xor1->y的路径嘛然而n=10原创 2017-06-13 09:35:17 · 380 阅读 · 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 评论 -
权值并查集——bzoj1202狡猾的商人
1202权值并查集裸题的感觉。。。哎就是自己太傻了,写错一个关键性的地方权值累加的过程中一点要先get(F[x])再去加!这个问题处理好就可以了。。哎#include #include #include #include #include #include #include #include #include #include #de原创 2017-06-22 14:07:28 · 320 阅读 · 0 评论 -
LUOGU1445——没占到1444的愤怒 数学
1445题意:给定n,求1/x+1/y=1/n!的正整数解的数量先对原式分解一下(x+y)/xy=1/n!xy-(x+y)*n!=0(n!)^2+xy-(x+y)*n!=(n!)^2(x-n!)*(y-n!)=(n!)^2因为x,y为任意正整数,所以x-n!和y-n!也可以是任意正整数所以题意转化为->x*y=(n!)^2那么我们对n!分解质因数原创 2017-06-21 17:18:14 · 773 阅读 · 1 评论 -
BZOJ 1060: [ZJOI2007]时态同步
BZOJ 1060orzzyy 跪烂如果要满足题目的要求,则以每一个非叶节点 到其子树中所有叶子节点距离相同这很显然然后考虑到我们只能加大一条边的权值而不能减小所以我们只能所有路径加长到最长的那一条所以我们只要贪心就好了具体实现看代码#include #include #include #include #include原创 2017-07-10 19:52:21 · 285 阅读 · 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 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 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 评论 -
Codeforces Beta Round #5 解题报告
上古比赛题目有点毒啊。。CBR 5A. Chat Server's Outgoing Traffic题意:一个通讯工具,支持加人删人,计算最终流量 流量=sigma(每条信息长度*在线人数和)暴力即可。因为信息中间有空格,所以需要用getline#include<iostream>#include<cstdio>#include<cmath>#inclu...原创 2018-02-10 13:50:21 · 319 阅读 · 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 评论 -
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 评论 -
Codeforces Round #442 (Div. 2) 解题报告
A.Alex and broken contest 签到题,题目看清 题意懒得说了#include<iostream>#include<cstdio>#include<queue>#include<cmath>#include<algorithm>#include<set>#include<map>#include<cstring>#define For(i,j,k) for(原创 2017-10-25 20:14:50 · 325 阅读 · 0 评论 -
Codeforces Round #382 (Div. 2)解题报告
A.Ostap and Grasshopper大力模拟题,然而lc233大佬居然tmd怀疑是不是一个环。。。哎想多了题意都懒得讲了orzB.Urbanization题意:给你n个数字,让你选n1个数字放到A集合,n2个数字放到B集合,让两个集合各自的平均数 加起来最大我们强制要求n1一个数字t放入A堆答案的贡献是t/n1,所以排一遍序后,前n1个数字放入A集合同理n1原创 2017-06-15 15:25:46 · 577 阅读 · 3 评论 -
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 评论 -
POJ3261——Milk Patterns 后缀数组
POJ3261题意大概就是求一串数字中……应该说,当字符串看的数字中,找到一个至少出现k次的最长的子序列(可重复)嗯。。课件完全看不懂在说什么“•将问题转化成,求height数组中最大的长度为 K的子序列的最小值•然后随便则么搞都可以了。。。。。”???首先我们考虑height数组的一个结论:Height[rank[i]]>=Height原创 2017-06-09 09:46:37 · 275 阅读 · 0 评论 -
排序+链表 CF——752D
725D刚拿到题目一脸懵逼10万个数字长度十万??????哦……字符总数小于十万妈的吓死了,还以为输入要超时了构造一个回文串,显然的是,我们可以把两个相反的字符串加到一个回文串的两侧,构成新的回文串。就这个思路,直接开map离散字符串,然后找一下,如果大于0就加上去,以及:可以在中间放一个本身是回文串的字符串然后,对于多个相同的字符串的处理方法,显然越大原创 2017-06-07 13:38:09 · 365 阅读 · 0 评论 -
vijos1942——小岛 Floyed
三行floyd也是很神奇的东西(大雾 vijos1942 题目大概就是在线添加边。。之前做过一道差不多的题,是不断加点的。。然而这道题是不断加边其实dij啊spfa的都可以,甚至比floyd快然而floyd能过的题为什么去写别的(滑稽这里做一些小变动,原先我们的floyd是枚举中间点,而这里我们用枚举中间边 不过其实。。直接拿两个端点去更新一遍好像也是可以的if(kind==1)原创 2017-04-19 15:05:01 · 325 阅读 · 0 评论 -
POJ1113——WALL 凸包
调了两个小时(吐 poj1113 凸包有毒啊??? 我闲的蛋疼用了一个函数叫atan2 然而这个东西用法有点神奇。。是用来求极角的 atan2(y,x) 注意是y,x 得到的是(x,y)点对对于0,0的弧度!注意是弧度! 弧度转化角度:#define atan2(x,y) atan2(x,y)*180/3.1415926535当然其实这题。。不转化角度也没关系,显然弧度与角度是增函数的关原创 2017-04-18 15:41:58 · 364 阅读 · 1 评论 -
vijos1048——送给圣诞夜的贺卡
vijos1048 表示不是很懂为什么这个是七级题。。 这是一道不明复杂度的玄学搜索题 大概是sigma(i,1,n)C(i,n)。。n<=50 然而实际上过所有数据30ms不到这里我们用邻接表来存冲突关系 enm表示当前状态该节点有多少个与其冲突的人 然后dfs下去 这就是朴素的思路inline void dfs(int x,int now){ if(x==n+1)原创 2017-03-24 11:04:18 · 757 阅读 · 0 评论 -
vijos1697——平面几何
vijos1697 标算是并查集。。。但是我看了下题解,好特么长然后我想了想,感觉可以BF过掉啊开始怀疑会不会不连通……但是看到题目后面的提示 不会询问不在输入里的直线….(..再说这个也啥用啊…)..于是果断BF把每一条边当成一个节点,p[i]=-1表示第i个点不确定状态,0表示 处于第一种状态,1表示第二种状态(横竖无所谓)然后因为不用担心不连通,所以我们可以假设p[1]=1然后去跑一原创 2017-04-10 15:01:23 · 653 阅读 · 0 评论 -
vijos1984—— 随机树
vijos1984 本题好像是SHOI d1T3? 反正我抢下了vijos上这题的一血啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈代码其实很短,1K不到对于第一个问题,很显然的瞎几把dp一下就可以了if(k==1) { f[1]=0; For(i,2,n) f[i]=f[i-1]+f[i-1]/(i-1)+2; printf原创 2017-03-31 11:21:01 · 736 阅读 · 0 评论 -
vijos1049——送给圣诞夜的礼品
vijos1049 这题。。我已经不想说什么了 (╯—﹏—)╯(┷━━━┷ 这题根据题目意思,暴力做法应该是模拟,模拟k次 然而100%数据k=maxlongint-1; 模拟显然炸飞好吧我一开始真的不知道这题要怎么搞到log或者sqrt 看了下题解 矩阵快速幂=_= 突然无言以对 其实思路很简单 例如n=4 我们构造一个初始矩阵 {1} {2} {3} {4}原创 2017-03-24 10:25:30 · 491 阅读 · 0 评论 -
vijos1732——能量采集
vijos1732 这题个人感觉。。80分暴力好拿,直接n^2*ln(n)90分我不知道是干嘛的。。我是想不出n^2算法先来说下80分暴力很显然,我们令x,y的最大公约数=t那么这个点到(0,0)上除它以外就有t-1个点于是直接暴力gcd#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>#include<原创 2017-04-10 09:04:21 · 434 阅读 · 0 评论 -
vijos1659——河蟹王国
我* * * *这破题 本来一道lazy+rmq的线段树才懒得发,但是这道题浪费了我一个多小时我一定要来裱一裱 而且,在某一时间,区间[L’,R’]里的人会变得熟悉,因此他们每个人的和谐值都会上升一个相同的值C。我* * * 这个C可以是负数我 * * 这个负数对于rmp的影响还是比较大的 lc233: 比如说你一个点,下面只有一个子节点,然后你down下去一个5,会down到两个子原创 2017-03-29 10:13:10 · 497 阅读 · 0 评论 -
启发式搜索 luogu2483——[SDOI2010]魔法猪学院
luogu2483 这题不知道为什么,我bzoj上死都过不去 然而luogu不断的调数组大小后终于卡过去了(黑人问号 内存206MB。。时间4s+ 本题重点就在于求出k短路 然后很简单的贪心减一下就好了那么接下来问题来了 k短路怎么求Dijkstra/SPFA+A* 前一个相信大家都知道并且会写 那么注重来讲一下本题中的A*要怎么操作首先A*的核心在于:f(x)=g(x)+h(原创 2017-03-29 08:08:47 · 673 阅读 · 0 评论 -
vijos1033 整数分解(版本2)
题目 一道简单的数论题 题意:把一个整数分解为任意个整数之和,求分解出的整数的积最大值 lc大佬:我们分出尽可能多的2,应该是最优的 然而…. 样例:10 ->36 2^5=32 被样例被hack了(大雾 正解是:分出尽可能多的3 为什么? 我们考虑两个整数a,b,定义f(x)为分解x所得的积最大值 显然有f(a)*f(b)=f(a+b) 然后我们可以发现 x=2.f(x原创 2017-03-20 10:44:28 · 414 阅读 · 0 评论 -
vijos1089——小胖抗日
第一版的高分题啊 好水啊。。。。。 二维标记bfs直接过。。。要特判k=0,否则%k会RE#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>#include<queue>#include<string>#include<map>#include<cstring>#include<vector>原创 2017-05-02 11:18:41 · 476 阅读 · 0 评论 -
vijos1661——旅行-2
vijos1661 我能说这破题坑了我一上午??? 就因为一个东西手滑写在了min里面。。。。这道题如果正着考虑,情况太tmd多了,因为可以连续施法。。。 然而如果倒过来,我们认为连着j次施法,就是让一个i位置上的数字移动到i+j位置来,那么改变的信息其实不多。所以我们可以枚举i和j,然后来设计一下状态f[i][0]表示i这个点没有做过移动的最小代价 f[i][1]表示i这个点做过移动的最小原创 2017-04-17 10:31:12 · 373 阅读 · 0 评论 -
POJ3735——Training little cats
讲课的例题第二题,当时觉得好麻烦,然而写了下发现比其他的题都要短好多坑点: 1、多组数据 2、矩阵要开到102*102 3、m=0的情况 这个。。有毒思路就是暴力构造出矩阵,1~n代表标号为i的小猫剩余的花生数量n+1就是1,用于g操作然后暴力构造后直接快速幂即可初始矩阵 0 0 0 。 。 。 1CODE:#include<iostream>#include<cstdio>原创 2017-05-03 08:56:35 · 336 阅读 · 0 评论 -
Codeforces Round #381 (Div. 1) B Alyona and a tree 树状数组
B. Alyona and a tree题意:给定一棵树,树上的边有权值为val[i],点有权值为a[i],定义dist(a,b)为a到b的路径上的边权的和定义v控制u,当且仅当v是u的祖先且dist(u,v)第一反应树形dp嘛,可行,不过感觉略麻烦。。。而且二分的还要判断一些奇怪的东西(好吧懒得打因为u是v的后代嘛。所以dist(u,v)=dist(1,u)-di原创 2017-06-19 10:21:39 · 432 阅读 · 1 评论