自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zzk_233的博客

当你停止尝试时,就是失败的时候

  • 博客(68)
  • 收藏
  • 关注

原创 bzoj 2938 病毒

首先trie图建图,我们发现满足条件的方案就是在trie图跳的过程中不会找到标记过的字符串,就是有一个环就可以了。注意剪枝,就是这个点搜过失败,就不再搜了。#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#include<queue>...

2018-11-24 16:39:25 173 1

原创 codevs 1288 埃及分数

题目大意:给出一个分数,要求求出最少的x分之1的形式,如果个数相同,要求最小的数字最大。考虑搜索,因为总个数不确定,使用IDDFS,每次确定一个长度,对于每一个位置从可以成立的最小值开始枚举。对于最终情况:如果这次的a为1,并且b比前面的一次大,那么就是最终情况,这时如果这个长度没出现过,那么当前序列作为答案,如果出现过,那么选择最大的最后一位作为答案。对于搜索,每一次的新值的最小...

2018-11-23 16:07:15 186

原创 bzoj 1014 [JSOI2008]火星人prefix

填一波坑。。当初懒得挑这题。。(还是我太弱。。写的时候脑子不好使)。这题很裸。。但我的错误太傻了。。首先不要相信什么长度一定小于100000,不开二倍会死的。。。然后每次增加点的时候要把全长+1.。。。(我就错这了。。调了1h)。之后就是很裸的啦。维护hash值,正常的splay,对于增加点,就是把前驱转上去,后继转到前驱的右子节点,新的点插入左子节点。修改就是正常spla...

2018-11-21 20:48:19 247

原创 bzoj 1042: [HAOI2008]硬币购物

因为有了个数的限制,我们可以考虑容斥原理,首先对于整体求完全背包,dp值代表值为i的选择方式。那么有一个超过限制的情况就是选择这个面值的多了一个,那么贡献就是c[i]*(d[i]+1),所以应该减去dp[s-(c[i]*(d[i]+1))]。利用容斥,应该减去奇数个超限制的,加上偶数个超限制的。#include<cstdio>#include<cmath>...

2018-11-07 19:12:48 131

原创 bzoj 2081 [Poi2010]Beads

hash裸题,有一些优化的方式,比如吧正序和逆序乘起来作为比较的值,我用的map,(而且我自带大常数)所以在落谷过了之后,bzoj怎么都不过。。不要站代码,思路一样自己写就好了#include<cstdio>#include<cmath>#include<algorithm>#include<cstring>#include&l...

2018-11-06 20:35:43 133

原创 差分约束介绍及应用

差分约束解决的是给出一系列不等式,求出最大/最小值的问题。首先对于式子进行转化,转化为统一的小于等于或者大于等于,如果不带等号可以加减1转化为带等号的情况。如果式子为小于等于,则求最短路,答案为最大值。为大于等于,则求最长路,答案为最小值。对于全正的边权,可以用spfa或者dijkstra或者floyd有负的只能为spfa...

2018-11-06 16:21:43 183

原创 bzoj 1222 产品加工

感觉是很套路的题,对于两个或者多个状态的更新时,可以把一个设为维度,本题设dp为dp[i][j]表示第i个产品A加工时间为j时,B的加工时间是多少,对于转移有三种情况1.由A来做,2.由B来做,3.一起做,对于没有的情况要赋成正无穷,因为当前为一定要更新,所以可以先从1更新。初值为dp[0][0]=0,因为是背包,可以滚掉第一维。#include<cstdio&gt...

2018-11-06 15:57:59 153

原创 bzoj 3055 礼物运送

首先处理出两点之间最短路,设状态f[i][j]表示j状态下结尾为i的最短路,所以有转移f[i][j]=f[k][j|(1<<(k-1))]+dis[i][k];初状态就是f[i][(1<<(i-1))]=dis[1][i],因为忽略了第一个点,在枚举的时候后面的点都要为i-2,具体看代码。#include<cstdio>#include<cma...

2018-11-06 10:07:21 165

原创 bzoj 2330: [SCOI2011]糖果

差分约束裸题,对于给出的信息进行建图。对于查分约束可以看这里:https://blog.csdn.net/zzk_233/article/details/83789271#include<cstdio>#include<algorithm>#include<cmath>#include<cstring>#include<que...

2018-11-05 22:40:58 176

原创 codeforces939F Cutlet

题目大意:有2*n的时间去煎一片肉,其中有k个不相交区间,在这些区间里可以翻面,求最后每面都煎n分钟的最小翻面次数。有一个显而易见(exm???)的思路,设dp状态为dp[i][j]表示在第i分钟朝上的面煎了j分钟,那么转移就是dp[i][j]=min(dp[i-1][j],dp[i-1][i-j]+1),就是上一秒不翻,或者上一秒翻了,并且之前向上的时间为j,现在就是i-j。但是这显...

