嚯嚯嚯!补题!
补题: 6题/12题
- 计算几何
- 构造
- 线段树
- 分类讨论
- 逆元
- 组合数学
A. Character Encoding
组合计数的隔板法,是将n个木棒分成m组。这样就是在n-1个空隙中插入m-1个隔板,就是c(n-1, m-1)。现在这个k的组合如果没有上界就是一个隔板问题,是将k个木棒分成m份。由于分成的数可以为0,那么就要额外加入m条木棒,以便插板的时候能分出来0。处理完之后这样有k+m-1个空隙,插入m-1个隔板,就是c(k+m-1,m-1)
所以数学的题目,很多都是思路的问题,只要想清楚了,编码就很简单;
感谢WYM的讲解啦!
|
|
B. Pizza Hub
画了一下图,分类的情况很多,每种情况需要我分别判断,同时计算这个高度的方法也是不同的
不过看标程,貌似也没有那么多种分类的问题,可是代码看不懂!
|
|
D. Parentheses Matrix
首先,第一行、最后一列中最多只有一个能够匹配,第一列、最后一行也只有一个能够匹配(考虑右上角和左下角的括号选取方法),故答案不会超过 w+h−2。
当 h = 2 时,每一列可以构造一对匹配,这样答案已经到达上界。
当 h = 4 时:
|
|
这样答案是 w+h−3。
当 h ≥ 6 时,可以如下构造:
|
|
答案是 w+h−4。
面向数据编程的代码:
|
|
E. Magic Square
模拟题,C语言题;
让我都不敢写了
|
|
J. Taotao Picks Apples
为博博的线段树鼓掌!
比赛中的思路:
首先,如果这个点在原串中,就是会被吃的,我们称作为关键点;
预处理,dp数组表示包含这点且从这点开始到尾部的严格上升序列的长度
- 修改第一个点
- 寻找之后大于它的第一个点pos,
1+dp[pos]
- 寻找之后大于它的第一个点pos,
- 是关键点
- 如果这个数比此点的之前的最大值【这个最大值的位置为pos】还要大的时候,说明,此点不会被取;则
dp[1]-dp[pos]+1
就是此点的值;然后我们寻找在此点之后,第一个大于前面找到的最大值的位置【pos2】,则后面的长度就是dp[pos2]
;两者相加就是结果! - 如果这个点【idx】的值比之前序列的最大值还要大的时候,此点必取;找到之后比此值还要大的位置【pos】,则长度为
dp[1]-dp[idx]+1+dp[pos]
- 如果这个数比此点的之前的最大值【这个最大值的位置为pos】还要大的时候,说明,此点不会被取;则
- 不是关键点
- 如果比之前的最大值要小,说明对原序列没有影响
- 否则的话,寻找在此之前比这点小的最大值(若均相同的时候,取下标小的)【pos】,寻找这点之后比这点大的第一个点【pos2】,则长度为
dp[1]-dp[pos]+1+dp[pos2]
看了题解后的思路:
不过不明白:
“到达最大值需要几步”
以及不会做:
使用 ST 维护信息
等我上一场的ST学完后,再来看;
思路是这样的:
先处理从后向前的dp,找到在此右边第一个比他大的数的位置【pos】;若找不到,则dp[i]=1
;否则的话,dp[i]=dp[pos]+1
然后对于每一次查询,寻找[1 , idx-1]
的最大值的位置【pos】,比较这个值和新修改的值
- 如果新修改的值小于等于
a[pos]
的话,则找到在此右边第一个比a[pos]
大的数的位置【pos2】,ans=dp[1]-dp[pos]+1+dp[pos2]
- 否则的话,则找到在此右边第一个比新加的数大的数的位置【pos】,
ans=dp[1]-dp[pos]+1+1+dp[pos2]
所以我们需要一个寻找[l,r]
区间的第一个大于val的值的位置的函数
这个可以用线段树维护
|
|
L. From ICPC to ACM
主要是题目的变量太多了,晕乎乎的
模拟题
- ci 做一台电脑(即一单元)的材料费
- di 当月需要的电脑台数
- mi 组装一台电脑的钱
- pi 当月最多可以组装成的电脑数
- ei 当月最多可以储存的电脑数
- Ri 当月存储一单元材料的钱
- Ei 当月存储一电脑的钱
但是实际上,对于材料我们可以在其$\displaystyle c[i]+\sum^{i-1}_{k=j}R[k]$ j表示购买的日期,如果我用前缀和RR[i]
处理过数组以后,算式就变成$\displaystyle c[i]+RR[useday]-RR[i-1]$
所以我用了一个变量存储$c[i]-RR[i-1]$,这样在使用的时候,只要加上$RR[useday]$即可!
然后,对于这个月我最多可以做p[i]
台,然后和仓库里的排序,看钱谁最少。这里用了优先队列。
判断队列的个数是否达到此月标准,若不可以,则直接返回-1;
否则,需要更新ans值;
同时更新队列:我们需要将队列中的所有的电脑数的和控制在当月仓库允许的范围内;同时将cost值增加放置一台电脑所需要的价钱。
|
|
碎碎念
2018.08.16 下午
空调房冻死!
银行卡顺利被我冻结了!
嚯嚯嚯!找时间出门啦!
转载请注明出处,谢谢。
愿 我是你的小太阳