2014年8月12日
摘要: 思路:首先红色肯定要放在最后面。前面蓝色和绿色dp求解。dp[i][j] 表示前面(i+j) 个 有 i 个蓝色塔 j个绿色塔 能造成最大伤害。//============================================================================... 阅读全文
posted @ 2014-08-12 18:47 L_Ecry 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 思路:无源汇有上下界可行流判定, 原来每条边转化成 下界为D 上界为 D+B ,判断是否存在可行流即可。为什么呢? 如果存在可行流 那么说明对于任意的 S 集合流出的肯定等于 流入的, 流出的计算的 X 肯定小于等于这个流量(X是下界之和), 计算出来的Y (上界之和)肯定大于等于 这个流量 肯定... 阅读全文
posted @ 2014-08-12 18:15 L_Ecry 阅读(390) 评论(0) 推荐(0) 编辑
  2014年8月8日
摘要: 题意:有n个瓶子每个瓶子有 f【i】 支相同的颜色的花(不同瓶子颜色不同,相同瓶子花视为相同) 问要取出s支花有多少种不同方案。思路: 如果每个瓶子的花有无穷多。那么这个问题可以转化为 s支花分到n个瓶子有多少种方案 用隔板法就能解决 C(s+n-1,n-1) 。有限制之后我们可以 用 没限制的去减... 阅读全文
posted @ 2014-08-08 10:21 L_Ecry 阅读(399) 评论(0) 推荐(0) 编辑
  2014年8月6日
摘要: 题意:求所有自己的最小公倍数的和。 该集合是 2^ai * 3^bi思路:线段树。 线段树中存的是 【3^b * f(b)】 f(b)表示 因子3 的最小公倍数3的部分 为 3^b的个数 那么从小到大枚举a 对于当前的 ab , 如果之前的b小于当前的b 那么最小公倍数就为 (2^a) * (3^... 阅读全文
posted @ 2014-08-06 19:07 L_Ecry 阅读(513) 评论(0) 推荐(0) 编辑
  2014年8月3日
摘要: 题意:有一些无向边m条权值是给定的k条权值在[l,r]区间可以由你来定,一个点s1 出发一个从s2出发 问s1 出发的能不能先打到f思路:最短路。首先检测能不能赢 在更新的时候 如果对于一条边 a->b 如果dis1[a] #include#include#include#include #incl... 阅读全文
posted @ 2014-08-03 23:27 L_Ecry 阅读(417) 评论(0) 推荐(0) 编辑
摘要: 一共4种操作其中用线段树 区间合并,来维护连续空的长度,和找出那个位置。其他用vector维护即可#include#include#include#include#include #include#define lson ie;int lsum[N*4],rsum[N*4],msum[N*4];in... 阅读全文
posted @ 2014-08-03 21:15 L_Ecry 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一个环形字符串,让他把它分成k份,使得最大的字典序 最小。思路:二分答案,首先很明显答案所有可能是 n*n种 排序可以先求出最长公共前缀,这样比较就只需要比较公共前缀的下一位就能比较出两种答案的字典序大小,这里公共前缀我用 (2*n)*(2*n) DP 求出 。(也可用后缀数组)。接下来就... 阅读全文
posted @ 2014-08-03 14:58 L_Ecry 阅读(349) 评论(0) 推荐(0) 编辑
  2014年8月2日
摘要: 题意:给定一个字符串,求有多少个奇数子串和多少偶数子串为 “回文串” 这边回文串很特殊之含有 ab 两种字母 而且 相邻的字母相同则消去一个 一直到不存在相邻的相同。思路: 在这种串中 ,消到最后 一定是 abababababa。。。 或者 bababababab。。。 那么 只要头尾一样 那么这个... 阅读全文
posted @ 2014-08-02 20:04 L_Ecry 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题目:下列操作Change operations:0 a b change all characters into '0's in [a , b]1 a b change all characters into '1's in [a , b]2 a b change all '0's into... 阅读全文
posted @ 2014-08-02 12:32 L_Ecry 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 题意:U A B: 把第A个数变成BQ A B: 输出【A,B】最长连续上升子序列(注意是连续 相当于子串)思路:单点更新 ,区间合并几下左边开头最小 和右边结束最大的两个数即可。#include#include#include#include#include #define lson (iy?x:... 阅读全文
posted @ 2014-08-02 12:28 L_Ecry 阅读(181) 评论(0) 推荐(0) 编辑