Appearance
我现在在考虑的一个问题是:怎么反制反AI?
反AI判断AI是模板化的
反制反AI,让AI具有个人特色,替代个人完成任务,不必被指称使用AI。
ACM算法题:
用有限的样例代替无限的情况
研究有限、简单而充分的情况来代替无限
重点研究简单而又经典的情况
这样适合学习算法和研究、可视化算法的执行过程
研究AI辅助学习的最佳实践:
(Claude优秀讲解示例)
AI手动验证简单样例
让AI辅助绘画代码流程图(控制流、循环)
核心理解:组合生成的递归过程
为什么是 dfs(i + 1, cnt + 1)?
这是在生成组合(不是排列),关键点:
i + 1:下一次从i+1开始选,避免重复cnt + 1:已经选了cnt+1个狼人
图解示例(N=5, M=3)
目标:从5个人中选3个狼人
dfs(1, 0) // 从位置1开始,已选0个
│
├─ ww[0]=1, dfs(2, 1) // 选了1号,下次从2开始
│ │
│ ├─ ww[1]=2, dfs(3, 2) // 选了2号,下次从3开始
│ │ │
│ │ ├─ ww[1]=3, dfs(4, 3) // 选了3号,cnt=3停止 → [1,2,3]
│ │ ├─ ww[1]=4, dfs(5, 3) // 选了4号,cnt=3停止 → [1,2,4]
│ │ └─ ww[1]=5, dfs(6, 3) // 选了5号,cnt=3停止 → [1,2,5]
│ │
│ ├─ ww[1]=3, dfs(4, 2) // 选了3号,下次从4开始
│ │ ├─ ww[2]=4, dfs(5, 3) → [1,3,4]
│ │ └─ ww[2]=5, dfs(6, 3) → [1,3,5]
│ │
│ └─ ww[1]=4, dfs(5, 2)
│ └─ ww[2]=5, dfs(6, 3) → [1,4,5]
│
├─ ww[0]=2, dfs(3, 1) // 选了2号,下次从3开始
│ ├─ ww[1]=3, dfs(4, 2)
│ │ ├─ ww[2]=4 → [2,3,4]
│ │ └─ ww[2]=5 → [2,3,5]
│ └─ ww[1]=4, dfs(5, 2)
│ └─ ww[2]=5 → [2,4,5]
│
├─ ww[0]=3, dfs(4, 1)
│ └─ ww[1]=4, dfs(5, 2)
│ └─ ww[2]=5 → [3,4,5]
│
...