2023.7.14学习日记

模拟:题面长,码量大


例题:小Z铺地砖

思路:贪心+模拟

  • 贪心:填A时,尽可能扩展。对于一个数,若想放更大的,则看下一个能不能填更小的字母,若不能,则放大的/隔离带思想,用BC来隔离A


例题:模拟工厂

思路:贪心+模拟

  • n个订单->n次检查:检查此时库内是否大于gi

  • 设s,p,t,w分别为库存,生产力,在这t时间内,增加生产力x次 目前是第k个订单

  • 可列出方程(p+x)(t_k-x)>=w_k-s ->区间r

  • 二次方程求最大生产力,类状压存储是否选择


例题:Mayan游戏

思路:搜索+模拟

  • 枚举方块->枚举移动->交换/下落->消除->下落

  • 避免多消/少消:从一点向上下左右看能否消除

  • 存图并回溯:last[stp][n][m]来存储第stp步时状态

  • 只扫描发生交换的区域

  • 两个相同颜色的方块没必要交换

  • 先尝试向右,再向左->字典序最小


例题:杀蚂蚁

思路:㚐模拟

流程:

  • 出生->信息素/移动->蛋糕->开火->死亡->清扫战场->游戏是否结束->生长/信息素


例题:鸭棋

思路:纯模拟

流程:

  • 存图->判断合法->判断将军->判断游戏是否结束->输出

注意点:

  • 1.不出界

  • 2.符合移动规则

  • 3.出发点有自己的棋

  • 4.目标点不能有自己的棋


总结

  • 1.多打函数,封装起来

  • 2.多打结构体

  • 3.变量不要太长,重在可以看懂

  • 4.多写注释

2 个赞

我记得这些好像是提高 B1 那个代码训练那节课的题。

1 个赞