自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

A Cube Master

一个Cuber的ACM历程

  • 博客(17)
  • 收藏
  • 关注

原创 Codeforces Problem - 13E Holes

Holes        n个洞1~n,每个洞有一个power,a1~an。把球扔到第i个洞,它会蹦到第i+ai个洞去(一直往后蹦,直到n以外)。有m次操作,分为两种,0是询问把求扔到某个洞,最后能到达哪个洞以及会蹦多少次,1是修改某个洞的power。        这是在CF上一篇讲数据结构的博客上看到的题,学到了一个新的姿势。。方法是分块维护,每块的大小是sqrt(n)。对

2015-01-25 12:56:23 695

原创 Codeforces Round #287 (Div. 2) E

E. Breaking Good        题意:一个无向图,边长度都是1,有些边是失效的。现在需要找一条从1到n的最短路径,路径上失效的边需要修改为有效的,非路径边如果有效要修改为失效的。输出需要修改的边,使得修改量最少。        思路:问题很容易转化为求最短路,路径上的有效边尽可能多。方法是先SPFA求每个点到点1的距离,然后再次SPFA计算点1到每个点的最短路径

2015-01-25 01:03:17 668

原创 Codeforces Round #287 (Div. 2) C

507C - Guess Your Way Out!        题意:遍历一棵满二叉树,遍历方法是左右左右递归地遍历。树高度为h,最下层第n个节点是出口,问访问到出口前要访问多少个节点。        思路:按题目要求的顺序去递归遍历,判断出口在以当前节点为根的左子树还是右子树中,如果是在后访问的子树中,直接加上2^h,因为根加上另一颗子树刚好有2^h个节点,再往下递归。

2015-01-24 18:45:24 578

原创 Codeforces Round #286 (Div. 1) A

A. Mr. Kitayuta, the Treasure Hunter        题意:30001个点,下标为0~30000,有些点有宝藏。你从0往下标大的方向跳,第一步跳的距离为d。如果上一步跳的距离为l,这一步就可以跳l-1或l或l+1(距离必须大于0)。问最多拿到多少宝藏。        思路:dp。dp(i,j)表示当前位置i,上一步距离j能拿到的最大宝藏。但是j

2015-01-19 11:47:35 663

原创 Facebook Hacker Cup 2015 Round 1 解题报告

Homework        求一个区间[A,B]中素因数个数为K的数有多少个。做法是dp。对每个数i,找到它的某一个素因数d,i的结果就由i/d推得。找的方法是修改筛法。#include #include #include #include #include #include #include #include #include using namespace

2015-01-19 09:30:34 1368 1

原创 Codeforces Round #285 (Div. 1) B

