zoukankan      html  css  js  c++  java
  • 浅谈提答题

    我对遗传算法的理解:https://www.cnblogs.com/AKMer/p/9479890.html

    我对模拟退火的理解:https://www.cnblogs.com/AKMer/p/9580982.html

    我对爬山算法的理解:https://www.cnblogs.com/AKMer/p/9555215.html

    (OI)中有三种题型,一种是传统题,就是我们参加(NOIP)写的那种题。然后还有交互题和提答题,这些都是省选或者(NOI)级别的题目。今天我们就来聊聊提答题。

    何为提答题?字面意思,就是要你提交答案的题目。现在的(OJ)中我知道的能做提答题的只有洛谷和(UOJ)(想要练习提答题可以去这两个(OJ))。提答题一般会给你一些(data.in),然后给你一个(checker)(就是你的系统下可运行的可执行文件,小几率会给源码)。然后你需要写一个代码去按照题意跑那些(data.in)来造(data.out)。并且用(checker)来检测(data.out)的正确性。(checker)怎么用一般都会告诉你。所以你只需要把(data.out)搞出来就行了。

    一般提答题都是些贼灵性的题目……在传统题里从未见过的操作都会有,所以碰到提答题不要慌,做好心理准备开始灵性乱搞。

    乱搞一般分为一下几步:

    1、人类智慧

    数据规模小的data.in可以直接用草稿纸和笔推出来。

    2、暴力

    由于时间较长,你可以写一个暴力去爆搞,反正(5h),能跑几分是几分。

    3、暴力优化

    也许在时间的压力下,你可以将你的暴力继续优化以拿到更多的分数。

    4、正解

    4、近似算法

    这个时候,遗传算法,爬山算发和模拟退火等近似算法就很有用了。你可以写一个批处理(如果是(ubuntu)就写(.sh)来用这种近似算法跑提答题。第一遍下来把正确的(data.out)全部移走,然后再跑剩下来的。如此反复这般,就很可能在短时间内拿到很客观的分数了。这种方式比上面(3)种都要快很多,但是缺点是你要对电脑进行操作,而不能像打暴力那样一边挂着一边写其它题。

    来吧,到了比血统的时候了!

    当然,也有一些提答题考的是平常算法的功力,此处就不多说了。毕竟平常算法更是(OI)中的重头戏嘛。

  • 相关阅读:
    第十四周 Leetcode 315. Count of Smaller Numbers After Self(HARD) 主席树
    POJ1050 To the Max 最大子矩阵
    POJ1259 The Picnic 最大空凸包问题 DP
    POJ 3734 Blocks 矩阵递推
    POJ2686 Traveling by Stagecoach 状态压缩DP
    iOS上架ipa上传问题那些事
    深入浅出iOS事件机制
    iOS如何跳到系统设置里的各种设置界面
    坑爹的私有API
    业务层网络请求封装
  • 原文地址:https://www.cnblogs.com/AKMer/p/9600404.html
Copyright © 2011-2022 走看看