第一章 模拟
1.概念
- 模拟就是用计算机来模拟题目中要求的操作。
- 建模就是把事物进行抽象,根据实际问题来建立对应的数:学模型。
- 如果把实际问题建模成数学问题,就会大大地方便计算机来“理解”和“解决”。
2.常见题型
- 基本操作模拟:理解题目操作步骤,用代码准确实现。
- 简单场景模拟:以简单生活或游戏场景为背景,依地图信息和规则,模拟角色移动、探索等行为。
- 复杂系统模拟:模拟复杂系统或机制,如乘车购票,考虑因素相互影响,设计数据结构与算法实现。
- 算法结合模拟:将模拟与数学思维(找规律、快速幂、快排等)等高级算法结合考查。
3.例题
【GESP202403四级T1】相似字符串
【GESP202403四级T1】相似字符串
#include <bits/stdc++.h>using namespace std;int t;string a,b;bool check(string x,string y){ int m=x.size(),n=y.size(); if (abs(m-n)>1) return false; if (m==n){ int tj=0; for (int i=0;i<m;i++){ if (x[i]!=y[i]){ if (++tj>1) return false; } } return tj<=1; } else{ string& s=(m<n)?x:y; string& l=(m<n)?y:x; int i=0,j=0,tj=0; while (i<s.size() && j<l.size()){ if (s[i]!=l[j]){ if (++tj>1) return false; j++; } else{ i++; j++; } } return true; }}int main(){ cin>>t; for (int i=1;i<=5;i++){ cin>>a>>b; if (check(a,b)) cout<<"similar"<<endl; else cout<<"not similar"<<endl; } return 0;}
4.作业
【NOIPS2015A】神奇的幻方
【NOIPS2015A】神奇的幻方