JZOJ.1747【NOIP2014模拟11.5】无穷迷宫

比赛时

比赛时没多想,随便打了一个BFS,把迷宫复制成五份——上下左右中,然后跑BFS,如果能从1个S跑到另1个S,就可以无尽走下去否则不可以,WA30。

之后

其实,有一种特殊情况没有考虑例如下面这个:

##.#######.#
#..#......S#
#.#..#######
..#.###.....
##..##..####
#..##..#####
..##..#.....
###..##.####
##..#...####
#..##.######
..##..####..
##...#####.#

我们发现,如果按照我的方法复制5份,是无法到达另一个S点的,但是在下面多复制几份,就发现可以。正解:也是BFS,可以无尽走下去就说明出现了环(相对位置——小矩阵,形成的环。也就是说相对位置形成的以S点路径上有两个相同的点),而且绝对位置——大矩阵不出现重复,由于相对位置不同的点只有\(NM\)个所以时间复杂度为\(O(Tnm)\)。这个正解我现在还没看太懂,呵呵呵

总结

手模很有用,可以出一些坑的数据来测试程序。做题时要仔细想清楚特殊情况!!!


JZOJ1478.【NOIP2014模拟11.5】近似乘积

比赛时

我最讨厌这种数学题,尤其是这种涉及到优化循环的数学题,很显然,如果不加优化地枚举\(x\),\(y\),\(z\),会在\(40\)~\(70\)分左右,于是决定先干完T3再回来打暴力。可惜:最后没来得及。

之后

这题的做法同学们有两个

  1. 同样是枚举\(x\),\(y\),\(z\)。但是要加上一些判断条件来优化。第一个——\(x*x*x<=n\),因为我们枚举的时候是\(x \leq y \leq z\),而\(x*x*x>n\)的时候,当前\(x\)的最优答案必定是\(x*x*x\),后面两重循环枚举的顶多相等或是越来越大,差值也就越来越大。第二个——\(x*y*y \leq n\),其实这个式子和上面的原理是差不多的。所以说,这个方法的上限时间复杂度是\(O(\sqrt[3]{n}*\sqrt{n}*n)\),但实际上会小很多,可以过(不只是数据太水还是算法本身够快,有兴趣打大佬可以来仔细算算时间复杂度)

  2. 这是一个稳定的算法,虽然实际时间没有上面的快。处理出一个\(B\)数组,表示可用的数字,范围是\(1\)~\(n\),再加上第一个\(>n\)且可用的数字。两重循环枚举\(x\),\(y\)(当然是在\(B\)里面枚举),保证\(x<=y\&\&x*y \leq n\),然后二分求出第一个使得\(x*y*z \geq n\)的\(z\),那么答案有可能是\(z\),也有可能是\(z-1\),判断一下即可,还需要注意的是这里求出的\(z\)有可能比\(x\)或\(y\)小。时间复杂度的上限是\(O(\sqrt n*n*\log_2n)\),同样的,我们也可运用上面的判断条件加以优化,上限即\(O(\sqrt[3] n* \sqrt n*\log_2n)\),看起来超快?实际我们求\(B\)数组也需要一些时间最多是需要\(2000000\)(如果人家故意卡你的话),\(O(\sqrt[3] n* \sqrt n*\log_2n*2n)\),这才是真的!!!当然,这个算法可以过!!!

总结

看到我最讨厌的这种题,也不要灰心丧气,可以从中找出一些优化的方法,拿高分就不在话下了。


JZOJ3926. 【NOIP2014模拟11.5】开关灯

比赛时

我老以为这题很难,在哪儿又想DP又想网络流,最后没想到,打了个暴力——统计每一列0的个数(初始状态和期望状态都要),对于每一列判断是否相等或者与期望状态这一列的0的个数相加等于\(n\),如果相等直接跳过,相加等于\(n\)就按一下按钮,如果两个条件都满足,就递归按或不按,到递归出口时,\(n*nl\)的暴力看一下两行交换是否能达到最终状态。

之后

这题可以用二进制来做,对于每行用一个\(long \ long\)来存,我们枚举原本状态的第一行与目标状态的第几行匹配,异或代表这两行的数,得到一个数\(c\),每\(i\)位为1就表示第\(i\)列要按,否则不按。然后把原本状态的每行异或一下这个数,这样就可以求出按后的状态,再把按后的与目标的进行匹配,匹配成功且按的次数少的就更新答案,注意要把按后的状态再按回来。时间复杂度\(O(n^3)\)。