2018-11-05 18:33:47 167

原创 codeforces 985C3 Encryption (hard)

跟前面的两道题不同的就是数据变大了,并且变成了求最小值,首先考虑dp设f[i][j]表示前i个位置里分了j份的最小值。sum[i]表示到i为止val[i]的和 mod p的值。但是这样会超时,所以考虑优化掉一维,对于式子分析,可以发现后面的 mod p有两种情况,拆开式子分别为这个可以用两个树状数组维护,每次dp的时候,当前的j可以由≤s[i]的第一个树状数组和...

2018-11-02 14:47:55 118

转载 codeforces 1042F Leaf Sets

题目大意:给定一棵n个点的树,将叶子节点分为数个集合,使集合里点对最长距离不超过k,求最少集合数。贪心,考虑一个非叶节点,它的下面的叶子结点对当前点之间的距离排序之后,当这个叶子结点和比它小的一个的和大于k的时候,代表后面的每一个叶子结点都要新开一个集合,而之前的可以继续作为一个集合向上更新。最终会剩下一个集合,所以答案要+1。注意要选择一个度数不为1的点作为开始点(就是非叶节点)。...

2018-11-01 21:08:02 166

原创 codeforces 1051F The Shortest Statement

给出n个点,m条边求两点之间的最短路(m-n≤20)。看起来很难其实挺好写的,先dfs一遍,把所有跟环有关的边(也就是没遍历的边)的相关点存出来,然后求出全图到他们每个点的最短路,最后求两点间距离的时候可以当做求两点到开始的dfs树上lca的距离和与通过这些跟环右边的点的最短路来更新因为m-n≤20,所以最多40个点。#include<cstdio>#include...

2018-11-01 20:40:41 105

原创 codeforces 1015F Bracket Substring

题目大意:给出一个序列s,求出长度为2*n的序列中包含s的常规括号序列。常规括号序列就是指左右括号顺序和数量相等。如果没有左右括号的限制,可以直接参考bzoj1009GT考试我的更新思路:https://blog.csdn.net/zzk_233/article/details/82852615设dp[i][j]代表当前长度的串比配了j长度的方案数,更新的时候就是下一个字符为 "(" 或者...

2018-11-01 20:19:56 219

原创 codeforces 451E Devu and Flowers

1题目大意:给出n个盒子,每个盒子里有val[i]个球,想要拿出s个球,从每个盒子里拿出相同的球算同种方案,求方案数。首先对于式子的非负整数解个数为,考虑隔板法,将s个东西分成n份,允许有空相当于在s-1个空中放n-1个隔板,有空的盒子可以相当于先加上盒子个数个小球,真实计算是再减去,所以就是n+s个东西其中n+s-1个空选择n-1个放。但是这道题有个数限制,所以不合法的情况就是其中的...

2018-11-01 08:01:30 163

原创 codeforces 1065D Three Pieces

题目大意:给出一个n*n的图,每个点有一个值,构成一个1-n*n的序列,要求按照1-n*n的顺序走完全图,每走一步消耗1时间,有三种走法,按照国际象棋里的象,车,马。更换一次走法消耗1时间,求走到终点的最小时间,和最小时间下消耗最小转换次数看这数据范围n≤10,就是一道搜索题。设五维dp。具体解释在代码里了。 #include<cstdio>#include&lt...

2018-10-31 18:55:23 182

原创 codeforces 718C Sasha and Array

线段树维护矩阵信息。。一定要把初值都赋好。。。因为矩阵具有结合律,所以可以把子矩阵相加作为上一层的矩阵,对于更新的加值x,先在线段树外将转移矩阵自乘x次,再添加到线段树里。主要是码的准确。。#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#de...

2018-10-30 18:18:10 141

原创 codeforces 1005F Berland and the Shortest Paths

题目大意:给出n个点,m条边,和一个k,要求构成一棵树,每个点到1的距离都是原图中的最短路,输出有多少种。边权为1如果小于等于k种,就输出所有情况,以字符串的形式表示每条边是否选择,边的编号按照读入顺序。大于k种就随便输出k种。据说这叫最短路树。。。因为边权为1,所以考虑每个点最短的情况一定是从一个连向他的最短的点+1得到的。所以从1开始bfs,找到每个点的最短距离。然后枚举每条边...

2018-10-29 23:39:57 138

原创 NOIP十连测 涂色游戏

这是一道玄学组合数和神仙思路。。。题目大意:给出一个n*m的网格,每个格子里只能涂一种颜色,一共有p中颜色,要求任意相邻两列都出现了至少q种颜色的方案数。n≤100,m≤,q≤p≤100。看这m的范围,很容易想到矩阵乘法,所以可以先考虑递推式。设dp[i][j]表示前i列最后一列共有j种颜色的方案数。那么显然可以得到dp[i][k]=dp[i-1][j]*ans[j][k]...

