摘要: 题意: 一个只有两列的扫雷,其中第二列没有雷,并且给出了第二列的数字,该数字表示以其为中心连通的八个格子共含雷的数量,问第一列雷有多少摆放方案? 分析:很有趣的一道模拟题,按照题意自己手动模拟答案发现其实第一列雷的方案数基本都被第二列给限制死了,能让你二选一的其实很少了(为什么扫雷高级还是过不了QA 阅读全文
posted @ 2021-03-12 21:27 Canana 阅读(361) 评论(0) 推荐(0)
摘要: 题意: 给定n和k,输入一段长为n的数字序列,选取一个子序列,该子序列中仅有数字1~k且正好出现一次,最后找到字典序最小的那个。 思路: 模拟样例我们发现该序列需要尽可能的把小的数字放在前面,可以用单调栈来模拟解决。先把第一个数扔进栈里面,之后的数如果小于栈顶元素,那就可以考虑能不能把这个栈顶元素扔 阅读全文
posted @ 2021-03-12 21:21 Canana 阅读(79) 评论(0) 推荐(0)
摘要: 太久没打cf了,赛时只做出来3道QAQ,读题和手速现在慢的离谱,只能靠赛后补题来弥补了...... A. Dense Array 数据很小直接模拟插入即可,x = min(a[i],a[i+1]) y = min(a[i],a[i+1]) 如果 y >= 2 * x , 不需要操作 否则不断插入 2 阅读全文
posted @ 2021-02-18 17:24 Canana 阅读(139) 评论(0) 推荐(0)
摘要: 前缀和:其实可以理解为数组前n项的和,前缀和数组s[i]=a[1]+a[2]......+a[n]。s[i] = s[i-1] + a[i] ! 举个例子来实现下把:比如数组a[1]=7,a[2]=7,a[3]=5,a[4]=8,a[5]=2,a[6]=5,a[7]=8,每次需要询问序号 i 到 j 阅读全文
posted @ 2020-05-11 20:43 Canana 阅读(362) 评论(0) 推荐(0)
摘要: 二话不说,直接上代码!(懒) #include<stdio.h> #include<algorithm> using namespace std; #define Maxx 1000000 struct Tree{ int l,r,sum; }t[4*Maxx];//开四倍空间,防爆 int a[M 阅读全文
posted @ 2020-04-26 20:34 Canana 阅读(136) 评论(0) 推荐(0)
摘要: 题目 著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的 N 个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元? 例如给定 $N = 5$, 排列是1、3、2、4、5。则 阅读全文
posted @ 2020-04-02 21:06 Canana 阅读(437) 评论(0) 推荐(0)