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)中的重头戏嘛。

  • 相关阅读:
    ruilei.cnblogs 访问量突破20万
    VSTS2008 Load Test Agent
    失落的星球 Lost Planet 秘籍
    C#去除特殊字符串
    Linq Coding Part Nine(IEnumerable、IQueryable、Set)
    Web Services Software Factory tutorial (1 of 5)
    迅雷新闻快讯区JS代码剖析
    Interfaces Topic
    前台如何调用后台事件
    [关注]个税起征点8000元什么时候到来?
  • 原文地址:https://www.cnblogs.com/AKMer/p/9600404.html
Copyright © 2011-2022 走看看