2016.10.7初中部上午NOIP普及组比赛总结

这次的题还可以,重新入了比赛的前十。


进度

比赛:90+10+70+30=200

改题:AC+AC+AC+AC=AK


找试场

这题很简单,但是被欺负了十分。

题目简化

一个人在(0,0),然后盲目听信别人的意见,

顺着某些方向走啊走啊。

问最后的坐标。

比赛思路

方向数组就不用说了吧……

有一个东西专门标记方向。

用字符串读入,如果是字母,则标记方向的要变。

如果是数字,则改变坐标,输出。

然后就没什么了。

(其实这题的难点没有什么,我只强调一个,y轴朝上!)

错因

有一个非常非常奇怪的数据,

那个人只会转身而不走。

正解

同上,记得判断只转弯的情况,输出(0,0)。


圆的国度

这题,一开始好多人觉得这题是最难的,

可在XYW讲过之后,瞬间感觉智商被侮辱。

题目简化

一个人,要从A到B,每经过一个圆他就会

没了50%的命。所以他想知道最少穿过多少圆(可以绕道)。

圆不会手拉手。

比赛思路

匆匆地打了个表。10分。

正解

因为两个圆不能连在一起,

所以它也不能手拉手围着你。

并且你是零维的,所以不管两个圆围着有多密,

只要它们不拉手,就能穿过去。

有四种情况:

1. 只围A不围B,那么ans++

2. 只为B不围A,同上。

3. 两个都圈,忽略。

4. 都不围,忽略。

枚举每个点,

用勾股定理计算A或B与那个点的长度,

然后两个都比较,中间用xor(相反为true,相同为false)连接。

为true就加一吧。


幂运算

快结束时就在赶这道题,在某些细节错了,

因此70。

题目简化

输出A^B

而且精度要够,不能用科学计数法。

还有一个特别可恶的:如果结果是0.x的形式,

要把0去掉。

比赛思路

小数的高精度嘛……

把它变成整数*10^n(n是负数哟)的形式。

把前面的高精度乘法,最后给它加小数点。

注意小数点位置!

错因

小数点位置错了……

正解:

同上,判断好小数点位置就好了。


箱子嵌套

我什么都不想说……

题目简化

有几个n维箱子,要让它们一个装着一个,

这个又装着一个……问能做这种操作最多用多少个箱子。

比赛思路

贪心,先把每个箱子里的维度以大到小排个序,

然后又让箱子直间再排个序(长为第一关键字,宽为第二关键字,高第三……)

然后就一个循环把能放的加起来,输出。

后来,我改了一下,排序部分不变,

然后就爆搜……(能时超50分哟!)

我又加了一个小小的记忆化。

设bz[i]为用了i个箱子时最里面的箱子最大(不是体积)的每个维度的长度。

为什么说是个“小小”的记忆化呢?因为那其实没什么大用处,多了10分。

错因

答案错误30分。证明了这种方法不!可!行!

正解

我记得箱子里面的维度排序不用变。

然后要DP!

听别人说是最长不下降序列改一下……

再讲讲我的方法:

仍然是一个厚颜无耻的爆搜。

把记忆化改一改。

因为上面所说的那个只是一个小小的记忆化,

并没有多大的用处。

我本打算定义bz[cd(为一个n为体的各条边的长度)]

为到最里面的为i(假设是cd类型)时的最大能嵌套的个数。

但是前面我打的是type cd:array[1..10]of longint;

题目说了每个维度在longint范围内(负数肯定没有)。

这样的话则是有(2^32)^10的空间,而且还是4KB的longint!

编译时都能显示错误!!!

所以我之前就把它反过来,所以没多大用处。

但我后来发现:

box数组中的东西排完序后就再也不会变了,

也不会凭空产生一个盒子来。

所以bz的下标只需要是序号就够了(奇妙地解决了空间问题)。

然后就简单了,如果还是不比之前的大,就直接能退出了。

这样可以去掉很多不必要的运算,使得程序加快。


题外话

1. 初赛快到了,我得要专门训练一下初赛的题型,太难了。

2. 多次翻车终于有一次回到前十,还不错的。

