个人难度顺序:AMGECLBFIHDKJ
A.DFS搜索
题意:
给你一个字符串s,问字符串s中是否含有DFS子序列与dfs子序列。
输出两个数字:第一个数字表示是否有DFS子序列,第二个数字表示是否有dfs子序列,1表示有,0表示没有。
数据范围
$$1\leq T\leq100$$
$$1 \leq n \leq 50$$
题解:模拟
按题意。
代码:
1 | void JiuCherish() { |
B.关鸡
题意:
如图所示,在一条宽为2、长为2 * 10 ^ 9 + 1的管道中,有一只鸡和若干着火点,鸡可以上下左右移动一格、不能出管道上下边界、不能进入着火地点。
鸡初始在 (1,0) 处,现在给出若干个着火点的坐标,请求出为了不让鸡逃出管道(即到达管道最左端或最右端),最少需要添加多少个着火点。
数据范围
$$1\leq T\leq 10^4$$
$$0 \leq n \leq 10^5$$
$$1 \leq r \leq 2, -10^9 \leq c \leq 10 ^ 9$$
$$保证 \sum n \leq 10^5$$
题解:模拟
首先需要研究第一行是否有2个着火点使得鸡不能在第一层跑出来。
其次需要研究第二行是否有2个着火点使得鸡不能在第二层跑出来。
再者需要研究左边的两个着火点是否相邻或者对角相连 和 右边的两个着火点是否相邻或者对角相连。
特别的:需要判断(1,0)这个点旁边是否存在着火点,如果有的话直接在(1,0)这个点围起来即可。
代码:
1 | int dy[6]={-1,-1,-1,1,1,1},dx[6]={-1,0,1,1,0,-1}; |
C.按闹分配
题意:
办事大厅目前有n个人和一个办事窗口,每个人都要在这个窗口办事,第iii个人办事所需时间为ti。
时刻0所有人都进入办事大厅,第i个人的不满意度D_i定义为他的事情办完的那个时刻。定义所有人的总不满意度S=Σi=1^n Di
办事处工作人员会合理安排办事顺序,使得总不满意度最小,记为Smin。
现在,很急的鸡来办事了,鸡可以在任意时刻要求工作人员放下手头的事情,立刻来处理鸡的事情,鸡的事情需要t_c时间处理完成。假设鸡插队后其余n人的总不满意度最小值变为S_c,若Sc−Smin≤M,则工作人员将允许鸡的插队,否则工作人员将拒绝。M是工作人员的容忍限度。
现在,请你回答Q组询问,即当工作人员的容忍限度为M时,鸡最早能在哪个时刻办完事。
数据范围
$$1\leq n,Q\leq 10^5, 1\leq t_c \leq 10^9$$
$$1 \leq t_i \leq 10^6$$
$$0 \leq M \leq 10^{18}$$
题解:前缀和
插队后,想要满足
$$S_c - S_{min} \leq M$$
实际上就是满足
$$(n - pos) * t_c \leq M$$
代码:
1 | void JiuCherish(){ |
D.数组成鸡
E. 本题又主要考察了贪心
F 鸡数题!
G.why买外卖
题意:
有一个外卖程序有若干种满减优惠:第 i 个优惠是满ai减bi元,多个满减优惠可以叠加。
满减的具体结算流程是:假设鸡购买的食物原价共为x元,则所有满足x >= ai的满减优惠都可以一起同时被使用,优惠后价格记为 y,则鸡只要支付 y元就可以了(若y <= 0则不需要支付)。
数据范围
$$1\leq T\leq 10^4$$
$$1 \leq n \leq 10^5,1 \leq m \leq 10^9$$
$$1 \leq a_i,b_i \leq 10 ^ 9$$
$$保证 \sum n \leq 10^5$$
题解:模拟,排序
从小到大模拟即可。
代码:
1 | std::pair<int,int> a[MAXN]; |
H. 01背包,但是bit
I.It’s bertrand paradox. Again!
J.又鸟之亦心
K.牛镇公务员考试
L.要有光
题意:
算面积最大值
数据范围
$$1\leq T\leq 10^4$$
$$1 \leq c,d,h,w \leq 10^4$$
题解:数学
求梯形面积
代码:
1 | void JiuCherish(){ |
M. 牛客老粉才知道的秘密
题意:
对于n道题的一场比赛,显示的六道题目中最左侧的题目一共有几种可能取值。
例如14道题: ABCDEFGHIJKLMN
最开始最左侧题目:A(原点)
第一次最左侧题目:G(右移)
第二次最左侧题目:I(右移)
第三次最左侧题目:C(左移)
第四次最左侧题目:A(左移)
所以是AGICA共四种。
数据范围
$$1\leq T\leq 10^5$$
$$6 \leq n \leq 10^9$$
题解:模拟,结论
首先统计右移有多少次,如果不能整除6那么说明有一次是特殊的移动。
然后再算左移有多少次。
代码:
1 | void JiuCherish() { |