随笔分类 - ACM / 基础算法 / 模拟
摘要:题目链接:HDU 4334【Trouble】 思路 哈希+贪心,直接将五个数组分成两个或者三个数组,此时数组相加的时间复杂度为O(n2)或者O(n3),然后双重循环数组e和s1并遍历找出s2中是否有满足题意的元素,这个步骤可以使用二分代替还能降低时间复杂度。 代码 #include <iostrea
阅读全文
摘要:题目链接:CodeForces 908B【New Year and Buggy Bot】 思路 简单模拟,用pair数组存下四个方向然后,依次枚举全排列,将每个方向依次映射给0,1,2,3,然后就是跟着String走,遇到障碍或者走出地图就返回false,表示当前方案是错误的,走完String的所有
阅读全文
摘要:题目链接:CodeForces 908C【New Year and Curling】 思路 模拟,考虑到两个圆盘可能出现y值相同且相接的情况,所以在判断当前圆盘的y值时循环的范围从在前圆盘的x值左右浮动2r,依次遍历这个范围内的数组y(存储的是当前已经移动了圆盘中的横坐标为i的圆盘的最大的y值),然
阅读全文
摘要:题目链接:CodeForces 1883E【Look Back】 思路 若直接对每个元素进行操作累乘至大于相邻的前一个元素时,可能最后会数据溢出,而且乘的2个数可能会很多,会时间超限。所以可以对每两个相邻的元素进行判断,判断他们之间差了2的多少次方。cnt记录的是当前元素和上个元素之间差的2的cnt
阅读全文
摘要:题目链接:CodeForces 1883D【In Love】 思路 求能否找出两个区间不相交,所以将得到的区间先按区间左端点的大小从小到大排列,再按区间右端点的大小从小到大排列,此时取出最小的右端点和最大的左端点,若右端点在左端点左侧,则存在两个不相交的区间。由于需要动态操作增加减少区间,所以可以使
阅读全文
摘要:题目链接:CodeForces 1883A【Morning】 思路 模拟,特判当密码中的某个元素为0时,用10减去当前光标的位置,并修改光标的位置为当前元素,再操作依次显示当前元素。对于其他情况则直接使用光标的位置减去目标位置,修改光标位置为当前元素,然后再操作一次显示当前元素。 代码 #inclu
阅读全文
摘要:题目链接:HDU 1020【Encoding】 思路 简单模拟,计算相同字母的连续子串个数。 代码 #include <iostream> #include <algorithm> #include <queue> using namespace std; #define ll long long
阅读全文
摘要:题目链接:CodeForces 1983C【Have Your Cake and Eat It Too】 思路 先向上取整计算出tot/3,然后依次枚举abc三个数组取区间的前后顺序,对于每个顺序依次从前往后枚举,直到取得的区间数字之和大于等于tot/3,就对下一个数组进行枚举,直到所有数组都满足取
阅读全文
摘要:题目链接:CodeForces 1992A【Only Pluses】 思路 代码 #include <functional> #include <iostream> #include <algorithm> #include <queue> using namespace std; #define
阅读全文
摘要:题目链接:CodeForces 1992D【Test of Love】 思路 从起点开始起跳,找出下一个木头的位置,若与当前位置的距离小于等于m,则可以直接跳过去,否则判断当前位置与下一个木头之间有没有鳄鱼,有鳄鱼则不能到达对岸,否则继续查找下一个木头,直到对岸。 代码 #include <func
阅读全文

浙公网安备 33010602011771号