摘要: 题目链接:http://codeforces.com/problemset/problem/349/B题目意思:给定v升的颜料和9个需要花费ad 升的颜料,花费ad 升的颜料意味着得到第d个数字,现在要求在所有的花费不超过v升的情况下,使得这些数字组合起来是最大的。一开始直接从最小花费的颜料着手,如果花费的颜料是相同的,就转到从d(也就是位数)最大贪心。这样测试9就开始卡住了。 受到乌冬兄的指点迷津,终于有了思路,陆陆续续改了很多次,终于过了。以下摘自他的语录,白话文,大家请谅解: 稳用颜料最少,最大的数字,先保证位数最长,然后再将剩余颜料从大数字开始贪心 因为要数最大,所以根据“数”的比较顺 阅读全文
posted @ 2013-11-19 22:28 windysai 阅读(681) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/362/B题目意思:给出整数n和m,表示有n级楼梯和m级dirty的楼梯,接下来m个数表示对应是哪一个数字的楼梯是dirty的楼梯,不一定是按小到大给定的,需要判断的是,在只可以走一级、二级或三级的情况,是否可以把所有的非dirty楼梯走完。当然,如果dirty的楼梯中包含第一级(初始位置)或者最后一级(最终位置),那么默认是不能走完非dirty楼梯的。 由于给定的dirty楼梯的数字是任意无序的,所以先要排序再处理。接着判断,一旦如果dirty楼梯是连续的三个数字,那么就不能把所有的非dirty楼梯走 阅读全文
posted @ 2013-11-19 21:56 windysai 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/315/A题目意思:有n个soda bottles,随后给出这n个soda bottles的信息。已知第 i 个bottle来自品牌ai,你可以用这个品牌 ai 来开所有属于品牌bi 的bottles。注意,other特别用黑色粗体来强调,表明该行的除外,也就是说,假如i = 1(隐含的),ai = 1,bi = 1,这个bottle 1 是不能被打开的。需要找出无论用什么方式都不能打开的bottle的总个数。 另外,有可能同一个bottle可以被多个不同的ai 打开,所以要增加一个额外的vis数组来防 阅读全文
posted @ 2013-11-19 16:56 windysai 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/361/B题目意思:有n个数,这些数的范围是[1,n],并且每个数都是不相同的。你需要构造一个排列,使得这个排列上的数与它所在位置的序号的最大公约数满足 > 1,并且这些数的个数恰好满足k个,输出这样的一个排... 阅读全文
posted @ 2013-11-19 16:39 windysai 阅读(424) 评论(4) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/363/B题目意思:给定整数n和k,需要从n个数中找出连续的k个数之和最小,输出这连续的k个数中的第一个数的下标。 直接暴力果断TLE,于是想到之前做的那条332B - Maximum AbsurdityDP题的做法,决定开多一个额外的数组b[],在输入的时候把a[i]中前i个数的和都记录到b[i]中,这样通过b[i] - b[i-k]即可得出序列h1, h2, ..., hn(1 ≤ hi ≤ 100) 所有连续的k个数之和。特别要注意,当i-k >= 0的时候才能进行相减的操作,防止数组下标越 阅读全文
posted @ 2013-11-19 16:09 windysai 阅读(226) 评论(0) 推荐(0) 编辑