8.6考总
分数
一期的最后一次总结,写好点吧
| T1 | T2 | T3 | T4 | T5 | T6 | 总分 |
|---|---|---|---|---|---|---|
| 28pts | 50pts | 56pts | 100pts | 0pts | 0pts | 234pts(bushi |
T1
我的思路:
用三个前缀和数组统计出将第一行到第i行分别涂成白色,红色,蓝色所需的价值,然后枚举前两个颜色,剩下的全涂成第三种颜色,用前缀和计算求出最大值即可。
考时记录:https://www.luogu.com.cn/record/171021045
错误原因:
纯属眼瞎
AC记录:https://www.luogu.com.cn/record/171024003
T2:
我的思路:
枚举每一秒的时间,用两个指针lt和rt记录A和B吃到哪了,枚举即可。
错因:
T飞了︿( ̄︶ ̄)︿
枚举的效率显然太慢了。
考时记录:https://www.luogu.com.cn/record/171021096
正解:
实际上可以一个一个元素枚举,这样可以大大优化。
AC记录:https://www.luogu.com.cn/record/171029606
T3:
我的思路:
前缀和预处理一遍,暴力枚举左右端点,求maxi。
错因:
显然的
考时记录:<https://www.luogu.com.cn/record/171021370
正解:
无
能发现,如果一个区间能被7整除,那么左端点的前缀和鱼右端点的前缀和一定同余,所以在前缀和的时候统计余数,再用lt和rt枚举出每个余数最左和最右出现在哪里,求maxi。
AC记录:https://www.luogu.com.cn/record/171021358
T4
我的思路:
用vector存储每艘船的成员信息,用队列存储船,在用map统计,每次来一艘新船之后将超时的船全部弹出,减掉他的贡献后输出。
AC记录:https://www.luogu.com.cn/record/171023921
T5
没写
正解
dp[i][j]:将a的前i个字符转为b的前j个字符的最小步数。
答案dp[a.len][b.len]
状态转移方程:
ifcase:a[i]==b[j]:
dp[i][j]=dp[i-1][j-1](不用改)
else
dp[i][j]=min:
dp[i-1][j-1]+1(改一个)
dp[i-1][j]+1(删一个)
dp[i][j-1]+1(加一个)
边界
将a的前i位改成b的前0位要i步
将a的前0位改成b的前i位要i步
AC记录:https://www.luogu.com.cn/record/171026503
T6
同上没写
一种比较新奇的思路:
递归实现:
可以发现这是一个二进制问题,因为任何数都能拆解成2的幂次方所以有了如下思路
如果x=1, 则添加一个1即可,结束
如果x=2,则添加两个1,合并,结束
若x mod 2=0,则x可以通过两个数相加,递归x/2,输出一次复制,一次相加
其他情况则只能+1得到x,递归x-1,输出一个1和一个合并。
AC记录:https://www.luogu.com.cn/record/171266614
本人(KK_SpongeBob)蒟蒻,写不出好文章,但转载请注明原文链接:https://www.cnblogs.com/OIer-QAQ/p/18575260

浙公网安备 33010602011771号