zoukankan      html  css  js  c++  java
  • 一些常用术语

    1.打表

    打表,是一个信息学专用术语,意指对某种找规律等题目,直接输出答案。这种算法也在对某种题目没有最优解法时,用来得到分数的一种策略。

    打表一般分为两步:找到答案与输出答案。
    找到答案的方式
    一、通过找规律,找出对于每个输入数据n,f[n]的最终结果。
    常见题目有费波纳契数列等;
    二、通过暴力搜索,找出对于数据的答案,适用于数据较大,题目简单的情况;
    三、通过手算,找出每个数据的答案,适用于数据较小且题目较难的情况。
    输出答案的方式
    一、直接把打表程序加上输入输出提交:耗时大,程序占用空间小;
      
    二、把打表的数据放入程序,加上输入输出提交:耗时O(1),程序占用空间大。
    直接带入数据的打表占用空间大

    直接带入数据的打表占用空间大

    打表的技巧

    1、可把一些相差不大的数据化为与上一段之差:
    例如: f[i]储存为f[i]-f[i-1]
    输出时以前缀和形式输出。
    2、分段打表。
    把数据分为几段,每段根据输入数据,找到相应倍数进行输出。
     
    就是在数据比较小的时候,比如测试数据只有一到一百的情况,你就可以先全部在自己的机子上算好,存入一个数组,交的时候只要cin>>n;cout<<a[n]<<endl;
  • 相关阅读:
    常见限流算法
    spring aop 事物
    Java序列化和反序列化为什么要实现Serializable接口
    java类在何时被加载?
    mysql 排序 是怎么工作的?
    程序员转正述职报告
    .NET中使用Channel<T>
    .NET-服务承载系统(Hosting)(支持Cron表达式)
    JObject拼接Json字符串
    NET5 使用FTP发布
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/3797641.html
Copyright © 2011-2022 走看看