B. Misha and Permutations Summation        题意:有两个0~n-1的排列p和q,设p是第x小的排列,q是第y小的排列,求0~n-1的全排列中第(x+y)mod(n!)小的排列。        思路:很容易想到康托展开。。但是n太大了,无法真正康托展开。所以用树状数组统计p和q中每个数后面有多少个比它小的数,然后求和,进位(最后一位满1进

2015-01-14 16:53:24 604

原创 Codeforces Round #257 (Div. 2) D

D. Jzzhu and Cities        题意:n个城市,首都在城市1,城市之间有n条公路和k条铁路(铁路一端必为首都)连接。问最多能够撤掉多少条铁路,使得首都到所有城市的最短路不增加。        思路:这个题我用了各种方法,比如先用公路求最短路,然后贪心加入铁路,不是WA就是TLE。。然后看了别人的题解,方法是跑一遍最短路(优先选择公路),记录每个点的前驱边,

2015-01-14 14:12:15 580

原创 Codeforces Round #285 (Div. 2) C

C. Misha and Forest        题意:一个无环的无向图,知道每个点连的边数和相邻点的异或和,求所有的边。        思路:模拟。弄一个队列维护叶子(度为1的点),删叶子维护异或和,新的叶子入队。#include #include #include #include #include #include #include #inc

2015-01-12 20:34:52 491

原创 Codeforces Round #267 (Div. 2) D

D. Fedor and Essay        题意:一篇文章由m个单词组成,你需要重写这篇文章。有n组同义词(x,y),x能用y代替,反过来不行。重写文章使得文章中含有最少的'r',且总字符数尽量少。        思路:先把所有大写字母转换成小写,然后用map把每个不同的单词转化成一个整型,建图,再用tarjan强连通缩点(因为可能有环)。。然后在缩点后的新图中dfs求解(

2015-01-11 23:03:08 651

原创 Codeforces Round #256 (Div. 2) C

C. Painting Fence        分治。每次有两种决策,要么全部竖着刷,要么横着刷刷满最低的栅栏(因为如果不刷满,还不如竖着刷)。如果横着刷,整个栅栏可能被切为若干部分,继续对每一部分这样求解。#include #include #include #include #include using namespace std;const i

2015-01-07 20:52:00 631

转载 一些存档。。。

#include #include #include #include #include #include #include #include #include #include using namespace std; const int NUM=7;//0~7的阶乘 int factory[NUM]={0,1,2,6,24

2015-01-06 20:32:43 647

原创 Codeforces Round #276 (Div. 1) B

B. Maximum Value        题意:给n(至多200000)个数a1~an,数的范围是1~1000000,找出最大的aimodaj,要求ai>=aj。        思路:对1~1000001中的每个数,找出比它小且最接近它的ai。然后枚举每个不同的aj,对每个数枚举它在1000000内的倍数,答案就可能出现在比这个倍数小的最大的ai上。#incl

2015-01-06 14:58:19 545

原创 Codeforces Round #278 (Div. 1) B

B. Strip        题意:n个数,需要把他们切割成尽量少的部分,每部分连续,长度至少为l,其中最大数与最小数的差不能超过s。        思路:首先,预处理每个区间内的最大数和最小数(spare table),然后就可以用dp的方法解决这个问题。dp的时候,利用预处理,对每个位置i找到以i为结尾,最左边能在哪个地方切割(二分查找,位置记为j),所以以i

2015-01-04 17:17:08 500

原创 poj 2823 Sliding Window

题意:n个数,求每连续k个数中的最大最小值。        思路:单调队列模板题。。以最大数为例,开一个队列,每个数按顺序入队,需要保证队列单调递减,如果入队时前面比当前的数大,就让前面的出队。如果队首到队尾的元素位置差超过k,就让队首出队。        为什么可以这样做呢,因为“窗口”的大小是k,晚来的一定晚走,如果晚来的比先来的大,那么先来的就没有存在的意义了;如果晚来的比先来的小,

2015-01-04 14:09:11 447

原创 hdu 5154 Harry and Magical Computer

题意:问拓扑排序是否能成功排序。        思路:dfs。使用两种节点标记,1表示开始进行排序,2表示已经排序完成。如果搜到了标记为1的点,说明失败。#include #include #include #include #include #include #include #include #include #include using namespace std

2015-01-03 22:52:22 568

原创 hdu 5155 Harry And Magic Box

题意:一个n*m的网格,每行每列都有珠宝。问有多少种不同的珠宝摆放方式能满足要求。        思路:dp。dp(i,j)表示n=i,m=j时的答案。因为n和m等价,可以设i>=j。显然,当j=1时,dp(i,j)=1,然后根据dp(i,j)可以推出dp(i,j+1)。比如你现在要计算dp(i,j),并且珠宝的放置时一列一列放的,你现在已经放好了前j-1列,需要摆放最后一列,前面的每一列肯定

2015-01-03 22:42:14 616

原创 Codeforces Round #284 (Div. 1) B

B. Name That Tune        题意:在T秒时间内按顺序听n首歌,辨认歌名。每一秒有一次辨认的机会,如果第i首歌上一秒没认出来,这一秒认出来的概率为pi。对于第i首歌,连续听ti秒时一定能认出来。求T秒总共辨认出歌名数的期望。        思路:概率dp。dp(i,j)表示已经辨认出i首歌,且第i首在第j秒辨认出来。朴素的状态转移需要O(n*T)会超时。。所以我

2015-01-02 14:23:00 610

空空如也

空空如也

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

TA关注的人

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