纪中集训2020.02.09【NOIP提高组】模拟B 组总结反思的更多相关文章

  1. 纪中集训2020.02.05【NOIP提高组】模拟B 组总结反思——【佛山市选2010】组合数计算,生成字符串 PPMM

    目录 JZOJ2290. [佛山市选2010]组合数计算 比赛时 之后 JZOJ2291. [佛山市选2010]生成字符串 比赛时 之后 JZOJ2292. PPMM 比赛时 之后 JZOJ2290. ...

  2. 纪中集训2020.02.03【NOIP提高组】模拟B 组总结反思——登机(board),游戏(game),分组(group)

    T1 JZOJ5535. 登机(board) 比赛时 一在题目列表里看到题目标题,就热血沸腾了,不知道为什么,老师居然放了一道之前做过的题目.我清楚地记得这题是DP,于是很快码了出来.讲一讲我的思路, ...

  3. 「中山纪中集训省选组D1T1」最大收益 贪心

    题目描述 给出\(N\)件单位时间任务,对于第\(i\)件任务,如果要完成该任务,需要占用\([S_i, T_i]\)间的某个时刻,且完成后会有\(V_i\)的收益.求最大收益. 澄清:一个时刻只能做 ...

  4. 纪中集训总结 && 新学期目标

    于是紧接着又发了第二篇. 关于这次去完纪中以后的感想,写完后总觉得少了些什么,因此就发一篇小目标集合来凑数补充一下吧. Part I:图论 这方面我去之前就是很有自信,事实证明像基础的最短路.生成树什 ...

  5. 纪中集训 Day 0?

    好吧昨天的等到今天才来写,现在超不想刷题,来写下blog吧= = 坐了近10H的火车终于来到了中山市 火车上在看空之境界,等有时间补下动画吧= = 到了宿舍各种不习惯(现在才发现还是母校好QAQ)然后 ...

  6. 纪中集训 Day 2

    今天(其实是昨天= =)早上起来发现好冷好冷啊= = 吃完饭就准备比赛了,好吧B组难度的题总有一道不知到怎么写QAQ 太弱了啊!!! 蒟蒻没人权啊QAQ 今天第4题不会写,在这里说说吧 题目的意思就是 ...

  7. 纪中集训 Day1

    今天早上起来吃饭,发现纪中伙食真的是太差了!!!什么都不热,早餐的面包还好,然后就迎来了美好的早晨= = 早上做一套题,T1T2果断秒,T3一看就是noi原题,还好看过题解会写,然后就愉快的码+Deb ...

  8. 【纪中集训】2019.08.02【NOIP提高组】模拟 A 组TJ

    \(\newcommand{\RNum}[1]{\uppercase\expandafter{\romannumeral #1\relax}}\) T1 一道可以暴力撵标算的题-- Descripti ...

  9. 纪中OJ 2019.02.15【NOIP提高组】模拟 B 组 梦回三国 比赛题解(第一个)

    声明 旁边的同学小 H(胡)对我说: “哟,比赛拿了 140,强!要知道,如果哥第三题 AC 了,哥就 230 了,你个废柴!!!(比赛实际分数 130 额呵)” 顿时,千万草泥马从我心中奔腾而过:你 ...

随机推荐

  1. 如何准备Java面试?如何把面试官的提问引导到自己准备好的范围内?

    Java能力和面试能力,这是两个方面的技能,可以这样说,如果不准备,一些大神或许也能通过面试,但能力和工资有可能被低估.再仔细分析下原因,面试中问的问题,虽然在职位介绍里已经给出了范围,但针对每个点, ...

  2. 死磕java(2)

    java数据类型 boolean --true--false byte --8位 short --16位 int --32位 long --64位 char float --32位 double -- ...

  3. 初见shell

    在写了一段时间的java后,发现要一次性执行多个java很麻烦,因此想到了用shell脚本去调用.但是因为之前没有学过shell,所以一切都是重新开始.在此,简单的记录下意思的基础性知识. 参数相关的 ...

  4. POJ_2593_DP

    http://poj.org/problem?id=2593 和2479一样. #include<iostream> #include<cstdio> #define MIN ...

  5. HDU 1005 Number Sequence(矩阵快速幂,快速幂模板)

    Problem Description A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1 ...

  6. Go语言实现:【剑指offer】数据流中的中位数

    该题目来源于牛客网<剑指offer>专题. 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值.如果从数据流中读出偶数个数值,那么中位 ...

  7. 在yum安装lamp的环境下安装coreseek以及php的sphinx扩展

    首先说明下,之前的lamp环境用yum快速安装的现在装一个coreseek学习学习: 在安装前建议安装下这四个东西,以免后续安装报错 $ curl -O -L http://mirrors.kerne ...

  8. Python3(六) 面向对象

    一.类的定义 1. class Student():     name = ' ' #定义变量     age = 0     def print_file(self):     #定义函数      ...

  9. Centos 下设置静态ip地址

       今天小编遇到了需要设置centos(6.4) 下静态ip地址,下面把详细步骤记录下来. 1> 首先打开这个 vi /etc/sysconfig/network-scripts/ifcfg- ...

  10. docker 镜像save和转换

    docker save出来的tar包转成镜像 $ docker load < busybox.tar.gz 使用import转的镜像里面是空的,无法启动 报错如下Error: Error res ...