自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 长远打算

unity会的不少了,感觉做一些小型的开发项目已经足够了。。 所以现在的问题在于提升自身综合素质了 比如 搞搞竞赛题,搞搞acm(吃老本),顺便还可能搞搞电子设计大赛,找找英语材料,也可能会整一些公式,学一下AI、网络编程什么的。。 总之往学习方向靠吧,感觉整些虚的好像用处不大,或者能出现的...

2020-05-21 03:44:37 82 0

原创 C#中结构体排序方法(Array.sort() + ICompare)

感觉C#比C++麻烦许多,资料也少,找了半天竟然没有找到一个能用的结构体排序。 这是待排序的结构体: public struct la { public int id; public int sb; }; ...

2019-08-29 00:54:11 670 2

原创 bzoj3944 Sum 杜教筛

模板题,注意杜教筛化式子的技巧:1、构造求和函数2、利用积性函数约数性质3、做差算出单项4、约数倍数转化贡献5、分块求商码:#include<iostream> #include<cstdio> #include<map&...

2018-03-16 14:54:22 178 0

原创 bzoj4820 [Sdoi2017]硬币游戏 高斯消元+概率+kmp

有环的概率是可以高斯消元的由于匹配情况可能从一个串转移到另一个串,所以需要建一个转移关系的图就可以建一个ac自动机,但节点数是nm的。就可以设未知数,然后凑一些方程。设N表示没有任何人获胜的概率(允许有前缀)然后N+ A串/B串/...n串  一定会停止。一定会停止的情况只有N  +  n种串。若...

2018-03-09 15:04:50 189 0

原创 bzoj4600 [Sdoi2016]硬币游戏 sg函数+结论

sg[maxQ][二的次数][三的次数]=前面的都是正面的胜负状态C不一样的相互独立首先顺序是不重要的,因为他有一个模仿关系。比如   9,3是0    必胜策略是 选9翻9 、3  由于是异或,所以必胜策略可以理解为 选9 翻 9  ,这样3的位置就需要翻两遍,也就相当于翻0次就可以理解为3这位...

2018-03-07 10:50:22 294 0

原创 bzoj4598 [Sdoi2016]模式字符串 hash+点分

哈希也是有技巧的。不然很容易错。匹配串范围是1e6的,所以普通hash错误概率也是很大的所以就要利用匹配的特性(长度与匹配串一一对应)来hash,这样错误概率会小,相当于hash挂链吧。一开始写的每个前缀hash存位置。这样一个hash里就有1e6个值。码:#include<iost...

2018-03-06 20:18:19 167 0

原创 bzoj4515 [Sdoi2016]游戏 标记永久线段树+链剖+差分

