OI学习日志 6月份

前记:

  • 以此记录自己每次的学习,希望不要懈怠,也作一个每日总结和错误警示用
  • 请记录者注意不要放置生活吐糟之类内容
  • 色批行为不算

2021.6.20

  •  通过了【YZOJ 2316】
  • 【YZOJ 1170】完成了一部分,debuging
  • 学习了多重背包的解决方法,倍增分离物品
  • 重温了许久未用的01背包、无限背包(好像不是这个名字),所幸没有遗忘
  • 注意:题目中的用词,可能 代表只要可以满足就可以,并不是最优方案就是这个,编码的时候没有考虑到
  • “*好*” 每日打卡(1/1)

2021.6.27

  • debuging【YZOJ 1170】两个点怎么都出不来,绝望
  • 似乎又回到了以前垃圾的代码水平了嘤(也有可能是因为今晚心情实在过于复杂了)
  • 注意:计算中途可能考虑到数值会越界,记得判断
  • “*好*” 每日打卡(1/1)

2021.6.29

  • 通过了【YZOJ 1170】
  • 以后务必思考为什么会出错,而不是关注在为什么差了这么一截
  • 意识到自己把两个概念混淆了——倍增lca和多重背包的物品分离。若把某物n分为尽量少的小份且这些小份可以通过组合吧n给表示出来,应该是从小到大用二进制分解然后再选取,毕竟这样才能表示到二进制的每一位
  • 顺带复习了一下lca
  • 意识到自己基础不是很扎实
  • “好”每日打卡(1/1)

2021.6.30

  • 通过了【YZOJ 5123】
  • 【YZOJ 5123】我当初考虑的时候,思维局限在动态规划上,一直在想拉x个地区最优方案推式子。其实也有考虑到堆,但是由于功底不扎实+没想通所以否掉了。这道题的核心应该在于1.一个地区可以白嫖的条件(这个其实有想到类似的东西,也就是当c=n的时候这个地区必须贿赂了,如果细分析下去,就可以得出n和ci的关系了)2.每次要贿赂的对象。但这个对象和当前进行到了一个白嫖等级没有关系,这个部分是择最小,包括选择之前已经满足白嫖条件的地区。我思维一个很大的毛病就是会陷入一些死胡同出不来。比方说这一次就一直在纠结,从前面选的话,万一后面有更优呢?这样就导致两边互相牵制,不知道怎么选择最优。这次的思维干扰应该和白嫖等级为0这一条件有关。但这道题切入点应该是“等级为n的人必须选”因为这个是起到了对于结果的直接限制。从而推导到不同等级的人,在他们之前的人数少于多少个就一定要选呢。另外一点,到一定要选的时候,又是变成择优了,这个其实当初也想到了。整道题下来,并没有去直接考虑,哦,我贿赂这个城市,可以有多少收益,比起我贿赂那个城市怎么样
  • 认真学习了倍增lca
  • 注意:多组数据T,每次memset时候记得考虑会不会因为数组过大而导致超时,也就是T很大但每组的n很小

原文地址:https://www.cnblogs.com/djww/p/14907832.html