自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest A Toda2 贪心

/* 题目描述:给出n个人的分数,每轮选出2~5个人,把他们的分数减1,现要求把所有人的分数全部变成t,要求t最大, 输出每一轮选人的策略。 思路:注意两个性质: 1、每轮选2个或3个人,因为如果有一轮选了4个人,可以分成两轮每轮选两个人;如果有一轮选了5个人,可

2016-10-30 21:19:40 521

原创 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest J Bottle动态规划

/* 题目描述:给定n个瓶子,每个瓶子里装一些水,瓶子i的容量是b[i],已经装了的水的量是a[i],现在选择尽量少的 瓶子,把所有水都倒到这几个瓶子里,保证所用瓶子数最少的条件下,要求倒的水的量尽量少,问最少 需要的瓶子数和对应的最小的倒水的量。 思路:dp[i][j][s]表示在前i个瓶子里,

2016-10-28 16:26:44 524

原创 hdu5724 Chess 博弈 + 状态压缩

/* 题目描述:给定一个n*20的棋盘,每一行的某些指定位置放一些棋子,棋子可以向右移动到其右边的第一个没放棋子的地方, 现两人轮流移动棋子,若某人的回合发现没有可以移动的棋子就输了,先给定n和每一行的棋子分布情况,并假设 两人足够聪明,问先手胜还是后手胜。 思路:每一行的情况可以看成是一

2016-10-26 13:01:37 285

原创 hdu5754 Life Winner Bo 博弈

题目描述:棋盘上位于(1,1)处有一枚棋子,这枚棋子可能是国际象棋中王、车、马、后当中的一种,两个人依次移动                    棋子,率先到达(n,m)点的人就算赢,注意,棋子只能向右、向下、向右下移动,现给出棋子的种类,以及                    n和m的值,先手必胜则输出B,先手必败输出G,先手既非必胜又非必败(即没人走到(n,m))则输出D

2016-10-26 10:29:04 277

原创 POJ2484 A Funny Game

/* 题目描述:给一圈1,2,3,......首尾相接的硬币,Alice和Bob两个人轮流取,每次每个人最少取一个硬币,最多取两个硬币, 取两个硬币的话要求是相邻的两个硬币,最后谁无法再取硬币就算输给出硬币总数n,问是先手赢还是后手赢。 注意,假如起始时有4个硬币,取走2号硬币后,1、3硬币并不相邻。

2016-10-25 18:55:59 266

原创 codeforces 707D Persistent Bookcase 离线+深搜

/* 题意:给定一个n行m列的书架,每次有4种操作,1 x y 是如果(x, y)位置没有书,就在这个位置放一本书, 2 x y是如果(x , y)有书,就把这个位置的书拿走, 3 y 是把第y行空的位置放上书,有书的位置把书 拿走,4 k是回到第k次操作之后的状态,每个操作过后将书架上的书的总数输出 方法:采用离线处理,首先建图,对于第i次操

2016-10-21 16:11:34 318

原创 hdu5821 Ball 贪心

/* 题意:给定一个n个数的a序列,a[i]表示初始i位置的球的颜色是a[i],再给定一个b序列,b[i]表示希望最终i位置变成 b[i]颜色的球,现按照顺序给出m组(l , r),每次可以将(l , r)范围内的球任意改变顺序,问能不能从a变到b? 思路:首先排除a、b中的球存在不一样的情况; 对于a中的两个

2016-10-21 00:49:03 331

原创 hdu5723 Abandoned country 最小生成树 + dfs

题意:给定一张带权的无向图,先建立最小生成树,问在最小生成树中,任选两点的距离最小值的数学期望是多少?思路:首先建立最小生成树,建好图,数学期望E = Σ 1/(n * (n - 1) / 2) * i和j之间的最小距离 = 1/(n * (n - 1) / 2) * Σe.to的子树中节点数*(cnt - e.to的子树中节点数 )*e.w (其中e是生成树的树边),其中每个点的子树

2016-10-18 20:42:29 246

原创 codeforces round #364 div2 D As Fast As Possible 二分+贪心

/* 题目描述:有n个孩子,他们到终点的距离是l,他们步行的速度是v1;有一辆公交车,速度是v2,每次可以带k个孩子, 初始时公交车和孩子们都在起点,现要求调整公交车的行程,使得所有孩子被送到终点时的时间最短。 思路:问题的关键在于每一次公交车开往终点时,在哪里把运载的孩子放下然后返回。 使用二分法,每次二分出一

2016-10-15 15:34:38 296

原创 codeforces round#347 div2 C International Olympiad 想法题

题目描述:给出一个从1989年开始的年份,每个年份用末尾的最少的数字来代表,如用9来代表1989,0来代表1990,                ...用99来代表1999而不是用9来代表1999,因为9已经用在代表1989的时候了。现在对于一个不超过九位数的                年份,输出其代表数。思路:如图,观察发现,所有一位数能代表的年份是连续的,所有两位数能代表的年

2016-10-12 20:21:17 232

原创 codeforces round #347 div2 B rebus 贪心 + 二分

/* 题目描述:给定一个形式如? + ? - ? + ? + ? = n的字符串,在每个?的位置填入1——n中的某一个数,使这个等式成立, 问这样的等式是否存在,如果存在,输出将?替换成具体数字后的字符串 思路:假设一共加了add个数,减掉了minus个数,那么这个算式能组合出的数的范围就是[ max(0 , add - n * minus) , add

2016-10-12 10:38:34 330 1

原创 codeforces round#353 trians and statistic dp+贪心+线段树

题目描述:有n个车站,第i(1                    sum = Σp(i , j) (1 思路:在车站i处,可以用一张车票到达[i + 1 , a[i]]中的一站,那么,应选择m车站再买一张车票,其中m∈[i + 1 , a[i] ]且a[m]最大,为什么是这样呢?如图: 设m'是不同于m的一个车站,a[m'] 线段( i  , a[m'] ]部分通过两种

2016-10-11 21:53:18 419

原创 codeforces round353 tree construction

/* 题目描述:按照数列a给定的顺序a[1],a[2],......,a[n]建立一棵二叉搜索树,然后对所有i(i > 1)输出值为a[i]节点的父节点的值 思路:想象有一个初始全为0的数组b,每输入一个a[i],就把b[a[i]]标记为其输入顺序i,即令b[a[i]] = i , 通过观察发现,从 位置a[i]开始,在数组b中向左找到一个位置l使得b[

2016-10-10 22:33:31 314

原创 codeforces round353 money transfer 前缀和+贪心

/* 题目描述:给定一个数列,每次可以把某个数a[i]的值转移到相邻位置i-1或i+1,其中位置1和位置n相邻,问最少移动多少次 可以使数列中所有的数都变为0 分析:对于一个含有k个数且k个数和为0的区间,只需要k-1次移动就可以把这个区间内的所有数变成0;因此,将n个数的数列 划分出的和为0的区间的个数

2016-10-07 21:40:30 313

原创 codeforces Destroying Array 线段树维护区间

/* 题目描述:给出n个数的序列a[1] , a[2] , ... ,a[n] ,每次将其中的一个数破坏掉,每一次破坏掉以后问连续数 的最大值是多少 方法:利用线段树维护,线段树的每一个节点(l , r , x)包含4个信息:(l , r)中的总和,(l , r)中的最大值,(l , r)中最大前缀, (

2016-10-02 20:24:45 277

原创 codeforces 126B password KMP

/* 题目描述:给出一个字符串s,从s中找一个子串s0,使得s0是满足既是s前缀、又是s后缀,还是s的一个非前缀非后缀的 子串这三个条件的长度最长的串 思路:利用KMP,找出能匹配s前缀的最长的一段长度,其长度为ans1,注意这段匹配的结尾不能是s的最后一个字符, 否则这段匹配就成了s的一个后缀;然后再找出能匹

2016-10-02 17:09:08 452

原创 hdu2203 亲和串

/* 题目描述:给出两个字符串s1 、 s2 , 问s1经过循环之后(如AABCD经过循环可以变成ABCDA,BCDAA,CDAAB,DAABC), 能否使s2包含在s1之中? 思路:如果s2的长度大于s1的长度,直接输出no,否则将两个s1拼起来,比如AABCD拼成AABCDAABCD,那么循环能 形成的全部字符串都包含在了拼接后的

2016-10-02 11:15:02 305

空空如也

空空如也

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

TA关注的人

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