↓ Skip to main content

Posts

2016

codeforces 605 A. Sorting Railway Cars (dp)

·419 words·1 min
题目链接 题意:给出一个n个数的排列,每次可以把一个数放到最前面或者最后面的位置,问至少要进行多少次操作才能使得数列升序。 思路:考虑不被移动的那些数,当把所有一定的数去掉以后,这些剩下的数一定是一段数值连续,位置递增的数。如果想要移动的数最少,俺么这串递增的数就尽可能长。

codeforces 496 C Removing Columns (构造)

·586 words·2 mins
题目链接 题意:给一个n*m的由小写字母组成的table.要求从上往下每一行字典序不严格递增。问最少删除几列才能满足。 思路:一开始想的是用一个left数组维护每次删除后某一列左边是哪一列,目的是为了下次的判断。

codeforces 509 B. Painting Pebbles (构造)

·382 words·1 min
题目链接 题意:n堆石子,每堆a[i]个,k种颜色。给每个石子涂色,要求对于每种颜色,任意两堆中该颜色石子的个数最多差一个。问是否有解,有解输出一组方案。 思路:我们发现有解与否只和最大值最小值有关。

codeforces #375 D. Lakes in Berland (dfs)

·681 words·2 mins
题目链接 题意:nm个格子,有和.两种类型。定义一个湖为边相邻的只有.组成的最大点集合,且任何一个.不在边界上。现在给出一个nm的图保证至少有k个湖。问填多少个.成,才能使得恰好有k个湖。

codeforces #375 C. Polycarp at the Radio (贪心)

·449 words·1 min
题目链接 题意:给出n,m,n个数,对其中的一些数进行修改,要求1..m中出现次数最少的数最大,输出这个最少的数最大是多少,以及修改的次数。 思路:最小的数最多出现n/m次。

弱校连萌 2016 10.3

·1564 words·4 mins
题目链接 ……sad… 果然没睡够,起来就写题,脑子完全就是不清醒的状态。 这个不清醒主要体现在,10+ 次忘记删条件编译。 改着改着就忘记这件事了,好烦啊。本来早就 A 了,结果又接着去改。

codeforces 468 A. 24 Game (构造)

·618 words·2 mins
题目链接 题意:给出n,有1..n n个数,可以选择两个数进行加,减,乘,三种操作,操做完得到一个数放回。 n-1次操作后只剩下一个数。现在要求剩下的数为24.问方法。 思路:我们发现。。。两个数相减可以为1.。那么只要找到4个数的方案和5个数的方案就好了。。。

bestcoder #88 || hdu 5908 Abelian Period(暴力)

·765 words·2 mins
题目链接 题意:一段数字串,如果一个数字k满足,将该串分成若干个长度为K的子串,这些子串两两满足每个字符出现的次数一样多,那么称为k是一个阿贝尔周期。现在问所有合法的阿贝尔周期。

FZU 2113 Jason的特殊爱好 (数位dp)

·400 words·1 min
题目链接 题意:统计区间[a,b]里数字1出现的次数。 思路:数位dp。 收获是,dfs传递的参数可能是为了判断符合条件的答案(比如不要62中的preis6等) 但是也可能是在统计答案信息。。。pos等于0的时候返回值未必是1和0.。。

hdu 5904 LCIS (dp)

·340 words·1 min
题目链接 题意: 给定两个序列,求它们的最长公共递增子序列的长度, 并且这个子序列的值是连续的 思路:以值为连续做入手点。 很显然个鬼咯 dp[a[i]]表示以a[i]结尾的最大长度。 dp[a[i]] = dp[a[i-1]] + 1 对于b序列一样。

hdu 3507 Print Article (斜率优化dp)

·1459 words·3 mins
题目链接 题意:n个数,分成若干段,每段的代价为 ,求最小代价。 思路:dp。 状态方程很显然个鬼。。。 dp[i] 表示处理完前面i个数的最小代价。 dp[0] = 0 ; dp[i] = min(dp[j]+(sum[i]-sum[j])^2) ( 0<j <i),sum[i]为a[i]的前缀和。

斜率优化学习笔记

·211 words·1 min
参考博客 这个东西英文好像叫做:convex hull trick Convex_hull_trick_wiki codeforces convex hull trick 简单说说我的理解:斜率优化是一种数形结合的思想。。。 对于一个dp的若干状态。。。有些状态是不会对答案有贡献的。。。这些我们就可以不考虑。。。

2017 小米 软件工程师 校招 笔试题 (模拟)

·451 words·1 min
题意:一串电话号码,每个数字+8取各位后,把每个数字写成对应的大写英文,从"ZERO"和“NINE”,然后打乱字母的顺序。现在给出打乱的字母顺序,问可能的字典序最小的电话号码是是多少(可能有前导0)