动态规划

动规解题的一般思路 将原问题分解为子问题 把原问题分解为若干个子问题,子问题和原问题形式相同或类似,只不过规模变小了。子问题都解决,原问题即解决(数字三角形例)。 子问题的解一旦求出就会被保存,所以每个子问题只需求解一次。 ...

May 21, 2022 · 1 min · Cyan

Python OI 基础(语言篇)

基本 输入 def cin1(): return [int(i) for i in input().split()] def cin2(): return map(int, input().split()) def cin3(): return list(map(int, input().split())) # 输入一个常数 n, = cin() # 注意',' m, n = cin() # 输入一个数组 arr = cin() # 注意cin2会返回map对象 输入输出重定向 使用操作系统的重定向 python script.py < input > output Python 与 STL Python 标准库 — Python 3.8.12 文档 本人出身于C/C++,这里用类STL表示Python中可利用的built in lib priority queue (heap) 优先队列往往用堆来实现。优先队列 - 维基百科 from heapq import * vector arr = list() arr = [0]*n arr = [[0]*n for _ in range(m)] set set_ = set() set_ = {1, 2, 3} map from collections import Counter, defaultdict arr = [1, 1, 2, 2] counter = Counter(arr) # 计数 defaultdict_ = defaultdict(lambda: -1) # 默认字典 dict_ = dict() dict_ = { 1: 2, 2: 4 } dict_ = {i: i for i in range(5)} stack 5....

April 8, 2022 · 1 min · Cyan

背包问题

前言 在21年我第一次学习动态规划算法的时候,HQ学长安排的入门题目即是背包。直至前不久我只把背包当成一种有限的题目来看,未想还有如此讲究。 实际上,有很多问题可以规约为一个背包问题。 ...

April 8, 2022 · 1 min · Cyan