2018-10-29 18:49:34 436

原创 bzoj 2721: [Violet 5]樱花

根据题意推式子。。,然后通分,,之后打开合并,,之后移项设所以那么因为x为整数,而一定为整数,所以要求后面的为整数,也就是有多少n的阶乘的平方的约数,就有多少解。所以可以对1~n分解质因数,根据约数和公式,就是n的质因数的指数+1的乘积。所以把1~n每个质因数的指数求和,平方就相当于个数*2,最后根据公式求乘积即可。#include<cstdio&gt...

2018-10-28 16:09:29 98

原创 bzoj 1477 青蛙的约会(exgcd模板)

exgcd裸题。两个人之间有一个距离,两人有一个速度差,设这个距离为c,速度差为a。而需要的次数就是x那么题意就是,这样就是exgcd的标准形式啦。至于距离和速度差一定要记得是追及问题,如果距离为a-b,那么速度就是b的减a的,如果为负,就取模加模再取模,变为正的含义上就是追了一圈。#include<cstdio>#include<cmath>#i...

2018-10-28 15:03:00 396

原创 bzoj 2982: combination(lucas定理模板)

lucas定理板子对于可以转化为这是一个递归的过程,时间为log。#include<cstdio>#include<cmath>#include<algorithm>#include<cstring>using namespace std;typedef long long ll;int n,m,p=10007;ll inv[...

2018-10-28 14:32:36 128

原创 bzoj 1951 [Sdoi2010]古代猪文

这是一道数论集合题求式子,首先可以先用欧拉定理将式子降幂为指数mod (999911659-1)。而对于指数可以在根号n的时间内枚举每个约数,对于每个约数求相应的组合数,可以用lucas定理来求解,但是因为这个模数不是指数,所以把这个模数拆开,再用中国剩余定理合并就好了注意的点是当g等于999911659时,这个定理不适用,但显然答案是0,所以要特判掉。#include&...

2018-10-28 14:26:01 132

原创 落谷 P3403 跳楼机(同余最短路)

这道题和裸的同余最短路思路是相同的,对于算法的介绍请转至蒟蒻(我)的另一篇题解:https://blog.csdn.net/zzk_233/article/details/83419118但是这道题有一些不同,起点是1,所以跑最短路的时候要把1先推入队列,而且dis[1]=1,因为虽然他是第一个,但是它要求的大小还是1。其余还是一样的。PS:一定要取模!!!最开始的1也要!!这...

2018-10-26 18:41:28 231

原创 bzoj 2118: 墨墨的等式(同余最短路)

题目大意:墨墨突然对等式很感兴趣,他正在研究a1x1+a2y2+…+anxn=B存在非负整数解的条件,他要求你编写一个程序,给定N、{an}、以及B的取值范围,求出有多少B可以使等式存在非负整数解。这种题的主要思路就是,找到所有的最小值x,而满足条件的所有取值mod x就在0~x-1之间,那么找到最小的满足这个余数的值之后只要不断加上自己就都是合法的解,可以直接求和,那么这个最小值怎么...

2018-10-26 18:31:36 374

原创 codeforces 990D Graph And Its Complement

首先我们知道一件事,就是如果这个图上的点>1时,一定有一种连通图是只有1个连通块的,而它的补图可以有≤n个连通块。而且当n==2&&n==3的时候,不能出现两个图都是只有1个连通块的情况。因为如果这个图不只有一个连通块,那么它的补图就会把一个连通块的点和所有其他连通块的所有点都连上,这样一定只有一个联通块。当a和b都等于1的时候要特殊注意,这个时候一条链就可以满足条...

2018-10-26 16:56:42 135

原创 论如何快速的枚举子集

for(int j=i&(i-1);j;(--j)&=i)对就是这样,i是需要枚举的数,设i的二进制位数为x,时间就是,很优秀

2018-10-26 15:18:33 554

原创 bzoj 3573: [Hnoi2014]米特运输

题目好难懂。。简述题意:给出一棵树,要求满足两个要求:1.每个节点的子节点权值相等。2.每个节点的权值和是这个节点的权值。然后就出最小修改点的数量来满足这个要求。那么显而易见只要确定一个节点就可以确定群图节点权值。这样枚举是的。通过这个结论我们发现只要确定1就可以确定全图,所以可以通过让每一个节点权值不动,然后判断有多少个1最后的值相同,就是最多有多少个不用动的,因为1...

2018-10-25 08:14:48 111

原创 雅礼集训 Day2 T3 联盟

  

2018-10-24 09:38:45 276

