10 2017 档案
摘要:题目链接 我好蒻啊 题题看题解 线段树维护从左端点开始的最长连续空房、右端点结束的最长连续空房、整段区间的最长连续空房、区间非空房的个数。 http://blog.csdn.net/qq_39553725/article/details/77604572 此处题解。
阅读全文
摘要:题目链接 考虑f(i)=i%1+i%2+i%3+.....+i%n f(i+1)=(i+1)%1+(i+1)%2+......+(i+1)%n 其中不是i+1的因数的部分在f(i+1)的地方都加了1. 例如3%3=0,4%3=1;或5%4=1,6%4=2.。 而是i+1的因数的部分……置零了。如2%
阅读全文
摘要:题目链接 又一道面向题解编程的恶心神题。真是叫人质壁分离…… 设f[i][j][k]表示考虑了前i节课,尝试了j次,当前申请结果为k时消耗的体力值。 对于f[i][j][0]有两种情况:一是我们的主角根本没去申请换当前课,二是我们的主角尝试了,但是failed so根据题面有以下几种情况: 1.当前
阅读全文
摘要:题目链接 妈耶 我的图建反了两次 准确的说是有两个地方建反了,然后反上加反改了一个小时…… 知道为什么要拆点吗? 假设这是你的图 左边到右边依次是超级源点 练习册 书 答案 超级汇点 请问这张图的最大流是多少? 如果把中间拆成这样: Book-in是跟练习册匹配的书的入端,Book-out是跟答案匹
阅读全文
摘要:题目链接 本来准备自己yy一个倍增来着,然而一看要求O1查询就怂了。 ST表模板。放上代码。
阅读全文
摘要:最大流模板成为另一个被攻克的模板题。 今天QDC给我讲了一下Dinic,感觉很好懂。于是为了巩固就把这道题A掉了。 核心思想就是不断BFS分层,然后不断DFS找增广路。找不到之后就可以把答案累加输出了。 我知道这么一笔带过很不友好啊……所以Sniffestherose写的一篇不错的网络流讲解博客 为
阅读全文
摘要:题目链接 yeah终于过辣! DP,f[i][j]表示每行还剩i到j这个区间的数没取的时候的值。借这个题我也把高精度的短板弥补了一下,以后高精加高精乘应该是没问题了。 哇终于不怂高精了…… 放上代码。
阅读全文
摘要:题目链接 当guess>limit-deep的时候return就好了。 guess是估价函数,值为不在自己地盘上的骑士个数。limit是本次迭代阈值。deep是已经走了多少步。 这个优化是显然的。因为一次跳跃最多可以复原一个骑士。假设最好的情况,所有的骑士都能一步跳回去,如果这样还不能在阈值步数内复
阅读全文
摘要:一道状压题,但今天闲来无事又用遗传乱搞了一下。 设了一个DNA数组,DNA[i]记录第i个物品放在哪个组里。适应度是n-这个生物的组数+1. 交配选用的是轮盘赌和单亲繁殖——0.3的几率单点变异。(事实上有性生殖我似乎写不出来……代码量略大) 种群大小开到了400,在vijos上繁殖了2050代,下
阅读全文
摘要:安利photoshop和sai画图软件。 你会发现sai的钢笔非常好用——事实上它就是一个能在画完之后改粗细的画笔。所以画起来很爽。 Photoshop渣,所以我用Photoshop只干两件事: 载入山脉形状画笔,然后开始到处乱点。第二就是调浮雕效果,内投影,外投影,内发光,外发光什么的 关于这个地
阅读全文
摘要:这题真是“容易”。呵呵呵。 参考题解:xyz32768 代码
阅读全文
摘要:题目链接 很巧妙的想法。一开始将1~k-1加入堆中,然后每次从堆里取出一个最小的,判断是不是答案,如果不是,那么就枚举新数的末一位加上。 代码如下
阅读全文
摘要:题目链接 有个定理叫gcd(f(n),f(m))=f(gcd(n,m)) 所以递推就好了。
阅读全文
摘要:题目链接 难题,所以会讲得细一些。 首先我们想如何统计区间[l,r]内不同贝壳的个数。 第一个思路就是线段树/树状数组,query(1,r)-query(1,l-1)对不对? 然而这样是不对的。 然后我们举个例子: 例如有一段区间是[ 1 2 3 1 2 3 1 2 3 ]这样子,如果要统计不同贝壳
阅读全文
摘要:题目链接 话说我存一些只需要按照一个关键字排序的双元素结构体的时候老是喜欢使用链式前向星…… DP。f[i]表示前i个位置奶牛最多能吃到的草。转移方程如下: 其中j满足y[j]=i。 代码如下:
阅读全文
摘要:题目链接 对食材进行排序,重载运算符代码如下: 理由是,如果你先做当前的食材,让下一个食材等着,那下一个食材的损失就是c*a.b 如果你先做下一个食材,让当前食材等着,当前食材损失就是a.c*b 那当然以损失小为原则排序 随后就是普通的01背包。代码如下:
阅读全文
摘要:题目链接 设f[s]表示二进制集合表示下的s集合都打掉用了多少小鸟。 预处理出lne[i][j]表示i、j确定的抛物线能打掉的小鸟集合。 于是就有f[s|lne[i][j]]=min(f[s|lne[i][j]],f[s]+1); 什么?两个点确定不了抛物线?原点是不是被忘掉了…… 代码如下
阅读全文
摘要:题目链接 由于是暴搜题,所以这篇博客只讲怎么优化剪枝,以及一些细节。 模拟消除思路:因为消除可以拆分成小的横条或竖条,而这些条的长度至少为三,所以一块可消除的区域至少会有一个中心点。这里的中心点可以不在正中间,只需要不是条上的第一个或者最后一个。 于是枚举中间点,搜索它为中心最多向四个方向能扩展多远
阅读全文

浙公网安备 33010602011771号