2016.10.7初中部上午NOIP普及组比赛总结的更多相关文章

  1. 2016.10.6初中部上午NOIP普及组比赛总结

    2016.10.6初中部上午NOIP普及组比赛总结 中了病毒--病毒--病毒-- 进度: 比赛:AC+0+0+20=120 改题:AC+0+AC+20=220 Stairs 好--简--单!递推就过了 ...

  2. 2016.10.5初中部上午NOIP普及组比赛总结

    2016.10.5初中部上午NOIP普及组比赛总结 这次的题目出得挺有质量的.但我觉得我更应该努力了. 进度: 比赛:0+20+0+0=20 改题:AC+AC+AC+AC=AK kk的作业 这题我错得 ...

  3. 2016.10.29初中部上午NOIP普及组比赛总结

    2016.10.29[初中部 NOIP普及组 ]模拟赛 做得好爽! 进度: 比赛:35+45+AC+0=180 改题:AC+AC+AC+0=300 幸运的数 有点无语--之前怕超限,还特意利用程序打了 ...

  4. 2016.11.5初中部上午NOIP普及组比赛总结

    2016.10.29初中部上午NOIP普及组 这次比赛算是考的最差的一次之一了,当中有四分之三是DP. 进度: 比赛:没分+0+没分+40=40 改题:AC+0+没分+40=140 TurnOffLi ...

  5. 2016.10.4初中部下午NOIP普及组比赛总结

    2016.10.4初中部下午NOIP普及组比赛总结 这次的题有些水,只是第四题有点坑. 题目: 比赛:AC+0+AC+50=250 改题:AC+AC+AC+50=350 一.Bill 满地都是水 题目 ...

  6. 2016.9.15初中部上午NOIP普及组比赛总结

    2016.9.15初中部上午NOIP普及组比赛总结 2016.09.15[初中部 NOIP普及组 ]模拟赛 又翻车了!表示时超和空超很可恨! 进度 比赛:AC+0+0+20=120 改题:AC+80+ ...

  7. 2016.9.3初中部上午NOIP普及组比赛总结

    2016.9.3初中部上午NOIP普及组比赛总结 链接:https://jzoj.net/junior/#contest/home/1339 这次真爽,拿了个第四!(我还被班主任叫过去1小时呢!) 进 ...

  8. 2016.9.24初中部上午NOIP普及组比赛总结

    2016.9.24初中部上午NOIP普及组比赛总结 2016.09.24[初中部 NOIP普及组 ]模拟赛 其实这次我没比赛,早上去参加亲子活动去了. 不过在下午我做完了所有的题,感觉还好. 进度 现 ...

  9. 2016.9.10初中部上午NOIP普及组比赛总结

    2016.9.10初中部上午NOIP普及组比赛总结 链接:https://jzoj.net/junior/#contest/home/1340 好不爽!翻车了!不过排名差不多在中间偏上一点, 还好不是 ...

随机推荐

  1. 10.1 Nested vectored interrupt controller (NVIC) 嵌套矢量中断控制器

    特点 60个可屏蔽中断通道(不包含16个Cortex™-M3的中断线): 16个可编程的优先等级(使用了4位中断优先级): 低延迟的异常和中断处理: 电源管理控制: 系统控制寄存器的实现: 1. 中断 ...

  2. Day 10:函数全局变量和局部变量及函数嵌套

    全局变量:在所有函数之外赋值的变量,是全局变量. 局部变量:在函数内的变量是,局部变量 一个函数被调用时,就创建了一个局部作用域.在这个函数内赋值的所有变量,存在于该局部作用域内.该函数返回时,这个局 ...

  3. 使用R语言 SDK调取tushare数据

    安装Tushare 打开RStudio,在控制台输入命令: > install.packages('Tushare') Tushare的R包需要依赖httr.tidyverse.forecast ...

  4. Jmeter----函数助手参数化

    要填写开始日期和结束日期和赋值的变量名

  5. HIVE文件

    注册表的本地实体文件, 察看位置,以及映射本地文件到注册表中的位置, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist 在这里写 ...

  6. 【转】ArcObject与ArcEngine的联系与区别

    在ArcGIS系列产品中,ArcGIS Desktop.ArcGIS Engine和ArcGIS Server都是基于核心组件库ArcObjects搭建的. 所谓ArcObjects,现在一般都是指A ...

  7. JS对象 指定分隔符连接数组元素join() join()方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。

    指定分隔符连接数组元素join() join()方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分隔的. 语法: arrayObject.join(分隔符) 参数说明: 注意:返回 ...

  8. 2019牛客暑期多校训练营(第八场)I-Inner World DFS序+主席树(扫描线也可)

    题目传送门 题意:初始有n棵树,每棵树都只有1个n号节点,现在有m次添加操作,每次操作是将$[l,r]$范围内的树的$u$节点后面添加一个$v$节点.每个v节点只会被添加一次. 然后是q次询问,输出$ ...

  9. RabbitMQ学习第一记:用java连接RabbitMQ

    1.什么是RabbitMQ MQ(Message Queue):消息队列,是服务端设计的一个可以存储大量消息的队列,并提供客户端操作队列的方法:生产队列(向队列中添加数据).消费队列(从队列中取数据) ...

  10. BCZM : 1.5

    https://blog.csdn.net/zs634134578/article/details/18046317 有很多服务器存储数据,假设一个机器仅存储一个标号为ID的记录,假设机器总量在10亿 ...