08 2015 档案

摘要:先n++, m++显然答案就是C(3, n*m) - m*C(3, n) - n*C(3, m) - cnt. 表示在全部点中选出3个的方案减去不合法的, 同一行/列的不合法方案很好求, 对角线的不合法方案cnt比较麻烦.枚举对角线(左下-右上), 即(0, 0)-(x, y), 我们发现这种情况有... 阅读全文
posted @ 2015-08-31 21:27 JSZX11556 阅读(439) 评论(0) 推荐(0) 编辑
摘要:每进行一次, 编号为x的数对x, 和(x+1)%N都有贡献用矩阵快速幂, O(N3logK). 注意到是循环矩阵, 可以把矩阵乘法的复杂度降到O(N2). 所以总复杂度就是O(N2logK)-------------------------------------------------------... 阅读全文
posted @ 2015-08-30 22:07 JSZX11556 阅读(240) 评论(0) 推荐(0) 编辑
摘要:写了一个早上...就因为把长度为m的也算进去了...dp(i, j)表示准考证号前i个字符匹配了不吉利数字前j个的方案数. kmp预处理, 然后对于j进行枚举, 对数字0~9也枚举算出f(i, j)表示dp(x-1, j)对dp(x, i)的贡献.然后用矩阵快速幂就可以了. 时间复杂度O(M3log... 阅读全文
posted @ 2015-08-30 11:56 JSZX11556 阅读(340) 评论(0) 推荐(0) 编辑
摘要:按照题意dp...dp(l, r) = min{ dp(l, x) + dp(x+1, r) , 折叠(l, r) }折叠(l, r)我是直接枚举长度然后哈希判..--------------------------------------------------------------#inclu... 阅读全文
posted @ 2015-08-29 22:09 JSZX11556 阅读(260) 评论(0) 推荐(0) 编辑
摘要:最普通的轮廓线dp... 复杂度O(nm2min(n, m))--------------------------------------------------------------------#include#include#includeusing namespace std;typedef... 阅读全文
posted @ 2015-08-29 20:21 JSZX11556 阅读(202) 评论(0) 推荐(0) 编辑
摘要:显然是最小割...对于规律(i, j, k) i,j 互相连边, 容量为k对于规则(S, a, b) 新建一个点x, x与S中每个点连一条弧, 容量+∞, 然后再根据a决定x与源点或汇点连边.跑最大流, 用总收益减去就是答案了...挺好想的一道题...#includeusing namespace ... 阅读全文
posted @ 2015-08-29 10:16 JSZX11556 阅读(253) 评论(0) 推荐(0) 编辑
摘要:求 φ(m!) * n! / m! .拆开得 m! *∏ (p-1)/p * n! / m! =∏ (p-1)/p * n! (p|m!)我们可以预处理出1~m的∏ (p-1)/p 和 n!. 注意到取模的数为质数, 那么就可以用乘法逆元和线性筛预处理前者.时间复杂度O(MAXN)-O(1)#inc... 阅读全文
posted @ 2015-08-28 10:38 JSZX11556 阅读(410) 评论(0) 推荐(0) 编辑
摘要:颓废了很多天暑假作业...好不爽啊..虽然还是没写完.... 阅读全文
posted @ 2015-08-27 23:19 JSZX11556 阅读(115) 评论(0) 推荐(0) 编辑
摘要:welcome!感觉还是得有个留言板才好...虽然没什么人来..留言的话在这里评论就行了 阅读全文
posted @ 2015-08-22 18:45 JSZX11556 阅读(408) 评论(8) 推荐(0) 编辑
摘要:最多只有2列..分开来dp1列 dp(x, k) = max( dp(x - 1, k), dp(p, k - 1) + sum(p+1~x) )2列 dp(a, b, k) = max( dp(a - 1, b, k), dp(a, b - 1, k), dp(p, b, k - 1) + sum... 阅读全文
posted @ 2015-08-15 15:45 JSZX11556 阅读(434) 评论(2) 推荐(0) 编辑
摘要:用splay维护序列, 二分+hash来判断LCQ..#includeusing namespace std;typedef unsigned long long ull;const int maxn = 100009;const int P = 1000173169;ull K[maxn];int... 阅读全文
posted @ 2015-08-15 14:06 JSZX11556 阅读(270) 评论(0) 推荐(0) 编辑
摘要:单调队列..先对每一行扫一次维护以每个点(x, y)为结尾的长度为n的最大最小值.然后再对每一列扫一次, 在之前的基础上维护(x, y)为结尾的长度为n的最大最小值. 时间复杂度O(ab)(话说还是deque2048ms快..list3572ms慢死了)#includeusing namespace... 阅读全文
posted @ 2015-08-14 21:45 JSZX11556 阅读(284) 评论(0) 推荐(0) 编辑
摘要:显然题目要求长度为n的置换中各个循环长度的lcm有多少种情况.判断一个数m是否是满足题意的lcm. m = ∏piai, 当∑piai≤ n时是满足题意的. 最简单我们令循环长度分别为piai,不足n的话,我们令其他循环长度为1, 补到=n为止. 这样它们的lcm显然是=m的.然后就是一个背包了..... 阅读全文
posted @ 2015-08-14 17:14 JSZX11556 阅读(190) 评论(0) 推荐(0) 编辑
摘要:...字符串hash.假如长度x是一个循环节, 那么对于任意n(x | n)也是一个循环节.设当前询问区间[l, r]长度为len = ∏piai, 最终答案ans = ∏piai' ,我们只需枚举len的质因数来确定ai'即可#includeusing namespace std;typedef ... 阅读全文
posted @ 2015-08-14 10:41 JSZX11556 阅读(547) 评论(0) 推荐(0) 编辑
摘要:写了个暴力...然后就AC了...记录每个数出现的位置, 然后每次询问用二分暴力匹配...极端情况可以卡到O(m²logm)...#includeusing namespace std;const int maxn = 1000009;vector pos[maxn];int N;int main(... 阅读全文
posted @ 2015-08-13 22:49 JSZX11556 阅读(262) 评论(0) 推荐(0) 编辑
摘要:线段树的合并..对于一个点x, 我们只需考虑是否需要交换左右儿子, 递归处理左右儿子. 1 #include 2 3 using namespace std; 4 5 #define M(l, r) (((l) + (r)) >> 1) 6 7 typedef long long ll; 8 ... 阅读全文
posted @ 2015-08-13 22:18 JSZX11556 阅读(299) 评论(0) 推荐(0) 编辑
摘要:ORZjcvb... 1 #include 2 3 using namespace std; 4 5 const int maxn = 100009; 6 7 int N, M, item[maxn], V[maxn]; 8 vector o, cnt, Div; 9 10 int main(... 阅读全文
posted @ 2015-08-13 16:35 JSZX11556 阅读(317) 评论(2) 推荐(0) 编辑
摘要:从左到右, 从右到左分别dp一次, 然后就可以回答询问了.----------------------------------------------------------#includeusing namespace std;const int V = 1000;const int maxn =... 阅读全文
posted @ 2015-08-13 10:41 JSZX11556 阅读(453) 评论(2) 推荐(0) 编辑
摘要:对y坐标离散化, 然后按x坐标排序, dp. 一个点(x, y), 设到达这个点接到的最多乘客数为t, 那么t可以用来更新y'>=y的所有点.用树状数组维护最大值.--------------------------------------------------------------------... 阅读全文
posted @ 2015-08-12 23:48 JSZX11556 阅读(211) 评论(0) 推荐(0) 编辑
摘要:矩阵快速幂...+快速乘就OK了--------------------------------------------------------------------------------------#includeusing namespace std;typedef long long ll... 阅读全文
posted @ 2015-08-12 22:18 JSZX11556 阅读(224) 评论(0) 推荐(0) 编辑
摘要:裸的费用流...拆点, 流量限制为1, 最后的流量和费用即答案.----------------------------------------------------------------------#includeusing namespace std;const int maxn = 409... 阅读全文
posted @ 2015-08-11 23:10 JSZX11556 阅读(253) 评论(0) 推荐(0) 编辑
摘要:题意: N个礼品箱, 每个礼品箱内的礼品只有第一个抽到的人能拿到. M个小孩每个人依次随机抽取一个, 求送出礼品数量的期望值. 1 ≤ N, M ≤ 100, 000挺水的说..设f(x)表示前x个人都选择完成后礼品剩下数的期望值( f(0) = N ), 那么f(x) = f(x - 1) - f... 阅读全文
posted @ 2015-08-10 21:31 JSZX11556 阅读(586) 评论(0) 推荐(0) 编辑
摘要:题意大概是:给出N个硬币, 面值为a_i, 问要凑成X元哪些硬币是不可或缺的.1 ≤ N ≤ 200, 1 ≤ x ≤ 10^4直接枚举, 然后就是01背包了. 为了不让复杂度多乘个N, 我们就从左往右, 从右往左分别dp一次.这样判断一个硬币就是O(X).总时间复杂度O(NX)----------... 阅读全文
posted @ 2015-08-10 20:52 JSZX11556 阅读(266) 评论(0) 推荐(0) 编辑
摘要:裸树链剖分...-------------------------------------------------------------------#includeusing namespace std;const int maxn = 300009;struct edge { int to; e... 阅读全文
posted @ 2015-08-10 16:43 JSZX11556 阅读(320) 评论(0) 推荐(0) 编辑
摘要:果然写得短就跑得慢...直接用set就行了(你要写棵平衡树也可以).没有包含的话, 假如L(i) using namespace std;typedef pair pii;const int maxn = 100009;set S;int L[maxn], R[maxn], N;int main()... 阅读全文
posted @ 2015-08-10 14:25 JSZX11556 阅读(313) 评论(0) 推荐(0) 编辑
摘要:dp(i)表示前i个人最少坐多少辆车, dp(i) = min(dp(j) + 1, dp(i)) (0 using namespace std;const int maxn = 2509;int sum[maxn], dp[maxn], N, M;bool ok(int i, int j) { r... 阅读全文
posted @ 2015-08-10 13:13 JSZX11556 阅读(274) 评论(0) 推荐(0) 编辑
摘要:数据范围这么小..怎么乱搞都可以吧...先排序一遍然后O(n²) dp------------------------------------------------------------------#includeusing namespace std;const int maxn = 109;... 阅读全文
posted @ 2015-08-10 12:53 JSZX11556 阅读(281) 评论(0) 推荐(0) 编辑
摘要:枚举每头牛, 假设它在说谎, 建图判圈就行了...为啥水题都没人来写..------------------------------------------------------------------#includeusing namespace std;typedef pair pii;con... 阅读全文
posted @ 2015-08-10 12:35 JSZX11556 阅读(493) 评论(0) 推荐(0) 编辑
摘要:对于第一问, 简单的dp. f(i, j)表示以(i, j)为左上角的最大正方形, f(i, j) = min( f(i + 1, j), f(i, j + 1), f(i + 1, j + 1)) + 1 (假如(i, j)和右边和下边不冲突)第二问就是经典的悬线法解决最大子矩阵了, 维护悬线H[... 阅读全文
posted @ 2015-08-09 19:56 JSZX11556 阅读(313) 评论(0) 推荐(0) 编辑
摘要:最大子矩阵...悬线法..时间复杂度O(nm)悬线法就是记录一个H向上延伸的最大长度(悬线), L, R向左向右延伸的最大长度, 然后通过递推来得到.------------------------------------------------------------------#includeu... 阅读全文
posted @ 2015-08-09 15:37 JSZX11556 阅读(280) 评论(2) 推荐(0) 编辑
摘要:直接求逆序对就行了...时间复杂度O(nlogn)-------------------------------------------------------------------------#includeusing namespace std;#define idx(c) ((c) - 'A... 阅读全文
posted @ 2015-08-09 15:03 JSZX11556 阅读(330) 评论(0) 推荐(0) 编辑
摘要:处理出每个数下一个出现的位置, 然后按左端点排序回答询问、处理当前数去除的影响--------------------------------------------------------------------#includeusing namespace std;#define lowbit(... 阅读全文
posted @ 2015-08-09 11:33 JSZX11556 阅读(206) 评论(0) 推荐(0) 编辑
摘要:为什么我的后缀数组跑得这么慢...把字符串复制一遍放在最后, 然后跑sa, 扫一遍就行了...---------------------------------------------------------------------#includeusing namespace std;const ... 阅读全文
posted @ 2015-08-08 14:03 JSZX11556 阅读(227) 评论(0) 推荐(0) 编辑
摘要:二分答案m, 后缀数组求出height数组后分组来判断.------------------------------------------------------------#includeusing namespace std;const int maxn = 20009;struct HASH... 阅读全文
posted @ 2015-08-08 10:59 JSZX11556 阅读(195) 评论(0) 推荐(0) 编辑
摘要:子树操作, dfs序即可.然后计算using namespace std;#define M(l, r) (((l) + (r)) >> 1)const int maxn = 200009;typedef long long ll;inline ll readll() { char c = getc... 阅读全文
posted @ 2015-08-07 21:48 JSZX11556 阅读(345) 评论(0) 推荐(0) 编辑
摘要:离线, 询问排序.先处理出1~i的答案, 这样可以回答左端点为1的询问.完成后就用seq(1)将1到它下一次出现的位置前更新. 不断这样转移就OK了--------------------------------------------------------------------#include... 阅读全文
posted @ 2015-08-06 15:20 JSZX11556 阅读(248) 评论(0) 推荐(0) 编辑
摘要:8.2早上第一个到学校...学校把我们的宿舍安排到了西校区..十分钟路程...感人肺腑下午在SGU看了几道题然后就回宿舍收拾行李了...晚上颓废然后滚回宿舍了8.3早上做了一场比赛, T1写了个贪心结果就70分...T2写完发现理解错题意了...然后就弃疗了, T3没什么思路...中午被学校告知要搬... 阅读全文
posted @ 2015-08-02 22:02 JSZX11556 阅读(332) 评论(2) 推荐(0) 编辑
摘要:水题...忘了取模就没1A了....---------------------------------------------------------------------------#includeusing namespace std;const int MOD = 5000011;const... 阅读全文
posted @ 2015-08-01 21:57 JSZX11556 阅读(284) 评论(0) 推荐(0) 编辑
摘要:速度居然#2...目测是因为我没用long long..求∑ lcm(i, j) (1 using namespace std;typedef long long ll;const int maxn = 10000009;const int MOD = 100000009;bool check[m... 阅读全文
posted @ 2015-08-01 18:50 JSZX11556 阅读(248) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示