思路
la1la1la_
i am single
展开
-
hdu5803
题意: 给出A、B、C、D。问有多少(a,b,c,d),满足: a+c>b+d && a+d≥b+c && 0≤a≤A && 0≤b≤B && 0≤c≤C && 0≤d≤D T≤1000 0≤A,B,C,D≤10^18题解: 一开始觉得是分类讨论,化柿子化得有点想吐。。然后看了题解,说可以数位dp,那就dp吧。。 注意10^4枚举每位太慢,转成二进制后就是2^4的了原创 2017-03-07 21:07:21 · 417 阅读 · 0 评论 -
bzoj3835
题意: 给定一棵N个节点的有根树,根节点为1。 Q次询问,每次给定一个K,用最少的操作次数遍历完整棵树,输出最少操作次数。 每次操作可以选择访问不超过K个未访问的点,且这些点的父亲必须在之前被访问过。 N,K<=1000000 题解: 这题太神了! 无视下一段就好:) 一开始我想找一个最优bfs序,就是无论k是多少,都按bfs序顺序取到最优值。对于每个点,在k>=某个值时由于跨层,他原创 2016-12-15 13:50:53 · 398 阅读 · 0 评论 -
bzoj4543
题意: 给出一棵树,每条边长度为1。问找三个点,使他们两两距离相等有多少方案。 n题解: 膜了题解。。太神了转述一下 显然对于每个方案(x,y,z)有且仅有一个点u使得: 1、x,y,z在u的不同子树中 2、x,y,z到u距离相等 考虑这种dp方法(不然没法做) f[i][j]表示i子树中与i距离为j的点有多少个 g[i][j]表示i子树已经组合好了多少需要i子树外距离为j的一原创 2016-12-12 13:20:53 · 1118 阅读 · 0 评论 -
bzoj2214
poi的好(毒)题。。 题意: 有一个1..n的排列,有两种操作: (a) 将最后一个数移到最前面 (b) 把第三个数移到最前面 我们将连续进行k次同一个操作称为“一块操作”,表示为ka或kb。 找到一个操作序列使得进行这些操作后,排列变为1,2,3,…,n。 n<=2000 题解: 我的第一感觉,b操作的意义是能把某些数留在前三个位置 开始我想把1留在前三个位置,然后把2转到他原创 2016-12-08 13:46:22 · 696 阅读 · 0 评论 -
bzoj4583
题意: 商店出售3种颜色的球,分别为红、绿、蓝。城市里有n个商店,第i个商店在第First_i天开始营业,连续营业ai+bi+ci天,每个商店每天只能出售一种颜色的球,其中ai天红,bi天绿,ci天蓝。每天最多有两个商店同时营业。如果同一天内有两个商店同时营业,那么这两个商店必须出售相同颜色的球。求不同的出售方案数(对1,000,000,007取模)。两种方案不同,当且仅当某一天某一个商店出售的球原创 2016-11-14 14:22:03 · 798 阅读 · 0 评论 -
hdu4897
题意: 有一棵n个点的树,一开始所有边都是白的。 m个操作: 1、将a,b路径上的边颜色取反 2、将与a,b路径相邻的边颜色取反 3、询问a,b路径上多少条边是黑的 定义e在路径上当e有且仅有一个端点在路径上 n,m<=100000 题解: 突然想起这道题,觉得很妙。拜陈教主orz 相邻似乎根本不可做,题解的做法是: 给每条边存0/1,每个点存0/1,一条边真正的值为边的值异或原创 2016-11-05 14:33:20 · 461 阅读 · 0 评论 -
bzoj3562
题意: n个原子,初始有m条化学键,q次操作,每次加或删一条化学键,或询问当前有多少分子。 在变化过程中始终保持着一种特殊的性质:不存在这样的原子序列 a1,a2,…,an(n>3)满足 a1 与 a2、a2 与a3、……、an-1 与 an 以及 an 与 a1 都通过化学键相连,但它们之间却没有其他化学键相连的情况。 n≤5000,m≤200000,q≤10000 题解: 我看了题解!感原创 2016-11-05 12:00:10 · 691 阅读 · 0 评论 -
bzoj3462
题意: 2<=S<=2*10^6,1<=n<=10^18,1<=q<=10^5 题解: 膜了题解。。很好的题 题目就是给不超过7个质数,让你凑出n,每种质数至少用1次。 先将n减去sum,保证至少用一次 然后对于每个pi,将他出现次数t表示为xspi+yx\frac{s}{pi}+y,其中y=ty=t%spi\frac{s}{pi} 如果某个pi的x或y不一样了,就是不同的方案原创 2016-11-05 10:57:50 · 740 阅读 · 0 评论 -
bzoj3677
题意: 在达芬奇时代,有一个流行的儿童游戏称为连珠线。当然,这个游戏是关于珠子和线的。线是红色或蓝色的,珠子被编号为 1 到 n。这个游戏从一个珠子开始,每次会用如下方式添加一个新的珠子: Append(w, v):一个新的珠子 w 和一个已经添加的珠子 v 用红线连接起来。 Insert(w, u, v):一个新的珠子 w 插入到用红线连起来的两个珠子 u,v 之间。具体过程是删去 u,v原创 2017-04-20 09:35:53 · 511 阅读 · 3 评论 -
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 评论 -
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 评论 -
bzoj4820
题意: 给出n个互不相同长度为m的01串。有一个序列,初始为空。现在不停在序列尾部等概率添加一个0或1,直到序列后缀匹配n个串中的一个。对于每个01串sis_i,询问序列以sis_i结尾的概率。 n,m<=300#include<cstring>#include<cstdlib>#include<cstdio>#include<cmath>#include<iostream>#defi原创 2017-04-23 20:42:42 · 859 阅读 · 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 评论 -
bzoj3233
题意: 小蛇是金融部部长。最近她决定制造一系列新的货币。假设她要制造的货币的面值为x1,x2,x3… 那么x1必须为1,xb必须为xa的正整数倍(b>a)。例如 1,5,125,250就是一组合法的硬币序列,而1,5,100,125就不是。不知从哪一天开始,可爱的蛇爱上了一种萌物——兔纸!从此,小蛇便走上了遇上兔纸娃娃就买的不归路。某天,小蛇看到了N只可爱的兔纸,假设这N 只兔纸的价钱分别是a1,原创 2017-05-09 08:38:28 · 422 阅读 · 0 评论 -
bzoj3711
题意: 体育课上,n个小朋友排成一行(从1到n编号),老师想把他们分成若干组,每一组都包含编号连续的一段小朋友,每个小朋友属于且仅属于一个组。 第i个小朋友希望它所在的组的人数不多于d[i],不少于c[i],否则他就会不满意。 在所有小朋友都满意的前提下,求可以分成的组的数目的最大值,以及有多少种分组方案最大,对10^9+7取模。 1<=n<=1000000 题解: 这题太神啦。。 我原创 2017-02-07 22:45:22 · 1048 阅读 · 2 评论 -
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 评论 -
bzoj3508
题意: T组数据。n个小灯泡,有L种操作方法,第i种表示你能将任意长度恰为Ai的连续一段灯泡的状态取反(灭变亮,亮变灭)。现给定K个点,要求这K个点发光,其余点必须保持熄灭状态。求达到目标状态的最小操作数。 T≤10,N≤10000,K≤10,L≤100,1≤A_i≤N#include<cstring>#include<cstdlib>#include<cstdio>#include<cm原创 2017-05-09 20:53:11 · 476 阅读 · 0 评论 -
bzoj4498
题意: 设想有一条长度为L的战线,你可以把n个魔法师安排在战线上的每个格子。每一个魔法师都有一个攻击范围di,排兵时必须保证任意两个魔法师的攻击范围的较大值小于等于它们之间的距离(距离即为它们坐标的差值)。为了更好地迷惑敌人,你须要求出总共有多少种布阵的方案。 N≤40,di≤40,L≤1000000 题解: 丢链接跑~~ 看了题解觉得很对。。问题是怎么才能想到啊><原创 2016-12-26 20:04:58 · 502 阅读 · 0 评论 -
bzoj4383
题意: 给定一个长度为n的正整数序列a,每个数都在1到10^9范围内,告诉你其中s个数,并给出m条信息,每条信息包含三个数l,r,k以及接下来k个正整数,表示a[l],a[l+1],…,a[r-1],a[r]里这k个数中的任意一个都比任意一个剩下的r-l+1-k个数大(严格大于,即没有等号)。请任意构造出一组满足条件的方案,或者判断无解。 n,s,m(1<=s<=n<=100000,1<=m<=原创 2016-12-27 21:21:44 · 485 阅读 · 0 评论 -
hdu5798
题意: 给出一个n个数数列A,让你选一个数x,把ai变成ai xor x,使: ∑n−11|ai−ai+1|\sum_1^{n-1}|a_i-a_{i+1}|最小 n<=10^5,ai<=2^20题解: 一开始看错题了,以为每个数可以选择变不变,看题解的时候一脸懵逼。。我怎么觉得这题比5796、5797难啊 这题挺不错的,就是考虑拆开绝对值算贡献 ai和ai+1的绝对值怎么拆是在最高的一原创 2017-03-06 22:13:12 · 444 阅读 · 0 评论 -
hdu5797
题意: 有一个n*m的网格。对于i=1~n,给出Li,Ri,表示第i行的Li到Ri列涂成黑色。保证Li≤Li+1,Ri≤Ri+1。 问最少选多少个格子,能让每个黑色的格子,要么同一行选了至少一个格子,要么同一列选了至少一个格子。 n,m<=100题解: 贪心选最右端是错的~~反例就是 从这个栗子也可以看出,对于一行,如果我们没在这行中选,那么一定是前面的覆盖了他的前缀,后面的覆盖了他的后缀原创 2017-03-06 19:15:13 · 396 阅读 · 0 评论 -
hdu5796
题意: 给出n个二进制数,第i个数是ai,长度是i。然后跑这个: 又给出q个二进制数,第i个数是ci,长度是leni。再然后跑这个(代码中n其实是q): 对于每个d,问有多少个二进制位为1 n,q<=5000题解: 看懂题意后容易想到传递闭包,就是把or改成and,上bitset的话O(n332)O(\frac{n^3}{32})。似乎不是很资磁就膜了题解。。 考虑构造一颗树,节原创 2017-03-06 18:09:39 · 461 阅读 · 0 评论 -
bzoj3565
题意: 超能粒子炮由垂直方向从上到下共 n 个超能粒子发射管构成,编号 1~n。所有的发射管都会在开火的一瞬间同时发射出强大的超能粒子流。 为了彻底摧毁再生能力极强的邪恶宇宙怪物 CCM,地球联合军将 CCM 从上到下分为 m 个区域, 编号 1~m,分别进行打击。其中超能粒子炮的第 i 号发射管将会对准 f(i)号区域发射。f(i) 的公式如下: f(i) = (a * i + b) mod原创 2017-03-01 13:34:28 · 539 阅读 · 0 评论 -
hdu6017
题意: 话的长度为n,语句里的字符不是2就是3。 呃喵的智力非常有限,只有m点。她每次操作可以交换两个相邻的字符,然而代价是智力-2。 现在问你,在使得自己智力不降为负数的条件下,呃喵最多能使这个字符串中有多少个子串”233”呢? 如”2333”中有一个”233”,”232323”中没有”233” 1 <= n <= 100, 0 <= m <= 100题解: 一看到正解是O(n4)O(原创 2017-02-27 15:44:03 · 466 阅读 · 0 评论 -
AGC005 E
题意: n个点,n-1条红边,n-1条蓝边。红边构成一棵树,蓝边构成一棵树。开始时,A在点x,B在点y。两人轮流操作,A先手。A可以不动或沿红边走,B可以不动或沿蓝边走。当A、B走到同一个点时游戏结束。A想玩的尽量久,B想尽量快。问会进行多少轮,无限输出-1。 n<=200000题解: 先把以y为根把B的树建出来。对于A的一条边(x,y),x和y在B的树上距离>2,如果A走到x或y之前或下一轮原创 2017-03-29 11:43:46 · 652 阅读 · 0 评论 -
AGC003 E
题意: 有一个长度为n的序列,初始为1~n。m个操作,每个操作ai表示把当前序列复制无限次,然后取前ai个数作为新序列。问最终序列里1~n各出现多少次。 n,m<=10^5 ai<=10^18题解: 感觉做法很不显然,真不知道出题人怎么想的。。 最开始先取一次n,方便处理。 发现如果ai>=ai+1a_i>=a_{i+1}那么ai是无效的,把序列变成严格上升的。 然后令t[i]为第i原创 2017-03-28 09:25:55 · 757 阅读 · 0 评论 -
bzoj2138
题意: 话说Nan在海边等人,预计还要等上M分钟。为了打发时间,他玩起了石子。 Nan搬来了N堆石子,编号为1到N,每堆包含Ai颗石子。每1分钟,Nan会在编号在[Li,Ri]之间的石堆中挑出任意Ki颗扔向大海(好疼的玩法),如果[Li,Ri]剩下石子不够Ki颗,则取尽量地多。为了保留扔石子的新鲜感,Nan保证任意两个区间[Li,Ri]和[Lj,Rj] ,不会存在Li<=Lj & Rj<=Ri的情原创 2017-02-24 22:02:56 · 806 阅读 · 0 评论 -
AGC005 D
题意: 给出n,k,问有多少个长度为n的排列满足abs(ai−i)!=kabs(a_i-i)!=k。 n<=2000 1<=k<=n-1#include<cstring>#include<cstdlib>#include<cstdio>#include<cmath>#include<iostream>#define N 2100#define mmod 924844033usin原创 2017-03-29 15:17:16 · 870 阅读 · 0 评论 -
AGC006 E
题意: 有3行n列的格子,里面的数是1~3n。每次可以选一个3*3的格子旋转180度。给出初始状态,问能不能变成第i行第j列是3*(j-1)+i的状态。 n<=100000#include<cstring>#include<cstdlib>#include<cstdio>#include<cmath>#include<iostream>#include<algorithm>#defi原创 2017-03-30 20:08:54 · 759 阅读 · 0 评论 -
AGC006 D
题意: 给出一个长度为2*n-1的排列,将除了头尾两个数变为相邻3个数的中位数,重复n-1次。 像这样 问最上面的数字是多少。 n<=100000#include<cstring>#include<cstdlib>#include<cstdio>#include<cmath>#include<iostream>#define N 210000using namespace s原创 2017-03-30 22:02:34 · 920 阅读 · 0 评论 -
AGC006 C
题意: 从前数轴上有n只兔子,第i只的位置在xi。定义一个set包含m个操作,每个操作ai表示第ai只兔子在ai+1a_{i+1}和ai−1a_{i-1}中等概率选一只兔子,记为x,然后跳到关于x的对称点。问进行k个set的操作后,每只兔子的期望位置。 n,m<=100000 k<=10^18 xi<=10^9 2<=ai<=n-1#include<cstring>#include<cs原创 2017-03-31 08:59:40 · 426 阅读 · 0 评论 -
AGC004 F
题意: 给出一个无向无自环无重边连通图,n个点,m条边。有黑白两种颜色,初始全白。每次操作选相邻的两个同色点,把他们变成另一种颜色。现在要将所有点变成黑色,问是否有解。如果有,问最少操作次数。 n<=10^5 m=n或m=n-1题解: 出题人脑洞好大。。先考虑树的情况,转换一下模型。 由于树是二分图,我们可以给每个点标上0或1。然后发现原操作就变成了交换两个相邻的0和1,目标是让原来为0的原创 2017-03-28 15:08:45 · 937 阅读 · 1 评论 -
AGC007 E
题意: 给出一棵n个节点树,除了叶节点,每个节点恰好有两个孩子。边上有边权。第一天根开始走,每天选一个叶节点,从当前点走到叶节点,最后一天走回根节点。要求每条边经过两次,每个叶节点被选一次。花费就是除了第一天和最后一天走的路程最远那一天的路程。问最小花费。 2< n< 131,072#include<cstring>#include<cstdlib>#include<cstdio>#inc原创 2017-04-02 10:17:46 · 724 阅读 · 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 评论 -
bzoj4377
题意: 给定n,a,b,p,其中n,a互质。定义一个长度为n的01串c[0..n-1],其中c[i]==0当且仅当(ai+b) mod n < p。给定一个长为m的小01串,求出小串在大串中出现了几次。 2<=n<=10^9,1<=p,a,b,m< n,1<=m<= 10^6。 n和a互质。 题解: 这题我去年连题解都看不懂 由于n和a互质,所以(ia+b)%n对应了[0,n-1]的每个原创 2016-12-28 21:53:40 · 517 阅读 · 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 评论