思维题
youth.lin
a tyro at CS and NLP.
展开
-
POJ 1083 Moving Tables(区间+计数)
原题地址:http://poj.org/problem?id=1083 题意:一条长廊的北边南边有编号从1到400的200个房间(分单双号),把一张桌子从房间m搬到房间n需要占用m、n之间的所有走廊(包括房间前的走廊),耗时为10分钟,给定所有需要搬动的(m,n)对,求尽可能同时移动桌子的情况下的最短耗时。 解题思路刚开始读题以为是区间重叠的问题,画了很多线段想解法,最后觉得还是没有想到原创 2017-03-29 10:21:21 · 235 阅读 · 0 评论 -
UVa Master-Mind Hints(猜数字+计数)
原题地址https://vjudge.net/problem/UVA-340 题意:猜数字游戏。给定答案序列和猜测序列,统计有多少数字正确(A),多少数字在两个序列中都出现过但位置不对应(B)。解题思路本题是《算法竞赛入门经典》的例题3-4,原题的英文题目很复杂,但是玩过猜数字的都知道是什么意思 :)猜测不限次数,输入0 0 0 0结束这轮猜测;判断A非常简单,直接统计guess[i] =原创 2017-04-10 21:21:08 · 1719 阅读 · 0 评论 -
POJ 2431 Expedition(贪心+优先队列)
原题地址http://poj.org/problem?id=2431 题意:一辆有P单位汽油的卡车在距离终点L单位距离的起点处,卡车每开一单位距离就要消耗一单位汽油。在途中一共有N个加油站,每个加油站有各自的位置和油量。假设卡车的燃料箱容量无限,请问最少需要加几次油到达终点。如果不能到达则输出-1.解题思路AC代码#include <iostream>#include <cstdio>#i原创 2017-05-01 16:30:58 · 367 阅读 · 0 评论 -
POJ 1852 Ants(模拟+弹性碰撞)
原题地址http://poj.org/problem?id=1852 题意:在一根长为L厘米的水平木棍上有n只蚂蚁,它们以每秒1cm/s的速度走到木棍一端就会掉下去。现在知道它们起始位置(相对于木棍左端点的距离)。但是不知道它们爬行的方向。两只蚂蚁相遇后,它们会掉头往反方向走。求所有蚂蚁都落下木棍的最短时间和最长时间。解题思路如果采用穷举搜索的办法枚举所有蚂蚁的初始朝向,那么复杂度为O(2^n原创 2017-04-27 17:53:46 · 668 阅读 · 0 评论 -
EOJ 3303 1的个数最多的整数(位运算)
题意:给定整数 a 和 b,输出区间 [a,b] 中对应二进制表示含 1 的个数最多的整数。如果存在多个解,则输出符合条件的最小的整数。原创 2017-09-02 20:35:30 · 992 阅读 · 0 评论 -
EOJ 3292 解密字符串(排序)
题目 题意:为防止泄密,将数码0到9用全大写的英文单词表示并将所有字母打乱。密码114表示为ONEONEFOUR,或OURNEONFOE,FOOONNEERU等。 给定一个大写字母表示的字符串,要求算出原来的数字表示的密码(非递减)。解题思路 0-9对应的大写英文单词: ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT,原创 2017-09-09 15:50:54 · 507 阅读 · 0 评论 -
EOJ 3290 找数(III) (模拟+简单数字串)
题目http://acm.ecnu.edu.cn/problem/3290/ 题意:“非上升数”表示一个整数的高位数码不会小于低位数码。如54332111, 111等。给定一个整数n,找出不小于n的最小“非上升数”。解题思路最自然的想法是,通过扫描s[i] < s[i+1]找到上升点,然后对上升点前的s[i-1]+1,后面全部填0。但是要考虑到s[i-1]+1后可能会破坏前面的非上升序列,因此原创 2017-09-09 17:11:14 · 530 阅读 · 0 评论 -
EOJ 1076 染气球(树状数组)
题目http://acm.ecnu.edu.cn/problem/1076/ http://acm.hdu.edu.cn/showproblem.php?pid=1556 题意:给定区间[1, N],每次输入一对整数a, b表示区间[a, b]中的每个元素都加1,最后统计[1, N]中每个元素的值。解题思路题目看上去很简单,但是如果单纯遍历[a, b]对数组元素更新,会超时,原因是这样一个个原创 2017-09-10 15:23:59 · 475 阅读 · 0 评论 -
EOJ 3276 连续正整数之和(模拟)
题目http://acm.ecnu.edu.cn/problem/3276/ 题意:给定一个正整数 N,判断其是否可以表示为一组连续正整数的和,输出符合条件的解的组数。如15=1+2+3+4+5=4+5+6=7+8,组数为3.解题思路设连续整数的起始数为i,连续个数为k,那么n=i+(i+1)+(i+2)...(i+k−1)2=(2∗i+k−1)∗k2n =\frac {i+(i+1)+(i+原创 2017-09-10 17:39:52 · 852 阅读 · 0 评论