
模拟
Bahuia
软件工程博士
展开
-
CF - 724C 模拟 + STL
题意:给出的一个n*m的矩形区域,另外给出k个点的坐标,在初始时刻0从坐标原点想由上方45度射出一条射线,射线的速度为根号2,遇到墙壁会按照反射定律反射,问对于每个询问的点,计算出射线到达该点的时间,如果没到达就输出-1。思路:n和m都是1e5级别,对于每个点,都只有两条直线可以穿过它,且斜率k是+1或者-1,用map嵌套set来报存每一条直线上存在的点。然后设置一个当前反射点的坐标x,y,当前时间原创 2016-11-06 17:34:08 · 501 阅读 · 1 评论 -
51Nod - 1289
题意: 中文题 思路: 模拟题 用一个栈来模拟,然后从左到右扫一遍,如果当前扫到的鱼方向是向右,就进栈,否则就依次与栈中的鱼比较,如果比栈顶元素大,则弹栈。 代码: #include using namespace std; const int MAXN = 1e5 + 10; int w[MAXN], d[MAXN]; int main() { //freopen(原创 2016-12-18 12:03:37 · 520 阅读 · 0 评论 -
51Nod - 1091 模拟
题意: X轴上有N条线段,每条线段包括1个起点和终点。线段的重叠是这样来算的,[10 20]和[12 25]的重叠部分为[12 20]。 给出N条线段的起点和终点,从中选出2条线段,这两条线段的重叠部分是最长的。输出这个最长的距离。如果没有重叠,输出0。 思路: 按照先l排序,再r排序,然后从左往右扫一遍,维护最靠右的r的线段的编号,比较更新最大重叠部分。 代码: #i原创 2016-12-18 21:32:55 · 357 阅读 · 0 评论 -
51Nod - 1432 模拟 + 贪心
题意: n个人,已知每个人体重。独木舟承重固定,每只独木舟最多坐两个人,可以坐一个人或者两个人。显然要求总重量不超过独木舟承重,假设每个人体重也不超过独木舟承重,问最少需要几只独木舟? Input 第一行包含两个正整数n (0<n<=10000)和m (0<m<=2000000000),表示人数和独木舟的承重。 接下来n行,每行一个正整数,表示每个人的体重。体原创 2016-12-27 10:20:14 · 376 阅读 · 0 评论 -
51Nod - 1035 模拟
题意: 正整数k的倒数1/k,写为10进制的小数如果为无限循环小数,则存在一个循环节,求<=n的数中,倒数循环节长度最长的那个数,假如存在多个最优的答案,输出所有答案中最大的那个数。 1/6= 0.1(6) 循环节长度为1 1/7= 0.(142857) 循环节长度为6 1/9= 0.(1) 循环节长度为1 Input 输入n(10原创 2017-01-18 10:36:08 · 409 阅读 · 0 评论 -
51Nod - 1402 模拟 + 贪心
题意: 一个N长的数组s[](注意这里的数组初始下标设为1,而不是0,即N个元素为s[1],s[2],...,s[N]),满足以下性质: 1)每个元素都是非负的整数,且s[1]=0; 2)任意两个相邻元素差值的绝对值不大于1,即| s[i]-s[i+1] | 3)对于部分特殊点xi,要求s[xi] 问在以上约束下s[]中的最大值最大可能是多少? Inpu原创 2017-01-21 11:59:51 · 561 阅读 · 0 评论 -
51Nod - 1418 模拟
题意: 有N个球排成一排,每个球都是R、G、B三种颜色之一。现在想重新排列这一排球,你要重复以下过程N次: 1)从原来的那排球中的最左侧取出一个球; 2)将取出的求插入新的球排列的任意位置,即可以放在最左或最右端,也可以插入那排球的任意两个相邻球之间; 3)计算这轮得分,如果是第一个球那么得0分;如果放在两端(最左或最右端)得分为除了新放入的球外,剩余球的颜色种数;如果放在两个原创 2017-01-26 09:27:36 · 443 阅读 · 0 评论 -
51Nod - 1116 枚举 + 模拟
题意: 有一个字符串S,记录了一个大数,但不知这个大数是多少进制的,只知道这个数在K进制下是K - 1的倍数。现在由你来求出这个最小的进制K。 例如:给出的数是A1A,有A则最少也是11进制,然后发现A1A在22进制下等于4872,4872 mod 21 = 0,并且22是最小的,因此输出k = 22(大数的表示中A对应10,Z对应35)。 Input原创 2017-02-03 17:20:56 · 388 阅读 · 0 评论 -
hihocoder - 1489 (微软2017笔试A题)概率 + 模拟
题意:题目链接:http://hihocoder.com/problemset/problem/1489?sid=1046718 一个人玩游戏取传奇物品,一开始能取到物品的概率为P%,如果某次取到了物品,取下一个物品时,取到的概率就是[P/2](向下取整),如果某次没有取到,下一次取到的概率就要加上Q%,如果当前概率超过了100%那就算100%,问取得n个物品的期望步数是多少?思路:“没思路”系列原创 2017-04-01 11:30:02 · 1347 阅读 · 0 评论