摘要: 超级快读模板 #define getcha() (S==T&&(T=(S=fsr)+fread(fsr,1,1<<15,stdin),S==T)?EOF:*S++) char fsr[1<<15],*S=fsr,*T=fsr; inline int read(){ int r(0),w(1);cha 阅读全文
posted @ 2021-08-18 21:58 ssl_lhj 阅读(266) 评论(0) 推荐(0)
摘要: 题目大意 给出一个长度为$n$的序列$A$描述一个长度为$n$的全排列,$A_i$表示前$i-1$个有多少个比第$i$个数大。 题目分析 从后往前分析,当前$a_i$表示有几个数比当前位置的数大,那么当前应该选择的数一定是剩余数字中第$a_i$大的,暴力模拟匹配,时间复杂度$O(n^2)$,可以过$ 阅读全文
posted @ 2021-08-18 21:58 ssl_lhj 阅读(28) 评论(0) 推荐(0)
摘要: 题目大意 $n$个人排队打饭,假如相邻的人打的菜一样,就会影响彼此用餐的心情。求这个队伍中有人被影响心情的状态数,对$100003$取余。 题目分析 直接求怎么影响心情难度较大,我们可以反道而行之,求不合法的方案数即求有多少种方法可以不影响心情。 第一个人可以随便选,即可以选$m$种菜,后$n-1$ 阅读全文
posted @ 2021-08-18 21:57 ssl_lhj 阅读(34) 评论(0) 推荐(0)
摘要: 题目大意 定义一个运算操作,求出一个长度为$n$的数列在经过$n-1$次合并后能得到几种不同的结果。 题目分析 首先先来观察一下这个$X$运算:\(a(X)b=((a\&b)+(a|b))>>1\) 实际上,这个 \(((a\& b)+(a|b))>>1\) 的值就是等于$(a+b)/2$的值,因为 阅读全文
posted @ 2021-08-09 16:29 ssl_lhj 阅读(37) 评论(0) 推荐(0)
摘要: 题目大意 求最符合拔河比赛要求的分队方法。 题目分析 用一个三元组(x,y,z)来表示当前的情况:x为当前考虑到第几个人,y为当前已经选择了多少个人到第一个分队里,这队人的体重和为z。 当y==n/2或者x>n时结束。 用dfs暴搜来实现…… \(Code\) #include<iostream> 阅读全文
posted @ 2021-08-08 19:21 ssl_lhj 阅读(47) 评论(0) 推荐(0)
摘要: [题目]大意 有$n$只兔兔,每只兔兔单独时都需要吃$hunger_i$的食物量,假如有同食者,那么每个同食者会让它需要多吃$greed_i$的食物量。假如小明最多能提供$totalFood$的食物,那么他最多能养多少只兔兔。 题目分析 养的兔子越多,所需食物量越大,可见答案具有单调性,用二分答案做 阅读全文
posted @ 2021-08-08 16:33 ssl_lhj 阅读(88) 评论(0) 推荐(0)
摘要: 题目分析 答案具有单调性,先确定答案的上下限,由于是部分或全部$a_i$的平均值,且所有的$a_i$都小于$2000$,所以答案范围为$0\leq x\leq 2000$ 考虑二分,判定条件是“是否存在一个长度$\leq L$的子段,平均值不小于$mid$” 求平均值十分麻烦,我们可以把子段内的所有 阅读全文
posted @ 2021-08-08 15:43 ssl_lhj 阅读(50) 评论(0) 推荐(0)
摘要: 题目大意 给出一条防线上的防具布置情况,求防线的第一个破绽位置与该位置上的防具数量。 题目分析 记$S(x)$表示$0~x$的位置上一共有多少防具,对于每组防具,如果$s_i$在x之前,那么就把$min(x,d_i)$之前的防具累加,一直累加到n求出$S(i)$,时间复杂度为$O(n)$。 特判:若 阅读全文
posted @ 2021-08-08 11:29 ssl_lhj 阅读(47) 评论(0) 推荐(0)
摘要: 题目大意 把一个长度为n数列分成m段,让每段的最大值最小。(m<=n) 题目分析 首先看出这题应该用二分做,然后考虑这道题答案范围的上下限:下限就是最大的$a_i$,而上限就是$\Sigma^{i=n}_{i=1}a_i$ 确定边界之后,开始二分: 用当前的mid作为每一段的最大值,假如能够将该数列 阅读全文
posted @ 2021-08-03 20:14 ssl_lhj 阅读(65) 评论(0) 推荐(0)
摘要: 题目大意 在平面上有许多建筑物,现在要在x轴上安装雷达,求最少的雷达安装数目。 题目分析 对于任意一个建筑物,都有一个对于它的雷达建造区间,使得它能被雷达探测到。 所以问题转化成:给定n个区间,在数轴上建造尽量少的点,使得每个区间内都至少有一个点。 麻烦的就是怎么获取左右端点的值 根据勾股定理,l= 阅读全文
posted @ 2021-07-29 20:26 ssl_lhj 阅读(38) 评论(1) 推荐(0)