codeforces
la1la1la_
i am single
展开
-
CF500 F
题意: 给出n,p。表示n个物品,每个物品有ci,hi,ti表示花费ci,价值hi,从时刻ti开始可以买。所有物品的出售时间都是[ti,ti+p-1]。然后m个询问,每个询问ai,bi表示ai时刻去购物,有bi的钱,最大价值是多少? n<=4000 p,ti<=10000 ai,m<=20000 bi<=4000#include<cstring> #include<cstdlib> #in原创 2017-03-30 14:56:57 · 434 阅读 · 0 评论 -
CF388 D
题解: 一个自然数集合SS,如果对于所有a∈S,b∈Sa\in S,b\in S都有(a(a xorxor b)∈Sb)\in S,则称S是perfect set。给出n,问有多少个perfect set元素都小于等于n。 n<=10^9 题解: O__O 每个perfect set都可以找出一组基是吧。。 用一种奥妙重重的消元方式能使不同的perfect set消出不同且唯一的基(脑补原创 2017-01-25 17:07:10 · 1382 阅读 · 0 评论 -
CF806 D
题意: 给出n个点完全图,边有边权。枚举x=1~n,找出一棵以x为根的生成树,定义每个点到根的距离di为到根路径上最小的边权,生成树的花费为∑di∑di\sum di。对于每个x,找出最小花费。 n<=2000 #include<cstring> #include<cstdlib> #include<cstdio> #include<cmath...原创 2017-05-08 20:35:48 · 368 阅读 · 0 评论 -
CF607 E
题意: 给出平面上n条直线,记它们交点的的点集为s(可重)。给出点p(x,y),询问s中与p欧几里得距离前m近的点和p的距离和。 n<=50000 m<=30000000#include<cstring> #include<cstdlib> #include<cstdio> #include<cmath> #include<iostream> #include<algorithm> #defi原创 2017-04-23 11:39:27 · 440 阅读 · 0 评论 -
CF800 C
题意: 在模m的意义下,ban掉n个数。构造一个最长的数列,使得: 1、前缀之积两两不等 2、前缀之积不能出现n个被ban的值 n< m<=200000#include<cstring> #include<cstdlib> #include<cstdio> #include<cmath> #include<iostream> #include<vector> #define N 410000原创 2017-04-17 10:08:05 · 359 阅读 · 0 评论 -
CF650 E
题意: 给出两棵树,要求将第一棵变成第二棵。可以进行的操作是删除一条边,再加入一条边。要求每次操作后仍是一棵树。问最小操作次数和方案。 n<=500000#include<cstring> #include<cstdlib> #include<cstdio> #include<cmath> #include<iostream> #include<vector> #define N 510000原创 2017-04-20 11:22:04 · 476 阅读 · 0 评论 -
GYM101002 A
题意: 有n个物品,m个商店。每个物品会在两个商店x,y中按不同价钱p,q出售。现在最多能去k个商店,问每个物品买一件最少要多少钱。无解输出-1。 1<=x,y<=n<=100 k<=m<=40 p,q<=10^7#include<cstring> #include<cstdlib> #include<cstdio> #include<cmath> #include<iostream> #d原创 2017-04-05 19:49:27 · 398 阅读 · 0 评论 -
CF757 E
题意: 有函数f0,n=将n分解为两个互质的数的积的方案数f0,n=将n分解为两个互质的数的积的方案数f_{0,n}=将n分解为两个互质的数的积的方案数 fr,n=∑fr−1,u+fr−1,v2(uv=n)fr,n=∑fr−1,u+fr−1,v2(uv=n)f_{r,n}=\sum \frac{f_{r-1,u}+f_{r-1,v}}{2}(uv=n) m组询问,给出r,n,求fr,nfr,...原创 2017-01-15 09:17:05 · 1915 阅读 · 0 评论 -
CF765 D
题意: 让[n]代表[1,n]的所有整数 给出n与函数f的函数值。f定义域为[n],值域属于[n] 求m,函数g,函数h,使得: 1、g的定义域为[m],值域属于[n] 2、h的定义域为[n],值域属于[m] 3、g(h(x))=x,对于x属于[m] 4、h(g(x))=f(x),对于x属于[n] n<=10^5 题解: 我觉得这题挺难的呀为什么比赛的时候那么多人会做。。 首先原创 2017-02-16 18:32:06 · 537 阅读 · 0 评论 -
GYM100524 H
题意: 给一棵n个点二叉树,要求支持删除叶节点同时维护轻重链剖分。m表示依次删除m个叶节点,删除每个节点后输出重孩子的标号和。 m< n<=200000#include<cstring> #include<cstdlib> #include<cstdio> #include<cmath> #include<iostream> #define N 210000 #define LL long lo原创 2017-04-11 19:24:05 · 426 阅读 · 0 评论 -
GYM100524 E
题意: 在数轴上有n个村子感染了ebola,你要去治疗他们。具体来说,一开始你在1号村子。每天,如果你在村子x,你可以选择治疗村子x的人,或移动到x-1或x+1。每天结束时,如果村子i没有被治疗过,这个村会有ai人死亡。特别的,如果某天你选择了跨过一个没治疗的村子,那你下一次回头时一定要回来治疗这个村子。就是 去的时候治疗了2和4,那第一次回头后,在治疗1和3前不能再回头。 问最少死亡人数原创 2017-04-10 08:37:57 · 371 阅读 · 0 评论 -
GYM100608 J
题意: 在一个n*m的四联通网格中有一个凸的联通块。当一个联通块与每行每列的交都是线段时,我们称它是凸的。对于两个点x和y,J(x,y)表示从x到y最少拐几个弯。询问max(J(x,y))。 n,m<=2000#include<cstring> #include<cstdlib> #include<cstdio> #include<cmath> #include<iostream> #defin原创 2017-04-11 12:57:41 · 472 阅读 · 0 评论 -
CF500 G
题意: 有一棵树,n个点,边长为1,m个询问。每个询问(x,y,u,v)表示一个人从x开始,不停的在(x,y)间往返跑,另一个人从u开始在(u,v)间往返跑,两人每秒的速度都是1,问什么时候第一次在某个节点上相遇。 n,m<=200000#include<cstring> #include<cstdlib> #include<cstdio> #include<cmath> #include<io原创 2017-03-31 17:39:48 · 388 阅读 · 0 评论 -
GYM100524 G
题意: Alice和Bob在玩一个在链上染色的游戏。A能把点染成黑色,B能染成白色。A先手。两人轮流选一个当前没有染色的点染,要求相邻两点颜色不同,不能操作输。现在有n条链,第i条长度为ai,从中选出m条来玩,问有多少种选法先手必胜。 m<=n<=100 ai<=10^9#include<cstring> #include<cstdlib> #include<cstdio> #include<原创 2017-04-10 09:41:17 · 391 阅读 · 0 评论 -
GYM100702 D
题意: 有一个n个数字的可重集合,给出2n2^n个子集的和,最多10000种不同的值。问排序后字典序最小原集合。 n<=60#include<cstring> #include<cstdlib> #include<cstdio> #include<cmath> #include<iostream> #include<algorithm> #define N 11000 #define LL lo原创 2017-06-12 13:14:15 · 413 阅读 · 1 评论