自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 Codeforces Beta Round #3 D. Least Cost Bracket Sequence 贪心 优先队列

这题和 Codeforces Round #398 (Div.2) E. Change-free 几乎是同一题啊。 题目传送门 题解传送门 题意:给定一个带有若干问号的左右括号序列,其中第i个问号可以以ai代价改成左括号,也可以以bi代价改成右括号。求一个代价最小的修改问号为左或右括号的方案,输出最终代价以及修改后的合法括号序列。不能修改成合法方案输出-1。 解法:同上面的找钱问题,这

2017-02-21 16:40:09 357

原创 Codeforces Round #398 (Div. 2) E. Change-free 贪心 优先队列

题意:你有无数的面值为100的纸钞和m个硬币。收银员有无数的纸钞和硬币,但是他不爱找钱。收银员在第i天有愤怒值wi,若收银员找纸钞和硬币的总个数为x,则这一天他的愤怒程度为x*wi,给定你每天要花钱的数目,以及起始时手里的硬币,要求输出n天来收银员的最小总愤怒程度以及每天给收银员纸币与硬币的个数。 解法:分析下样例并且稍加思考可以发现,多给纸钞是无意义的,所以每天的状态无非就是: 1.把硬币给

2017-02-21 16:18:51 321

原创 AtCoder Regular Contest 069 D - Menagerie 枚举起点 递推

题意:一堆不明身份的动物排成一圈,身份可能是羊或狼,羊一定说实话,狼一定说假话。大家各自报自己的两边是同类还是不同类,问能否有一种满足每个人发言的方式。 解法:已知i-1和i-2可以推i,所以枚举起点羊羊、羊狼、狼羊、狼狼四种可能,最后拿第0个以及第n-1个判断是否合法就行。 代码写得比较暴力。。。 #include int n; char s[100001],r[100001]; boo

2017-02-20 01:37:00 515

原创 Codeforces Canada Cup 2016 F. Family Photos 博弈 策略分析 好题

题意:A和B博弈。有n个桶,每个桶里有两颗球,只能先拿走上面的球,再拿走下面的球,每颗球价值ai与bi,ai表示A拿走该球时获得的钱,bi表示B拿走该球时获得的钱。 游戏目的:A和B均想使比赛结束时自己的钱比对方的钱多尽量多。 每轮中,玩家可以选择拿球,或者不拿球,当一次轮换后A、B均选择不拿球,游戏结束。 输出双方都用最优策略时,游戏结束后A与B的钱差值。 解法: 其实,两人要么一直不

2017-02-19 17:20:09 361

原创 Codeforces Round #238 (Div. 1) D. Hill Climbing 单调栈 LCA

解法:根据题意用单调栈维护可以看见的最右边的山峰,连边建树,对于每次询问,其实就是找两个节点的LCA,这个可以用tarjan一次性处理完。 #include #include #include #include using namespace std; #define fst first #define snd second const int maxn=100005; typedef

2017-02-18 01:04:10 342

原创 BGSHOOT - Shoot and kill 离散化 树状数组或前缀和 ST表 模板题

先对出现的时间点离散化。 树状数组维护前缀和,表示n种动物的出没。 ST查询区间最值。 wa了很多次,其实离散化的时候把x、y、l、r全都加进去,会省很多事。 #include #include #include using namespace std; typedef unsigned int uii; const int maxn=100005; int n,q,l[maxn],

2017-02-15 11:48:27 334

原创 Codeforces Round #394 (Div. 2) E. Dasha and Puzzle 构造 坐标离散化

题意:给一颗树,问是否能够放到网格图里,保证只有横边和竖边,且边与边不相交。 解法: 开脑洞,先想能不能找到这样的树,树应该至少满足一个要求: 1.根节点能有4个儿子,非根节点最多只有3个儿子。 满足要求1,理论上就一定能找到这样的树,即可以另深度为d的边比深度为d+1的边长很多很多,这样使得各个方向的子图离的尽量远,不管子树的图形再怎么乱,子树和子树之间也不会碰在一起。 满足这

2017-02-11 23:00:31 309

原创 AtCoder Grant Contest 10 F - Tree Game 博弈 dfs

题意:给定一棵树,每个节点有个权值,Alice和Bob轮流进行操作。 给定游戏起点指针指向节点C。不断进行下述操作。 1.将当前节点权值-1,然后将指针从该节点移动到相邻节点。 出现一方不能移动(即指针指向的节点权值为0)即为输。 解法: 设sg[i]表示第i个节点是必胜态还是必败态,1为必胜,0为必败。 需要发现两个重要的性质: 1.先手只会往权值严格小于当前节点的地方走。

2017-02-10 15:29:49 549

原创 AtCoder Grant Contest 010 C - Cleaning dfs+逻辑+dp思想

题意:给定一个树,每个节点的权值为Ai,每次可以挑选两个叶子节点,将两个叶子节点之间路径上的权值-1。问最后能不能使得整棵树的权值为0。 解法:验证解的存在性,就去试着找出一组可行解。这题从最末端的情况开始想就可以很容易想出dp。 随便找个非叶子节点,将其作为整棵树的根,现在对这个有根树进行分析。 首先可以将路径进行归类,对于一个非叶子节点A,经过其的路径可以分为两种情况: 1.经

2017-02-10 15:09:02 509

原创 AtCoder Grand Contest 010 B - Boxes 验证解的存在性

题意:给定N个围成一圈的数,重复进行下述操作: 挑选第i个数,从i+1转一圈回到i,依次减去1到N。 问是否存在一种操作使得最后整圈的数全为0。 解法: 将该过程倒着来看,就是每轮选择第i个数,从i+1转一圈回到i,依次加上1到N,将该操作设为操作1。问最后能否加到给定数列。 另d[i]=a[i]-a[i-1],即考虑前数与后数之间的差,会发现,每次进行操作1时,差分的改变要么+

2017-02-10 14:38:04 340

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除