纪中集训2020.02.09【NOIP提高组】模拟B 组总结反思
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再回来打暴力。可惜:最后没来得及。
之后
这题的做法同学们有两个
同样是枚举\(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)\),但实际上会小很多,可以过(不只是数据太水还是算法本身够快,有兴趣打大佬可以来仔细算算时间复杂度)
这是一个稳定的算法,虽然实际时间没有上面的快。处理出一个\(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 组总结反思的更多相关文章
- 纪中集训2020.02.05【NOIP提高组】模拟B 组总结反思——【佛山市选2010】组合数计算,生成字符串 PPMM
目录 JZOJ2290. [佛山市选2010]组合数计算 比赛时 之后 JZOJ2291. [佛山市选2010]生成字符串 比赛时 之后 JZOJ2292. PPMM 比赛时 之后 JZOJ2290. ...
- 纪中集训2020.02.03【NOIP提高组】模拟B 组总结反思——登机(board),游戏(game),分组(group)
T1 JZOJ5535. 登机(board) 比赛时 一在题目列表里看到题目标题,就热血沸腾了,不知道为什么,老师居然放了一道之前做过的题目.我清楚地记得这题是DP,于是很快码了出来.讲一讲我的思路, ...
- 「中山纪中集训省选组D1T1」最大收益 贪心
题目描述 给出\(N\)件单位时间任务,对于第\(i\)件任务,如果要完成该任务,需要占用\([S_i, T_i]\)间的某个时刻,且完成后会有\(V_i\)的收益.求最大收益. 澄清:一个时刻只能做 ...
- 纪中集训总结 && 新学期目标
于是紧接着又发了第二篇. 关于这次去完纪中以后的感想,写完后总觉得少了些什么,因此就发一篇小目标集合来凑数补充一下吧. Part I:图论 这方面我去之前就是很有自信,事实证明像基础的最短路.生成树什 ...
- 纪中集训 Day 0?
好吧昨天的等到今天才来写,现在超不想刷题,来写下blog吧= = 坐了近10H的火车终于来到了中山市 火车上在看空之境界,等有时间补下动画吧= = 到了宿舍各种不习惯(现在才发现还是母校好QAQ)然后 ...
- 纪中集训 Day 2
今天(其实是昨天= =)早上起来发现好冷好冷啊= = 吃完饭就准备比赛了,好吧B组难度的题总有一道不知到怎么写QAQ 太弱了啊!!! 蒟蒻没人权啊QAQ 今天第4题不会写,在这里说说吧 题目的意思就是 ...
- 纪中集训 Day1
今天早上起来吃饭,发现纪中伙食真的是太差了!!!什么都不热,早餐的面包还好,然后就迎来了美好的早晨= = 早上做一套题,T1T2果断秒,T3一看就是noi原题,还好看过题解会写,然后就愉快的码+Deb ...
- 【纪中集训】2019.08.02【NOIP提高组】模拟 A 组TJ
\(\newcommand{\RNum}[1]{\uppercase\expandafter{\romannumeral #1\relax}}\) T1 一道可以暴力撵标算的题-- Descripti ...
- 纪中OJ 2019.02.15【NOIP提高组】模拟 B 组 梦回三国 比赛题解(第一个)
声明 旁边的同学小 H(胡)对我说: “哟,比赛拿了 140,强!要知道,如果哥第三题 AC 了,哥就 230 了,你个废柴!!!(比赛实际分数 130 额呵)” 顿时,千万草泥马从我心中奔腾而过:你 ...
随机推荐
- python笔记13
今日内容 装饰器 推导式 模块[可选] 内容回顾 函数 参数 def (a1,a2):pass def (a1,a2=None):pass 默认参数推荐用不可变类型,慎用可变类型. def(*args ...
- 五、spring源码阅读之ClassPathXmlApplicationContext加载beanFactory
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-config.xml&q ...
- CAD制图系列一之绘图、标注、修改、视图
笔记内容: 缩放.平移.键盘操作 绘图:直线.矩形 修改:删除.修剪.延时 标注:线型.对齐.半径.折弯.直径.角度 知识点 鼠标中键上下滚动 平移:先全部选中,然后点击中间的空格,随便移动 重点:空 ...
- 构建一个学生Student,根据类Student的定义,创建五个该类的对象,输出每个学生的信息,计算并输出这五个学生Java语言成绩的平均值,以及计算并输出他们Java语言成绩的最大值和最小值。
定义一个表示学生信息的类Student,要求如下: (1)类Student的成员变量: sNO 表示学号: sName表示姓名: sSex表示性别: sAge表示年龄: sJava:表示Java课程成 ...
- CSS 对于grid布局的理解,举例代码及解释
网格布局介绍: CSS Grid(网格) 布局(又称为 “Grid(网格)” ),是一个二维的基于网格的布局系统它的目标是完全改变我们基于网格的用户界面的布局方式.CSS 一直用来布局我们的网页,但一 ...
- random模块学习笔记
import random #生成随机浮点数(0到1,没有参数) rf1= random.random() #生成随机浮点数(指定区间) rf2=random.uniform(1,4) #浮点数保留指 ...
- angularJS 传参的四种方法
AngularJS - Passing data between pages 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:Ye Huang链接:https://www.z ...
- 达梦数据库-RAC-DMDSC部署的关键点
达梦数据库-RAC-DMDSC部署的关键点 环境准备 网络准备(ip地址分配).共享磁盘准备和挂载 ifconfig enp0s8 10.1.2.101;ifconfig enp0s9 192.168 ...
- linux中查看nginx、apache、php、mysql配置文件路径
linux高效.稳定,但是也带来维护上的一些问题.配置文件究竟在哪里????? 如何在linux中查看nginx.apache.php.mysql配置文件路径了,如果你接收一个别人配置过的环境,但没留 ...
- 利用十字链表存储树结构(便于同时求出某一点的入度与出度)------C语言实现
#include <stdio.h> #include<conio.h> #include<stdlib.h> /* 利用十字链表存储有向图,可用于同时查找某个顶点 ...