上一页 1 ··· 47 48 49 50 51 52 53 54 55 ··· 57 下一页
摘要: 题目链接: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 每一辆的乘坐次数,找出最便宜的买票方式,输出要花费的金额。 对于每一部bus或者trolley,无非从c1或者c2选择。这里以选择某一个序号为 i 的bus的票为例。 阅读全文
posted @ 2013-10-17 08:50 windysai 阅读(390) 评论(0) 推荐(0) 编辑
摘要: 题目链接: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 solution”。答案是 k >= 2 并且 d = 0。000这样的数,你不会认为是符合合法数字的标准吧? 1 阅读全文
posted @ 2013-10-16 23:06 windysai 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/353/A题目意思:通俗地说,就是当上下两半的数的总和不完全是偶数时,通过上下调换某些骨牌来使这两半的数和变成偶数,统计并输出调换多少次;如果不行,则输出-1。 其实调换的次数最多只有1次,而实行调换的操作必须符合上下对应的数满足一奇一偶的条件,否则是白做的。如果调换一次之后,也不能使得上下两半的和都为偶数,那么就没必要继续判断了,直接输出“-1”。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 const int N =... 阅读全文
posted @ 2013-10-16 21:32 windysai 阅读(474) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/352/B题目意思:给出一个长度为n的序列a1, a2, ..., an(序号i,1 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 const int maxn = 1e5 + 5; 9 10 struct pairs 11 { 12 int index; // 保存位置的编号i 13 int num; // 保存序列的数,即题目中的a[i] 14... 阅读全文
posted @ 2013-10-06 19:27 windysai 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/352/A题目意思:给定一个只有0或5组成的序列,你要重新编排这个序列(当然你可以不取尽这些数字),使得这个序列尽可能地大,并且能被90除尽。 做这道题目,是多次调试本场比赛的B,完全不成功后回头再做的,一开始什么思路都没有,因为觉得是考纯数学,直接看B......怎么说,很大程度是靠直觉的。只知道,这个序列肯定是这种形式:5xx...0或者像题目所说的特殊情况:0(不过前提是0的个数不为0)。其他就不得而知了。然后在纸上比划了下,发现能被90除尽的序列,5的个数必须满足是9的倍数:9,18... 。至 阅读全文
posted @ 2013-10-05 09:32 windysai 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/342/B题目意思:有n个spy,编号从1~n,从左到右排列。现在的任务是,spy s要把信息传递到spy f,但必须要满足:当spy li ~ spy ri 被观看时,这一段spy不能传递信息。 要注意的是,step数(也就是ti)不一定是按顺序排列下来的,它有可能与上一行的step相差好几轮。此时,这好几轮中,spy s 是可以继续往spy f的方向传递信息的,直到移动完这好几轮的数目为止。除此,有可能m未完全输出完,spy s已经把信息传到spy f 中了;还有编号为 s 的spy编号有可能比sp 阅读全文
posted @ 2013-10-04 12:07 windysai 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/349/A题目意思:题目不难理解,从一开始什么钱都没有的情况下,要向每一个人售票,每张票价格是25卢布,这些人只可能拥有100,50,25的其中一张卢布。问:售票员是否能在可以找赎的情况下,向每一个人都售到票。 此题被贴上贪心的标签,但我觉得更像模拟题。用了比较笨的方法来解决,但是毕竟是自己编的,还是比较有感觉。要特别注意,收了别人的钱,相应的面额数量要作相应的改动。例如第一个样例的25 25 50 50,当处理到第三个人的50时,25卢比这个面值只剩下1了,原因是要找给第三个人25卢比,而本来没有50 阅读全文
posted @ 2013-09-28 10:52 windysai 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1425 常规的方法是对输入的数从大到小进行排序(可以用sort或qsort),然后输出前m大的数。 不过此题实质上是hash的入门题。建立一个比较大的数组,然后把这些数通过hash函数计算映射到这个数组里面(这里hash函数是 tmp + 500000,tmp是输入的n个数中任意的一个数),考虑到这些数是各不相同的,因此不需要考虑冲突问题。 1 #include 2 #include 3 using namespace std; 4 5 const int maxn = 1e6 + 5; 6 ... 阅读全文
posted @ 2013-09-23 15:00 windysai 阅读(325) 评论(0) 推荐(1) 编辑
摘要: 题目链接:http://code.hdu.edu.cn/game/entry/problem/show.php?chapterid=1&sectionid=2&problemid=22题目意思:给出一个数,观察其二进制表示,从右往左看,记录遇到第一个出现1的位置pos,做2 ^ pos 的运算。 这几天杭电的告示:Exercise Is Closed Now! 再加上想用一些简单的题目来调剂一下,因此就做ACM Steps 吧。 用了递归的方法来做。 1 #include 2 #include // pow库函数的使用 3 using namespace std; 4 5 in 阅读全文
posted @ 2013-09-22 23:18 windysai 阅读(450) 评论(0) 推荐(1) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/347/A题目意思:给出一个序列 a1, a2, ..., an , 通过重排序列,假设变成x1, x2, ..., xn ,使得 (x1 - x2) + (x2 - x3) + ... + (xn - 1 - xn) 的和最大。输出这个重排后的序列,不过这个序列在满足得到这个最大和的基础上字典序的排序是最小的。字典序排列即:Sequence x1, x2, ... , xp is lexicographically smaller than sequence y1, y2, ... , yp if t 阅读全文
posted @ 2013-09-21 09:44 windysai 阅读(231) 评论(0) 推荐(0) 编辑
上一页 1 ··· 47 48 49 50 51 52 53 54 55 ··· 57 下一页