zoukankan      html  css  js  c++  java
  • 2016.10.29初中部上午NOIP普及组比赛总结

    2016.10.29【初中部 NOIP普及组 】模拟赛

    做得好爽!


    进度
    比赛:35+45+AC+0=180
    改题:AC+AC+AC+0=300


    幸运的数
    有点无语……之前怕超限,还特意利用程序打了一个数据库,
    还被老师发现,尴尬了好一阵子……因某些细节而35分,
    并且……不用常量数据库也能简简单单地过!无语ing……
    题目简化
    幸运数就为4或7组成的数的倍数,仅此而已……
    比赛思路
    见上↑
    有点像二进制一样。
    正解
    用递归在程序内生成数据库,就不怕人家看你代码长了。
    其他一样,不多说。


    整人的方程
    这题做得特别爽!不过,也有不爽的地方。
    题目简化
    让程序解一元一次方程!
    这个方程没乘除没乘方(当然,在这里,比如3x省略乘号的不算)
    比赛思路
    一个一元一次方程左右两边都是整式。
    每个整式又可以变成几个单项式的和。
    所以,我们可以把它们当成一个一个单项式存起来。
    怎么把它当成单项式呢?在这里的单项式可以由系数和字母组成,
    反正字母一样、指数一样,就弄一个布尔类型来存这里有没有字母。
    还有一个整型存系数。
    处理好左式和右式的单项式后,
    我就分别化简(后来事实证明直接合并同类项速度还快些),
    把含x项放左一的格子里,把不含x项放右一的格子里。
    最后直接系数化一,输出答案。
    错因
    我也想不清是什么回事。
    我想不通为什么当时我要在答案那里加个abs。
    所以悲惨地答案错误。
    正解
    同上↑


    233 计数
    此时感受如题。
    题目简化
    一串长度为n的”233”串,
    能由”233”“2333”“23333”等组成
    但是2的个数必须为1,3的个数在2或2以上。
    比赛思路
    我原本想要打爆搜,可是1<=n<=10^6
    爆搜一定会爆炸,所以我就想递推的方法。
    因为3的个数在2或2以上,所以有时候全排列还有不同的情况。
    可以分成三种:

    1. 末尾没有3的。
    2. 末尾有一个3的。
    3. 末尾的3够的。

    当然,这要保证除最后的233串之外,
    其他的全部符合233串的规则。
    所以,设
    f[i,0]为长度为i时后面0个3(2),
    f[i,1]为长度为i时后面1个3(23),
    f[i,2]为长度为i时后面2个或以上个3(233,2333,23333……)。
    因为要保证前面的要符合规则,所以
    f[i,0]:=f[i-1,2];(f[i-1,2]是符合规则的,直接加2)
    f[i,1]:=f[i-1,0];(在2后加一个3)
    f[i,2]:=f[i-1,2]+f[i-1,1];(原来够的加上末尾为23的,让它们加3成立)
    结果输f[n,2]
    正解
    听说我的这个方法只是其一,貌似还有更好的方法。

    gjy’s idea:
    设f[i]为长度为i的个数
    f[i]:=f[i-1]+f[i-3];
    i-1是直接加3,i-3是直接加233。


    流浪者的叹息
    我不会告诉你我是来不及做的,
    即使有时间也难做出。
    施工中……


    题外话
    1. 初赛还好过了。
    2. 今天有many低级错误。

  • 相关阅读:
    PT100高精度测温电路 AD623+REF3030(转)
    STM32|4-20mA输出电路(转)
    串口通讯数据处理算法分析与实现(转)
    stm32_CAN总线知识(转)
    图像的灰度级和动态范围(转)
    图像bayer格式介绍以及bayer插值原理CFA(转)
    用oracle建表,必须注意Oracle 关键字(保留字)
    爬虫的定向爬取与垂直搜索
    开源的网络爬虫以及一些简介和比较
    SQL中的等号、IN、LIKE三者的比较
  • 原文地址:https://www.cnblogs.com/jz-597/p/11145328.html
Copyright © 2011-2022 走看看