原创 雅礼集训 Day2 T2 蔬菜

 看到题解:什么什么出现次数少的时候二维前缀和维护,多的时候平方的转化。。然后相当于四维偏序。所以CDQ分治??什么毒瘤出题人啊啊啊。。。。好的,我们来暴力掉他!二维莫队,和一维莫队一样,而且排顺序的时候前后都按照块排都能过。。。。注意坑点就是每次起点和终点的横坐标要一起动,纵坐标一起动,但谁先动没关系。。。。...

2018-10-24 09:33:16 220

原创 雅礼集训 Day2 T1 施工

首先有一个比较好想的结论(谁说的。。。一点都不好想!)就是最优的情况一定是有两端高于中间的一段平地。因为一段本来有高度差的一起增高等于没用,所以我们可以把最终高度相等的作为一段,无论这段有多少个。而这样做的条件是两边比中间高。这样我们得到一个dp式子,这个是个二次函数,可以直接求出t的最小值就是理想高度,这样就求出了最小的来更新,而对于j的选取,就是在i前面第一个比它高的为...

2018-10-23 18:58:52 367

原创 雅礼集训 Day1 T3 画作

 

2018-10-23 18:08:18 190

原创 雅礼集训 Day1 T2 折射

 这是一道比较考研思维的题,如果按照y枚举,就需要判定两个界限,这有点麻烦(PS:当然zwz大佬写得出来也没什么题)。而对于我这种蒟蒻就只能找其他方法了,我们按照y枚举,而这个图合法的情况就是一条不断向下延伸的折线,所以设dp[i][0/1],表示这个点有一个向左或者向右的下一个点的情况。有向左和向右两种情况,这个点向左可以通过另一个向右的转移过来,向右的同理。而最开始想左...

2018-10-23 16:54:35 373

原创 codeforces 1027F Session in BSU

首先我们把日期看成点,每个考试都连接了两个点,而合法的情况就是每条边都至少有一个点和他配对,和二分图匹配很像。。但是时间明显不够,那么我们可以转换思路,通过连边,原图变为了一些连通块,而对于每个连通块,就有以下几种情况1.这个连通块是个树,那么每条边都有点,还多出一个点,所以最后要找的就是次大的点。2.这个连通块是一个基环树(就是只有一个环的树),那么每个点正好对应一条边,要用的就是最...

2018-10-22 16:41:46 146

原创 codeforces 508E Arthur and Brackets(贪心)

这道题看懂题用了一会,要求的就是对于每一个左括号,都要有一个右括号在他给的l,r区间内才合法,这个区间的定义就是左括号位置+l≤右括号的位置≤左括号位置+r。那么其实利用栈,如果目前处理出来的数量已经覆盖到他的l,r区间内,就处理,如果超过了就不合法。pos[i]表示这个点左括号的位置,ans是答案序列。(我是从0开始,所以关于cnt的判定是不加等的)。最后不要忘记清空栈。#...

2018-10-22 08:00:54 189

原创 codeforces 1029E Tree with Small Distances

这道贪心感觉比较好想吧。。但是有坑点。。我们发现一个点如果不合法,把他的父节点连到跟比把他自己连到跟要合适一些,所以为了不少不漏情况,直接dfs遍历整棵树,遇到一个树的子节点不合法就把这个点连到跟,这个时候坑点出现了,因为它是个树,所以它的子节点的dis值更不更新都没事,反正不会被二次搜到,但是它的父节点一定要更新成2(就是合法),不然会多出一些情况的,最后统计答案就行了。#...

2018-10-21 23:24:11 136

原创 雅礼集训 Day1 T1 养花

 这道题的暴力很好写。。正解也很暴力。。。(PS:吐槽数据。。说好的≤100000却出现了100001)正解分块。主要思路是处理出每个块对于每个模数的最大余数。乍一看好想只能(那我优化什么???)其实可以。。因为可以处理出块内到每个数为止的最大值。之后枚举每个数作为模数,再枚举起始点,起始点+模数-1,也就是加上最大余数,在这个范围内的最大的数%模数就是要求的最大模数。...

2018-10-21 19:36:33 311

原创 noip模拟赛(关于欧拉回路的一点想法)

题目大意:给出n个点m条边,问有多少种方案可以走m-2条边2次,走2条边1次。边为双向边。无重边,有自环。这道题用到了欧拉回路的一些思想(考试的时候我是通过对拍出所有情况讨论过的!)可以理解成花一个一笔画,共用了2*m-2条边。这种用不重复的边走完全图的操作就是欧拉回路。而根据欧拉回路的性质,只有所有的点的度都是偶数或者只有两个点的度是奇数就可以满足。而因为是双向边,所以所有点的度...

2018-10-16 10:26:29 154

原创 约瑟夫问题(基于NOIP初赛题的改编)

什么鬼互测题系列。。这个我至少推出来了

2018-10-12 19:11:20 375

原创 [USACO18OPEN]Talent Show(01分数规划)

学习ing。。什么鬼互测题系列。。。

2018-10-11 15:34:16 187

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除