摘要:
如果是裸的多重背包就非常简单了。。。用f[i]表示用了cost为i的时候的最大价值所以我们二分某一段[l, r]之间的物品不使用,剩下的都使用的最大值,这时的f[]数组可以由之前的f[]数组得到。。。所以只要记录log(n)的f[]数组即可。。。 1 /***********************... 阅读全文
摘要:
我们查看更一般的情况,设人数为m则n 0) :13 res = (res + C(n - m - 1, i - 1) * C(m, i)) * 214 i -= 115 return res * fac[m - 1] * n;16 17 fac = [1]... 阅读全文
摘要:
先说一说这个OJ:貌似是11区某大学ACM的OJ,叫AIZU ONLINE JUDGE,貌似还可以看到部分犇的代码。。。跪跪跪然后知道这个OJ是某场比赛安利的= =接下来将做法:首先我们可以发现每个点周围两种颜色的个数都是2...(不要问我为什么)然后可以发现,构成图形是由2 * 2的同色的地砖或者... 阅读全文
摘要:
即求区间的乘积的欧拉函数模一个数预处理前60个素数和逆元,用线段树维护区间乘机和每个素数出现的次数(我用了bitset嗯嗯嗯)于是可以O(sqrt(n))求出欧拉函数 1 /**************************************************************... 阅读全文
摘要:
首先将(x, y)变换为((x + y) / 2, (x - y) / 2)然后变成查询区间中位数的问题,把x, y分开做离散化完直接用主席树维护区间和 1 /************************************************************** 2 ... 阅读全文
摘要:
我们只要暴力枚举块的大小就可以了。。。枚举的总复杂度是O(n / 1 + n / 2 + n / 3 + ...) = O(n * logn)的何如去重呢。。。直接暴力hash再丢进set里搞定,总复杂度O(n * log2n) 1 /********************************... 阅读全文
摘要:
先按照到站的点的距离排个序,然后贪心的每次拿当前范围最大的来找然后集齐了一组范围递增,可控重量递减的磁铁以后,就可以直接一个个看能不能拿了但是会TLE,用线段树维护即可 1 /*************************************************************... 阅读全文
摘要:
还是离线把操作倒过来做,于是每个馒头只要看最后一种颜色就好了如果一个馒头已经有颜色了,就把它并到右边的馒头的集合里去 1 /************************************************************** 2 Problem: 2054 3 ... 阅读全文
摘要:
首先我们离线,把操作倒过来,就变成每次把一棵树连到1所在的树上我们可以通过并查集来完成,然后就是每次并到1所在的树上时dfs一下这棵子树就好了 1 /************************************************************** 2 Proble... 阅读全文
摘要:
正确方法是模拟退火?根据wulala的讲法,我们多random_shuffle几发,对序列贪心一下就好了反正都是随机化的做法,能过就行2333 1 /************************************************************** 2 Proble... 阅读全文