树上路径问题还有一个比较好的差分就是利用到根节点的信息。。题目的形式显然是一个一次函数,于是想到维护一次函数最小值上升路径就是: A(d[x]-d[o])+B   =  -Ad[o]+(B-Ad[x]);下降路径:       A(d[x]+d[o]-2*d[lca])+B = Ad[o]+(B+...

2018-03-04 10:33:37 146 0

原创 bzoj1568 [JSOI2008]Blue Mary开公司 标记永久化线段树

维护n条直线,保存斜率和截距。注意维护的时候分类讨论:1、两端都大于2、两端都小于3、交点在中点左4、交点在中点右注:点数不是询问数初值码:#include<iostream> #include<cstdio> using namespace...

2018-03-03 14:12:28 98 0

原创 bzoj4513 [Sdoi2016]储能表 dp

这种数位dp第一次见。。其实应该是利用位运算相互独立来避免后效性一般的数位dp只有一个范围 这个题有三个范围。。由于数位和整个数的大小没直接关系,所以就需要用状态记录首先不合法的一定不转移,对于n和m的限制 ,一位合法的话有可能出现后面无论如何都合法, 与后面的数不能小于剩下的数,由于比他大的都不...

2018-02-27 15:00:42 81 0

原创 bzoj4514 [Sdoi2016]数字配对 费用流

千万不要想复杂了,倍数和质数仅仅是判断两点之间能不能匹配的条件。。主要问题还是一个分配问题一开始想贪心,但好像不对,然后就由反例推出了关系图,然后就是二分匹配问题。。由于每个点入的量+出的量==数量,由于一次匹配要流两条边,对于原图是很难限制的;但由于对称性,所以就直接建两个方向的边即可。。码:#...

2018-02-25 21:00:43 126 0

原创 bzoj4602 [Sdoi2016]齿轮 边权并查集

把并查集的树形结构画出来,尝试路径压缩,就是直接把边权乘起来,表示当前节点转1圈,父节点转几圈。。如果卡精度可以用取log或分解质因数。码:#include<iostream> #include<cstdio> using namespace...

2018-02-25 16:24:40 122 0

原创 bzoj2756 [SCOI2012]奇怪的游戏 结论+网络流

首先这个题有一些情况不满足二分的性质,即黑白块数不相等的情况,这种情况满足的最后数字是可以直接求出来的因为有解的条件  x*cnt1-ans1==x*cnt0-ans0,x是唯一解相等的情况 上式就等价于x=x。。所以另外一个解的判定方法就是按照当前x能不能及时分配完,由于点与点之间的关系连成一片...

2018-02-24 20:34:23 109 0

原创 bzoj1296 [SCOI2009]粉刷匠 区间dp+背包

每一条都是独立的,所以可以分开处理对于一条,粉刷一定是粉刷完完整的一条是最优的(不会有比它优的),所以枚举次数起点转移不同条之间就是分组背包的关系了。。码:#include<iostream> #include<cstdio> #includ...

2018-02-24 15:36:42 133 0

原创 bzoj1069 [SCOI2007]最大土地面积 凸包+单调性

先做凸包 枚举对角线,然后两个指针单调的扫。。枚举的顺序有时候也会创造性质注意重点不能选!码:#include<iostream> #include<cstdio> #include<algorithm> usin...

2018-02-24 14:46:32 133 0

原创 bzoj1293 [SCOI2009]生日礼物 单调队列

比较好想的单调队列码:#include<iostream> #include<cstdio> #include<algorithm> #include<map> using namesp...

2018-02-23 18:16:23 119 0

原创 bzoj1024 [SCOI2009]生日快乐 结论+dfs

一定不要想复杂了,虽然他看起来和二分的条件一模一样切的时候一定是切在等分点上,所以就枚举等分点切就可以了。。感觉应该有更简单的结论码:#include<iostream> #include<cstdio> using namespace st...

2018-02-23 15:49:27 93 0

原创 bzoj2460 [BeiJing2011]元素 贪心+线性基

线性基其实和向量关系很近。只是他们都是单位向量然后重复的01组判断方式类似高斯消元判无消方程的情况由于出现无解方程类似于一个环,所以这个线性无关组就类似一棵树,所以就可以用类似kruskal的方法求最大线性无关组相当于带权最大生成树码:#include<iostream&gt...

2018-02-22 12:26:59 90 0

原创 bzoj1193 [HNOI2006]马步距离 构造+枚举

首先肯定不是直接按xy跳,因为会有几个特殊位置:(0,0)到(1,1)(0,0)到(1,0)(0,0)到(4,4)正常逼近是那长距离跳2,短距离跳1,但在这几个类似的点上是不行的首先,一定会有一段两个坐标都逼近的一部分,而且还很多都逼近的话,一定是当前位置最优解,但只逼近的话,当前位置不一定能落在...

2018-02-18 16:50:50 149 0

原创 bzoj 2962 序列操作 线段树

这个题卡常数。。首先c比较小,所以可以考虑dp转移,对于合并子序列就直接枚举跨区间的就可以了对于反转操作,要注意只有奇数位置才会变成相反数对于增加操作,可以考虑抽象成组合数学问题:对于(a1+b)*(a2+b)+(a1+b)*(a3+b)+(a2+b)*(a3+b),拆下来就是每一项都会和不同的两...

2018-02-11 07:45:57 157 0

原创 bzoj2127 happiness 最小割

不要往费用流上想,要往最小割上想,舍弃的权值最小,然后就想一下放到哪边有哪些贡献,不同位置会割掉不同贡献的边,然后枚举各种割的情况,赋边权就可以了码:#include<iostream> #include<cstdio> #include&a...

2018-02-08 14:48:52 115 0

原创 bzoj1070 [SCOI2007]修车 费用流+拆分

这个题一开始容易想到最暴力的建法,由于前面的决策影响后面的人的等待时间,所以就枚举第几个选第几辆, 由于有后面受前面影响,所以也可以看成前面对后面影响,影响的最多n个,所以就枚举影响建图,由于3辆车 安排4个一定不如3个优,就没有后效性了 码: #include #include #...

2018-02-07 21:34:32 87 0

原创 bzoj3190 [JLOI2013]赛车 半平面交

思路和求凸包有点像 首先根据初始位置排序,然后同位置按斜率升序 然后加一条直线就暴力找就可以了(可以二分) 存每条直线的选取区间,然后由于有效的斜率单增,所以若覆盖了就是最后一个 要注意多条直线交于区间端点和 直线重合,由于后面的点一定被覆盖 ,直接加进前一条直线即可,然后这条直线加在最后...

2018-02-07 17:36:16 109 0

原创 bzoj3192 [JLOI2013]删除物品 树状数组

每次操作一定是直接换到当前最大的,所以相当于来回移动求移动次数 把两个栈拼在一起就是一个队列,然后就直接查询个数+删点统计答案,用树状数组 码: #include #include #include #include using namespace std; int n,v[1000...

2018-02-07 10:14:14 99 0

原创 bzoj3551 [ONTAK2010]Peaks加强版 kruskal重构树

最大边最小,就是最小生成树,可以考虑用主席树维护father数组,但不能遍历子集查找 然后就只能牺牲一部分空间时间来多存一些东西 多存的就是边值大小顺序,本来以为是用主席树排边值,结果由于此题有2种数据(边值、点值)要排,所以每加一个边维护点值排序空间是不对的 然后就按照边重构一棵树,尽量利...

2018-02-06 21:26:34 113 0

原创 bzoj4569 [Scoi2016]萌萌哒 并查集+st表

这个题非常巧妙,它描述了一种新的延迟标记关系。。 正常的线段树是用n*4的空间描述一个序列,所以对于一段区间,有可能会有log个点对应一个点 而线段树是利用尽量小的空间使查询变为log st表是nlogn的空间,对于一段区间,是可以做到一一对应的,它只是预处理比线段树暴力了一些 所以这个题...

2018-02-05 20:01:03 135 0

原创 bzoj4415 [Shoi2013]发牌 线段树

相当于找区间第k个数,同时支持删点 这个题的线段树操作和noiD1T1有点像。所以调了半天。 注意对size取模,注意查找区间第k的时候的特判 码: #include #include using namespace std; #define zuo o<<1,l,mi...

2018-02-03 20:15:43 135 0

原创 bzoj4417 [Shoi2013]超级跳马 矩乘

在手玩的时候找转移的规律,发现可以奇偶分类,不同奇偶的点相邻3行全都可以+1转移,同奇偶的点不可以转移 所以对于每一行,都记录奇偶两种的前缀和,就可以省去扫同行的点 注意,由于是两两转移,要注意区分12->34 中的1->4和 1->2,为了避免3->4就需要独立的12...

2018-02-03 17:34:05 186 0

原创 bzoj4419 [Shoi2013]发微博 差分

这种题一般都是差分,而且只用推一层, 所以对于加边和删边就直接差分消除影响即可 注意统计答案的时候还在的边也要统计,相当于做删除处理,扫一遍加边删边即可判断,注意在vector里可能出现多次,只统计一次 码: #include #include #include using ...

2018-02-03 10:52:50 94 0

原创 bzoj1935 [Shoi2007]Tree 园丁的烦恼 二维偏序

其实这个题就是一个二维偏序,注意不要往树套树上想了 用容斥求出4个点的偏虚前缀和 保证y 保证x>要求点,就树状数组求前缀和 码: #include #include #include #include using namespace std; struct dian { int...

2018-02-02 21:46:02 156 0

原创 bzoj1934 [Shoi2007]Vote 善意的投票 最小割

一上来容易想到缩点dp,但由于一个集合是没法用状态表示的,所以不能dp 然后就可以想到最小割,即通过割边和代价完成分配; 就比较好做了,默认选0就和0连边,默认选1就和1连边,朋友之间连边,如果在同一个集合里不会产生流量,如果在不同集合里会产生代价为1的流量 码: #include #in...

2018-02-02 14:23:22 92 0

原创 bzoj2300 [HAOI2011]防线修建 离线凸包

这个题可以在线做,splay维护凸包的同时维护区间最值线段树,当删除一个点就找跨过这个点的不在凸包上的点的y最值,然后分下去 由于一次确定一个点,所以复杂度还是nlogn的,只是比较难写 如果一个操作非常麻烦,可以考虑对立面,所以就可以考虑倒着加点,就可以直接用splay维护了 注: 引用...

2018-02-02 09:23:34 98 0

原创 bzoj4565 [HAOI2016]字符合并 结论+状压+区间dp

如果k==2的话就是记搜, 但这个题用记搜的思路的话是需要枚举k个断点的, 所以对于枚举断点,就很可能有优化,比如到一个断点,一个决策的最优值 于是考虑区间dp模型,相当于是插入一个数,然后看影响。 然后合并显然是从插入点到另一个端点,所以可以从插入点到另一个端点枚举区间 然后插入的点会...

2018-01-31 20:22:57 119 0

原创 bzoj1005 [HNOI2008]明明的烦恼 prufer+组合数学

直接考虑prufer序列,每个度数-1就是再n-2的序列中出现的次数 对于不确定的-1,每个没有填的位置都是有可能填的,所以直接离散用乘法原理 对于确定的就是组合数选位置,注意要开高精 对于高精除法的话就使用类似exlucas的方法提取因子,最后再乘 码: #include #inclu...

2018-01-30 17:15:12 106 0

原创 bzoj3198 [sdoi2013] spring 哈希挂表+容斥

6这个数据非常小,而且hash只能用来匹配,并不能检验完全不匹配,对于处于对立面的小数据就需要使用大型暴力容斥 但这个题超级卡hash,不知道是数据的锅还是题目本身的性质,直接上双hash都过不了 首先hash是被hash的数规模越小越不容易错,所以对于枚举每个数容斥不如先容斥再枚举每个数,这...

2018-01-28 21:47:22 125 0

原创 bzoj1038 [ZJOI2008]瞭望塔 枚举

这个题实际上求的是半个凸包的核,但只需要枚举直线两两交点和地上的点就可以很快跑过 根据线性规划原理答案应该在直线交点上,为什么还要看地上的点? 因为实际上可行域是有下限的,有可能下限与地线重合 码(注意eps和运算中的括号): #include #include using nam...

2018-01-28 11:18:23 103 0

原创 bzoj3203 [Sdoi2013]保护出题人 凸包+二分

一开始以为丧尸可以挡伤害,然后发现这个题目的设定非常** 然后就考虑每个丧尸到门口的时间,由于伤害是继承的,所以前缀和分配 然后答案=Σ(HP前缀和*速度/距离)  设 HP/l=k ,l=x+nd   由于后面的点向后和向上的距离一样,所以两点间的斜率一样 HP=k(x+nd) 设Y=H...

2018-01-25 17:19:09 124 0

原创 bzoj3129 [Sdoi2013]方程 容斥+扩展lucas

调了两天,全是低级错误和脑子问题 对于>=的,直接用m减掉 对于 然后由于>=和 但由于我简单容斥做多了,所以就直接用全合法的-全不合法的 然后一定要放弃合法的-不合法的这种想法,应该改成0不合法-1不合法+2不合法-3不合法。。。 然后快速幂还没取模了,exlucas的快...

2018-01-24 19:20:18 100 0

原创 bzoj3533 [Sdoi2014]向量集 可持久化凸包+二分

首先,x和y都小于一个向量且都大于一个向量的点一定是没有用的 这样就相当于挖掉了决策中位置偏中间的点,然后要求ax+by的最小值 设 ax+by=k,则 y=k/b-a/bx  ,就变成了类似斜率优化的东西,相当于拿一个斜率去卡一个点 卡的点一定在凸包上,所以维护凸包,然后二分斜率查询就可以...

2018-01-22 22:02:06 247 0

原创 bzoj3238 [Ahoi2013]差异 后缀自动机

这个题虽然看起来比较麻烦,但其实有一点搞懂了就好做了 每一个后缀的前缀的lcp一定是这个串里的子串, 对于全部子串,如果它不是后缀,那一定可以找到这个串对应的后缀, 而这样的子串和后缀子串是没有区别的,因为他们出现的位置相同,而后缀自动机记录每个子串的出现次数, 这个子串和以它开头所在的后...

2018-01-20 20:35:39 140 0

原创 bzoj2244 [SDOI2011]拦截导弹 cdq分治

这个题看起来是二维偏序,但实际上是三维偏序(高度、速度、顺序) 所以就用顺序减掉一维,cdq减掉一维,用数据结构减掉一维, 然后求每个点的概率就等于 经过他的方案数/方案总数 然后首先要知道lis的答案,用cdq分治转移一遍即可出解,但由于要算方案总数,所以需要记录 到一个点 dp值最大时的...

2018-01-20 16:23:20 93 0

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