上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 25 下一页

bzoj 3037 贪心

摘要: 我们可以贪心的分析,每个点的入度如果是0,那么这个点不可能被用来更新答案,那么我们每次找入度为0的点,将他去掉,如果他连的点没有被更新过答案,那么更新答案,去掉该点,环的时候最后处理就行了/**************************************************************Problem: 3037User: BLADEVILLanguage: PascalResult: AcceptedTime:1672 msMemory:12920 kb********************************************************* 阅读全文
posted @ 2013-12-29 01:16 BLADEVIL 阅读(358) 评论(1) 推荐(1) 编辑

bzoj 2599 数分治 点剖分

摘要: 具体可以见漆子超的论文/**************************************************************Problem: 2599User: BLADEVILLanguage: PascalResult: AcceptedTime:16052 msMemory:16928 kb****************************************************************///By BLADEVILvarn, m :longint;pre, other, len :array[0..400010] of longint 阅读全文
posted @ 2013-12-29 00:35 BLADEVIL 阅读(233) 评论(0) 推荐(0) 编辑

bzoj 2743 树状数组离线查询

摘要: 我们按照询问的右端点排序,然后对于每一个位置,记录同颜色上一个出现的位置,每次将上上位置出现的+1,上次出现的-1,然后用树状数组维护就好了/**************************************************************Problem: 2743User: BLADEVILLanguage: PascalResult: AcceptedTime:11072 msMemory:70540 kb****************************************************************///By BLADEVILva 阅读全文
posted @ 2013-12-29 00:33 BLADEVIL 阅读(259) 评论(0) 推荐(0) 编辑

bzoj 2141 线段树套平衡树

摘要: 用树套树来解决这个问题,存储每个节点的数值是多少,然后交换对于答案的变更可以讨论下,假设交换的是x,y位置的数xb_size[b_right[t]] thenright_rotate(t) elseif b_size[b_right[b_left[t]]]>b_size[b_right[t]] thenbeginleft_rotate(b_left[t]);right_rotate(t);end else exit; end elsebeginif b_size[b_right[b_right[t]]]>b_size[b_left[t]] thenleft_rotate(t) el 阅读全文
posted @ 2013-12-27 17:33 BLADEVIL 阅读(619) 评论(0) 推荐(0) 编辑

bzoj 3171 费用流

摘要: 每个格拆成两个点,出点连能到的点的入点,如果是箭头指向方向费用就是0,要不就是1,源点连所有出点,所有入点连汇点,然后费用流/**************************************************************Problem: 3171User: BLADEVILLanguage: PascalResult: AcceptedTime:32 msMemory:1180 kb****************************************************************///By BLADEVILvarn, m :longi 阅读全文
posted @ 2013-12-26 19:55 BLADEVIL 阅读(209) 评论(0) 推荐(0) 编辑

bzoj 2751 快速幂

摘要: 首先我们知道,对于所有种情况,我们可以将每一位可以放的数的值加起来,所有位置的乘起来,等于的就是最后的答案,具体为什么正确,可以根据乘法分配律来想一想。那么对于所有不做要求的,快速幂直接算就行了,然后快排下,就知道每个位置不放那些值,减掉后乘进去就行了。/************************************************************** Problem: 2751 User: BLADEVIL Language: Pascal Result: Accepted Time:344 ms Memory:1008 kb**... 阅读全文
posted @ 2013-12-25 21:05 BLADEVIL 阅读(299) 评论(0) 推荐(0) 编辑

bzoj 2956 数学展开,分段处理

摘要: 首先对于答案ΣΣ(n mod i)*(m mod j) ij也就是Σ(n mod i)Σ(m mod j)-Σ(n mod i)(m mod i)将mod展开,我们可以得到有floor的式子,对于这种式子,我们可以利用分段的思想,将O(N)的简化为sqrt(n)的/************************************************************** Problem: 2956 User: BLADEVIL Language: Pascal Result: Accepted Time:388 ms Memory:224 ... 阅读全文
posted @ 2013-12-25 21:02 BLADEVIL 阅读(298) 评论(0) 推荐(0) 编辑

bzoj 2186 [Sdoi2008]沙拉公主的困惑

摘要: 我们根据欧几里得定理可以知道(a,b)=(b,a mod b)也可以得到(a+b,b)=(b,(a+b) mod b)=(b,a)=(a,b)直观点说就是两个数a,b的gcd,和a+b,b的gcd是相等的那么我们可以知道phi(m!)也就是与1-m!中与m!互质的数,那么对于每个互质的数,我们加上m!,就可以得到一个新的和m!互质的数,所以对于每个1-m!与m!互质的数n!范围内一共可以得到n!/m!组解,那么一共也就是phi(m!)*(n!/m!)可以将phi(m!)用公式展开化简,在此不再赘述/************************************************ 阅读全文
posted @ 2013-12-25 11:39 BLADEVIL 阅读(952) 评论(0) 推荐(0) 编辑

bzoj 1059 二分图匹配

摘要: 我们知道,对于每一行来说,交换行,是不改变这行的状态的,交换列只是改变颜色的顺序,对于颜色的个数也没有改变,列也同样存在这一性质那么最后我们要求的是主对角线上都是黑色,也就是每行选一个黑色的,且任意两行选的黑色的不在同一列,我们构造一张二分图,图的一边是行,另一边是列,所以对于每个黑点连边,二分图匹配即可//By BLADEVILvar t :longint; i :longint; pre, other :... 阅读全文
posted @ 2013-12-25 10:02 BLADEVIL 阅读(326) 评论(0) 推荐(0) 编辑

bzoj 1042 DP+容斥原理

摘要: 我们可以先DP预处理出W[I]代表买I的东西,每种钞票的个数不做限制的方案数,那么对于每一组数据的限制,我们可以知道W[S-C[I]*(D[I]+1)]C为面值,D为数量,这个代表第I种钞票一定超了的方案数,那么假设我们用二进制来表示对于四种钞票的限制情况0000表示都不限制,1000代表第一种必须用超,其余没有限制我们要求的是都限制的请款那么根据容斥原理,我们可以知道答案是都不限制的-有奇数个1的情况+偶数个1的情况dfs处理16种情况就好了/**************************************************************Problem: 1042 阅读全文
posted @ 2013-12-25 09:24 BLADEVIL 阅读(660) 评论(0) 推荐(0) 编辑
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 25 下一页