上一页 1 ··· 45 46 47 48 49 50 51 52 53 ··· 57 下一页
摘要: 题目链接:http://codeforces.com/contest/379/problem/B题目意思:给定一个有n个钱包的序列,其中第i个钱包需要投入ai个钱币,需要编写一个程序,使得在对第i个钱包不能连续投入两次钱币(其实对这句话理解得不是很好:Due to some technical malfunctions the robot cannot follow two "put a coin" instructions in a row。希望有错的话,大家能够指出)和只有三种操作:向左移动一步,向右移动一步和向当前位置投入钱币的条件下,输出把每个钱包需要投入的钱币数都 阅读全文
posted @ 2014-01-09 12:06 windysai 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/379/A题目意思:给定a支蜡烛(每支蜡烛可以燃烧1小时),可以在燃尽的a支蜡烛中看能组成多少组b支蜡烛,每组可以换取一支新的蜡烛。接着换取后的蜡烛燃尽之后数量又可能是b的倍数(记得总数量还应包括余数),问这些蜡烛总共可以燃烧多少个小时。 一开始有多少组b支蜡烛,实质是a/b。由于可以除不尽,要检验a%b。那么目前的蜡烛就总共有a/b + a % b。不断地把 a/b相加,直到a 2 #include 3 #include 4 using namespace std; 5 6 int main(... 阅读全文
posted @ 2014-01-09 10:31 windysai 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 题目链接: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 + 两位数的个数*2 + 三位数的个数*2 + ... + n位数的个数*n = w / k 思路就是:得.. 阅读全文
posted @ 2013-12-14 13:35 windysai 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/370/A题目意思:根据rook(每次可以移动垂直或水平的任意步数(>=1)),bishop(每次可以移动对角线上的任意步数(>=1))和king(每次垂直、水平或对角线的一步(=1))的走法,给出起始位置和... 阅读全文
posted @ 2013-12-14 12:48 windysai 阅读(372) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/371/A题目意思:给出n和k和一个只有1或者2组成的序列,需要求出最少的改变次数,使得 n/k 组里面的数完全相等。如果该序列n/k组里面的数本来已经全部相等,输出0。 我的做法是,在这个序列中,找出n/k对应位置的数,统计1和0的个数。以第一组数据样例来说(n/k = 3组数,每组数用 "|" 隔开),序号i: 1 2 | 3 4 | 5 6对应的序列:2 1 | 2 2 | 2 1 即分别统计1、3、5和2、4、6对应的2和1的个数,如果2的个数比较多,就把1的个数全部变为2, 阅读全文
posted @ 2013-12-14 10:51 windysai 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/369/B题目意思:给出6个整数,n, k, l, r, sall, sk ,需要找出一个满足下列条件的序列:1、 l 2 #include 3 #include 4 using namespace std; 5 6 int n, k, l, r, sum, sumk, cnt, res1, res2; //cnt的使用是为了区别第一次的调用和第二次的调用 7 8 void solve(int p, int n) 9 {10 int i, j, p1, p2, p3, p4, p5... 阅读全文
posted @ 2013-11-30 21:48 windysai 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/363/C题目意思:纠正两种类型的typos。第一种为同一个字母连续出现3次以上(包括3次);另一种为两个不同的字母各出现2次。需要把使用最少次数而纠正好的word输出来。 为了方便操作,这里我都是通过删去后一个字母来纠正typo的,即如果是wwaattyy,假设看成两组:wwaa和ttyy,那么纠正完的分别是:wwa和tty。至于第一种类型的typo比第二种简便,只需要把同一个字母删除到只剩下2个即可。 注意,这里的删去并不是真的删去,而是通过向应该删去的元素赋值,这里以字符'0'来处 阅读全文
posted @ 2013-11-23 13:53 windysai 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/365/B题目意思:简单来说,就是要找出最长的斐波纳契长度。解决的方法不难,但是要注意更新左区间和右区间的值,而且需要把当前求出的斐波纳契长度和之前求出的斐波纳契长度进行对比,以便更新得出的最长的斐波纳契长度。 特别注意的是,序列只有一个、两个或者没有斐波纳契长度的处理。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 const int maxn = 1e5 + 5; 7 int a[maxn]; 8 9 int mai... 阅读全文
posted @ 2013-11-21 23:37 windysai 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 题目链接: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) 编辑
上一页 1 ··· 45 46 47 48 49 50 51 52 53 ··· 57 下一页