模拟题

模拟。顾名思义,就是用计算机来模拟题目中要求的操作,比如 NOIP 2014 的 生活大爆炸版石头剪刀布 ,只需要按照题面的意思来写就可以了。

当然,模拟并不总是很好写,参见经典题目 魔兽世界 和 猪国杀 。

模拟题目通常具有码量大、操作多、思路繁复的特点。并且由于它码量大,会导致很难查错,如果在考试中写错是相当浪费时间的。

所以写模拟题,遵循以下的建议有可能会帮助你提升做题速度:

  1. 在动手写代码之前,在草纸上尽可能地写好要实现的流程;
  2. 在代码中,尽量把每个部分模块化、写成函数、结构体或类;
  3. 对于一些可能重复用到的概念,可以统一转化,方便处理:如,某题给你 "YY-MM-DD 时:分" 把它扔到一个函数处理成秒,会减少概念混淆;
  4. 调试时分块调试,模块化的好处就是可以方便的单独调某一部分;
  5. 写代码的时候一定要思路清晰,不要想到什么写什么,要按照落在纸上的步骤写。

实际上,上述步骤在解决其它类型的题目时也是很有帮助的。

一、倒序模拟
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解题代码:

复制代码
#include<iostream>
#include<math.h>
using namespace std;

int main()
{
    int t,i=0;
    long long m;
    cin>>t>>m;    //操作次数和最终的数
    long long opt[t],x[t];
    for(i=0;i<t;i++){//用数组依次记录opt[i]与x[i] 
        cin>>opt[i]>>x[i];
    }
    for(i=t-1;i>=0;i--){//倒叙模拟
        switch(opt[i])
        {
            case 1:m=m-x[i];break;
            case 2:m=m+x[i];break;
            case 3:m=m/x[i];break;
            case 4:m=m*x[i];break;
            default : break; 
        }        
    }
    cout<<m<<endl; 
    return 0;
 } 
复制代码

解题思路:注意运用数组思想进行每轮数据的依次存储,不要与模拟手算混淆。

posted @   Tomorrow1126  阅读(156)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
点击右上角即可分享
微信分享提示