题目链接:http://codeforces.com/problemset/problem/459/B 题目意思:有 n 朵 flowers,每朵flower有相应的 beauty,求出最大的beauty 差 和 要达到这个最大的差 的取法有多少种. 一下子wa,是因为没考虑到整个序列都是相同的beauty 时的情况,以为取法是一种= =.注意,beauty 差为0都是合法的.还有注意这句话:Two ways are considered different if and only if the…
题目链接:http://codeforces.com/problemset/problem/459/A 题目意思:给出两个点的坐标你,问能否判断是一个正方形,能则输出剩下两点的坐标,不能就输出 -1. 这题更傻了,在考虑对角线的两点时,少考虑了一种情况:两个点分属不同象限:这时需要用到绝对值函数 abs ! 最近集训不知道是不是搞傻左,反正CF的题目打了几场,结果都很惨,有一点点恐惧感,怕跌回以前不堪的rating.唉---继续努力吧!!! #include <iostream> #inclu…
题目链接:http://codeforces.com/problemset/problem/459/C 题目意思:有 n 个 students,k 辆 buses.问是否能对 n 个students安排每一天搭乘的buses,使得没有两个student 在 d 天搭乘相同的buses,buses 的 容量没有限制,也就是它可以搭无限多的人. 做这条题的时候,我是得不出无解的条件的,看了 tutorial 之后一下子明白了,就是 k^d > n.很容易理解,因为每一天某个student可以选择的…
题目链接:http://codeforces.com/problemset/problem/474/D 题目意思:Marmot 吃两种类型的花(实在难以置信呀--):red 或者 white,如果要吃到white这种花,就需要吃连续 k 朵 white:而如果吃 red,就没有这种限制.给定区间[a, b],问总共的吃法有多少种. dp 题!状态转移方程不难得到.设 dp[i] 表示 长度为 i 时 的吃法种数. dp[i] = dp[i-1] + dp[i-k] 对于当前 i,或者是从第 i-…
题目链接:http://codeforces.com/problemset/problem/322/B 题目意思:给定红花.绿花和蓝花的朵数,问组成四种花束(3朵红花,3朵绿花,3朵蓝花,1朵红花+1朵绿花+1朵蓝花)的总数最大为多少. 一开始以为是水题,其实很多情况都没有考虑到,反反复复修改终于过了. 其实要考虑两种情况,这两种情况较好的那种就是最优解.姑且把四种花束分为两种类型:清一色型(3朵红,3朵绿,3朵蓝)和混杂型(红绿蓝各一朵). 第一种情况就是,保证清一色型最多(3种花都要除以3)…
题目链接:http://codeforces.com/problemset/problem/331/C1 这是第一次参加codeforces比赛(ABBYY Cup 3.0 - Finals (online version))成功AC的题目(n ≤ 106),解题的突破口是:Take the magic number, subtract a digit from it (the digit must occur in the number) and get a new magic number.…
题目链接:http://codeforces.com/problemset/problem/302/B 题目意思:给出两个整数n和m,接下来n行给出n首歌分别的奏唱时间和听的次数,紧跟着给出m个时刻,需要对每个时刻输出该时刻正在弹奏哪一首歌曲. 解题关键是每个时刻v有着这样的规律vi < vi + 1 (i < m),即询问的时刻是递增的!因此可以先存储每一首歌的总占时间:c*v.接着对于第一个给定的时刻,可以从第一首歌开始统计,直到超过询问的时刻.由于递增,因此下一首歌不需要从头开始再算,只…
题目链接:http://codeforces.com/problemset/problem/433/C 题目意思:一本书有 n 页,每页的编号依次从 1 到 n 编排.如果从页 x 翻到页 y,那么|x-y|页都需要翻到(联系生活实际就很容易理解的了).接着有m pieces 的 information,第 i piece 的information 在第 a[i] 页.为了减少翻页的页数,允许把某一页的信息,完全搬到某一页上,这个操作只可以执行一次.问应该把哪一页的信息搬到某一页上,从而使得翻页…
题目链接:http://codeforces.com/contest/459/problem/E 题意:给出m条边n个点每条边都有权值问如果两边能够相连的条件是边权值是严格递增的话,最长能接几条边. 题解:先按照边权排序一下,然后再利用dp求最值. 显然可以设dp[i]表示以i点为结尾最长能连几条边,dp[v]=dp[u]+1,u表示指向v的那个点,还有一点要注意的. 可能会遇到边权值相同的情况,这时候就不能这么转移了,所以在处理dp是要先处理一下边权相同的几个点. for(int i = 0…
题目链接:http://codeforces.com/contest/459/problem/D 题意:给出数组a,定义f(l,r,x)为a[]的下标l到r之间,等于x的元素数.i和j符合f(1,i,a[i])>f(j,n,a[j]),而且要求i<j,求i和j的种类数. 题解:先预处理一下设map be[a[i]]表示f(1,i,a[i])的值,然后在倒着来设af[a[j]]表示f(j,n,a[j])的值. 然后再用线段树更新一下长度为af[a[j]]的值然后再在树上查询小于be[a[j-1]…
题目链接:http://codeforces.com/problemset/problem/459/C 题意:有n个人,k辆车,d天要求没有两个人在d天都坐在一起.输出坐的方法. 题解:这题很有意思,首先在这d天里每个人都有一个序列那就是每天坐哪辆车.然后为了满足题意只要他们 的序列都是独一无二的就行.也就是说k辆车,d天总共有k^d次方的坐法,所以最多能提供k^d个人.然后 就是怎么输出了,这有一个技巧,只要构成d位的k进制数就行.然后遍历1-n依次加1即可. #include <iostre…
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 解题方法 贪婪算法 日期 题目地址:https://leetcode.com/problems/can-place-flowers/description/ 题目描述 Suppose you have a long flowerbed in which some of the plots are planted and some are not. However, fl…
题目链接:http://codeforces.com/problemset/problem/556/B 题目意思:给出 n 个齿轮,每个齿轮有 n 个 teeth,逆时针排列,编号为0 ~ n-1.每按一次 button,每个齿轮都会有且仅有一个活动的tooth,对于偶数编号的齿轮,它下一个活动tooth是紧挨着当前tooth的逆时针方向的那个:而奇数编号的齿轮,下一个活动tooth是顺时针的那个.给出每个齿轮的活动tooth,问通过按下有限次的button,问能不能得到一个0,1,...,n-…
题目链接:http://codeforces.com/problemset/problem/510/B 题目意思:给出 n 行 m 列只有大写字母组成的字符串.问具有相同字母的能否组成一个环. 很容易知道要用到深搜.暴力搜索--- #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> using namespace std; + ; char g[maxn][m…
题目链接:http://codeforces.com/problemset/problem/505/A 题目意思:给出一个长度不大于10的小写英文字符串 s,问是否能通过在字符串的某个位置插入一个字母,使得新得到的字符串成为回文串. /**************************************(又到自我反省时刻) 做的时候,通过添加一个单位使得长度增加1,找出中点,检验前一半的位置,找出对称位置替换成对应的前一半位置的字符,然后原字符串剩下的部分追加到后面,再判断回文.但是由于…
题目链接:http://codeforces.com/problemset/problem/499/A 题目意思:有两种按钮:1.如果当前观看的时间是 t,player 可以自动处理下一分钟,姑且理解为跳到t+1:  2.直接跳过 x 分钟,如果player在第 t 分钟,则可以跳到 t+x 分钟.问恰好可以看完 n 部电影的最少观看时间.观看一部电影(假如为第 i 部,起始时间为 li, 结束时间为 ri)表示 li, li+1, li+2, ..., ri-1, ri 的时间都要覆盖到. 一…
104. Little shop of flowers time limit per test: 0.25 sec. memory limit per test: 4096 KB 问题: 你想要将你的花窗安排得最具美感.有F束花,每一束花都不一样,至少有F个按顺序排成一行的花瓶.花瓶从左到右,依次编号1-V.而花放置的位置是可以改变的,花依次编号1到F.花的序号有一个特征,即是序号决定了花束出现在花瓶里的顺序.例如,有两束花编号i和j,满足i<j,那么i所在的花瓶一定要在j所在花瓶的左边,即是i…
题目链接:http://codeforces.com/problemset/problem/374/A 题目意思:给出一个 n 行  m 列 的棋盘,要将放置在坐标点为(i, j)的 candy 移动到四个角落(1,1),(1,m),(n, 1),(n, m) 中的其中一个.假设当前在位置(x, y),规定每次移动遵循,(x+a, y+b) . (x+a, y-b). (x-a, y+b).(x-a, y-b).求最小的移动次数. 求出 (i, j) 到每个角落的距离diff_x, diff_y…
题目链接:http://codeforces.com/problemset/problem/471/B 题目意思:有 n 个 tasks,编号依次为 1 - n,每个 task 都有一定的难度值来评估.例如,第 i 个 task 的难度值为 hi.现在的任务是把 n 个 task 全部完成,难度值越小的task越先完成.有3个人,都希望自己完成所有task的输出序列是与众不同的,问是否存在至少3条完成所有task的不同序列,没有的话输出 “NO”,否则输出“YES”并输出3条不同的完成序列. 昨…
题目链接:http://codeforces.com/problemset/problem/373/B 题目意思:给出w,m和k,需要找出从m开始,可以有多少个连续的数(m+1,m+2,...)(在添加(m+i)这个数到序列时,需要付出s(m+i) * k的代价,i = 1,2,...)满足不超过总代价w的长度. 可以列一个这样的方程: 一位数的个数*1*k + 两位数的个数*2*k + 三位数的个数*2*k + ... + n位数的个数*n*k = w 化简后得到: 一位数的个数*1 + 两位…
题目链接:http://codeforces.com/problemset/problem/370/A 题目意思:根据rook(每次可以移动垂直或水平的任意步数(>=1)),bishop(每次可以移动对角线上的任意步数(>=1))和king(每次垂直.水平或对角线的一步(=1))的走法,给出起始位置和结束位置.求出这三种棋子分别从起始位置走到最终位置的最少步数. rook bishop king 首先,先解释下面所说的直线和斜线. 直线:是坐标轴上与x轴平行或与y轴平行的情况的直线. 斜线:图…
题目链接:http://codeforces.com/problemset/problem/358/B 题目意思:给出n个单词(假设为word1,word2.word3...wordn)和一句test message,需要判断的是,这个 test message在去除一系列随机插入的英文字符后,是否满足<3word1<3word2<3 ... wordn<3 的结构. 首先要构造出一个参考序列,也就是<3word1<3word2<3 ... wordn<3的…
题目链接:http://codeforces.com/problemset/problem/358/A 题目意思:在横坐标上给出n个不同的点,需要把前一个点跟后一个点(这两个点的顺序是紧挨着的)用一个半圆弧来连接.现在要判断的是这些符合条件的点连接以后,圆弧之间是否相交了.是则输出yes,否则输出no. 假设序列是x1,x2,x3,x4.....xn.相交其实只有两种情况,第一种就是样例已经给出了的:即  x1 < x3 < x2 且 x2 < x4.另外一种情况就是第一种情况的对称位置…
题目链接:http://codeforces.com/problemset/problem/355/B 题目意思:给出四种票种,c1: 某一部bus或者trolley的单程票(暗含只可以乘坐一次):c2.c3.c4乘坐次数没有限制.c2:某一部bus或者trolley可以乘坐无限次:c3:所有的bus或者trolley可以乘坐无限次:c4:所有的bus和trolley可以乘坐无限次.根据给出的n buses 和m trolleys 每一辆的乘坐次数,找出最便宜的买票方式,输出要花费的金额. 对于…
题目链接:http://codeforces.com/problemset/problem/355/A 题目意思:找出某个经过最多四次dr(n)操作等于d的k位数.   千万不要想得太复杂,想得越简单越好.由于它允许dr(n)的操作最多只能是四次,那么操作一次肯定是符合条件的.也就是经过一次dr(n)操作就能得出直接结果d的数(有k位). 由于这个数不能有前导0,非常简便的一个方法是,这个k位数是这样的:d000...00(0的个数等于k-1).要特别注意,什么时候应该输出“No solutio…
A. On Number of Decompositions into Multipliers 题目连接:http://codeforces.com/contest/396/problem/A 大意:给定n(n<=500)个数ai(1<=ai<=10^9),得到他们的乘积m,问将m分解成n个数相乘,有多少种方法. 思路:显然每个质因数都是独立的,如果质因数pi出现了ci次,那么把它分到n个数中,就有C(ci+n-1,n-1)种方法,然后把所有因数的答案相乘就是结果.于是我们可以先预处理出…
CF451E Devu and Flowers 题意: \(Devu\)有\(N\)个盒子,第\(i\)个盒子中有\(c_i\)枝花.同一个盒子内的花颜色相同,不同盒子的花颜色不同.\(Devu\)要从中选出\(M\)枝花,求有多少种方案,对\(10e9+7\)取模. 数据范围 \(1 \le N \le 20,0 \le M \le 10^{14},0 \le c_i \le 10^{12}\) 其实就是求多重集组合数的模板题. 可以看看我写的博客 一些注意点,发现直接求会爆\(long lo…
题目链接:http://codeforces.com/contest/467/problem/B 题目意思:有 m + 1 个 player 和 n 种类型的 soldiers.每个player被赋予一个数xi,然后将xi 看成二进制数,规定第 j 位 如果为1,表示这个 player 有j 这种类型的soldiers.Fedor 是 第 m + 1 个player,问他能跟前面 m 个players 成为 friends 的 人数.成为friends 的条件是被比较的两个人的不同soldier…
题目链接:http://codeforces.com/problemset/problem/402/B 题目意思:给出n个数和公差k,问如何调整使得ai + 1 - ai = k.(1 ≤ i < n),即等差数列,求出最少的调整次数.(调整的操作包括向一个数添加或者减少某个数,使得后一个数-前一个数 = 公差). 方法一: 对于每一个数ai,求出以ai为基准,在ai之前和在ai之后不满足等差数列的个数.直到扫描整个序列结束,选出个数最少的,,即调整的次数最少,然后再一次扫描整个序列,算出每一个…
题目链接:http://codeforces.com/problemset/problem/262/B 题目意思:给出 n 个数和恰好一共要做的操作总数k.通过对n个数进行k次操作,每次操作可以把a[i] 转化为 -a[i](当然也可以对同一个数进行 <= k次操作).问k次操作之后,整个序列的和最大为多少. 首先要知道整个序列中数的分布是如何的,有3种情况:1.都为正数.此时k次操作只需要考虑序列中第一个数,因为它是最小的.  2.都为负数.容易想到,要尽可能把最小的负数变为相应的正数,如果变…