noip2001提高组题解
今天继续感动滚粗。第一次提交170分,不能多说。
第一题:一元三次方程
明明是寒假讲分治的时候做过的题居然还是WA而且只拿了60分,说明知识掌握实在不够牢固。
寒假做的是保留4位小数,原题只保留2位,又因为答案在[-100,100],所以直接枚举-10000到10000即可。
然后鉴于寒假的时候写的二分,我就傻X兮兮地在循环里面写了个二分。。。尼玛经验害死人啊。。。更可怕的是题目的hint里也明显地提示了二分。。。然后我就逗比了。
提交4次AC 。
第二题:数的划分
去年学回溯的时候就做过,所以直接回溯了。递推肯定也是可以的嘛。
f(i,j,k)表示把数字i拆成j个数字且第一个数字为k的方案数,则
f(i,j,k)=f(i-k,j-1,k)+f(i-k,j-1,k+1)+...+f(i-k,j-1,i-k div j-1) (k>=i div j)
边界f(i,1,i)=1。
效率已经可以完虐回溯了。
第三题:统计单词个数
强烈的既视感。。。感觉就好像把2000年的T2T3混在了一起。。。
很明显预处理然后动规(差点说成递归)。果然跟前一年的最大乘积如出一辙,DP代码几乎一样。(所以跟最大乘积一样没有一次AC)
然后我栽在了预处理上。
1. 一个单词在一段里面是可以重复出现的。但是样例很完美地避开了这种情况。。。所以就被我忽略了。。。
2. “选用一个单词后,第一个字母不能再用”意思是,如果有一段文本 thisjsadkfjoiquwrepio (啊这些字符真的不是我把头放在键盘上滚出来的),词典里的单词有this和th,那么就不能算作包含有两个单词。但是如果文本是 thisth,那么this和th都可以算作包含在内。而我一开始理解成了同一段内同一字母开头的单词只能出现一次。。。。
最后一次WA错得很神奇。我的预处理过程是不断地在文本里找词典里的单词,如果某个地方已经被某个单词占用,就在该处做上标记,下次碰到相同开头的单词时就会根据标记来跳过该处。但是我在某处找到词典里的单词之后就将前面的字符都删掉,导致字符在字符串中的位置发生了变化,所以标记也就标错了地方。Orz。
提交4次AC 。第一次提交CE真是太感人了,Dev-C++不检查return,不用包含cstring cstdlib algorithm,真是感(sang)人(xin)肺(bing)腑(kuang)。编译器太智能也不是什么好事。
第四题:Car的旅行计划
很明显是最短路,但是处理起来真麻烦。一开始甚至还因为只给出了矩形的三个顶点而纠结了很久。在图的存储方式上,鉴于上次在建兰做树型DP时的经验,我果断采用了虽然不熟悉但是速度不错的前向星。但是就是因为不熟悉所以又耽搁了很久。。。再接着Dijkstra,又是不太熟悉的算法。。。以至于很多细节的地方统统挂掉了,时间到了也还没调试完,所以就爆零咯。
最后写完,对样例,发现差了0.1,丧心病狂。。。涉及精度的问题都是蛇精病啊。。。学校OJ上的数据很明显有问题啊。。。四个人都A不掉啊。。。四舍五入之后只能过样例其他点都过不了啊。。。vijos上也A不掉啊。。。最后拿了当年的noip数据5个点对了一下,算是AC了吧。(这一年两道涉及浮点数的题目,出题人是不是疯了。。。)
经验教训:
1. 确保头脑清醒的时候才能写代码,否则可以先上厕所洗把脸调整一下状态;
2. 对于多组数据的题目要注意初始化,可以用同一组数据复制几个测试一下(这一点上我和lzw想到的居然一毛一样Orz);
3. 浮点数是个坑。
noip2001提高组题解的更多相关文章
- noip2010提高组题解
NOIP2010提高组题解 T1:机器翻译 题目大意:顺序输入n个数,有一个队列容量为m,遇到未出现元素入队,求入队次数. AC做法:直接开1000的队列模拟过程. T2:乌龟棋 题目大意:有长度为n ...
- NOIP 2014 提高组 题解
NOIP 2014 提高组 题解 No 1. 生活大爆炸版石头剪刀布 http://www.luogu.org/problem/show?pid=1328 这是道大水题,我都在想怎么会有人错了,没算法 ...
- NOIP 2001 提高组 题解
NOIP 2001 提高组 题解 No 1. 一元三次方程求解 https://vijos.org/p/1116 看见有人认真推导了求解公式,然后猥琐暴力过的同学们在一边偷笑~~~ 数据小 暴力枚举即 ...
- NOIP 2000 提高组 题解
NOIP2000 提高组 题解 No 1. 进制转换 https://www.rqnoj.cn/problem/295 水题 对于n和基数r, 每次用n mod r, 把余数按照逆序排列 注意 mod ...
- 【NOIP2018】提高组题解
[NOIP2018]提高组题解 其实就是把写过的打个包而已 道路铺设 货币系统 赛道修建 旅行 咕咕咕 咕咕咕
- 洛谷 P1025 & [NOIP2001提高组] 数的划分(搜索剪枝)
题目链接 https://www.luogu.org/problemnew/show/P1025 解题思路 一道简单的dfs题,但是需要剪枝,否则会TLE. 我们用dfs(a,u,num)来表示上一个 ...
- [NOIP2001提高组]CODEVS1014 Car的旅行路线(最短路)
最短路,这个不难想,但是要为它加边就有点麻烦..还好写完就过了(虽然WA了一次,因为我调试用的输出没删了..),不然实在是觉得挺难调的.. ------------------------------ ...
- noip2002提高组题解
再次280滚粗.今天早上有点事情,所以做题的时候一直心不在焉,应该是三天以来状态最差的一次,所以这个分数也还算满意了.状态真的太重要了. 第一题:均分纸牌 贪心.(昨天看BYVoid的noip2001 ...
- noip2009提高组题解
NOIP2009题解 T1:潜伏者 题目大意:给出一段密文和破译后的明文,一个字母对应一个密文字母,要求破译一段密文,如果有矛盾或有未出现密文无法破译输出failed,否则输出明文. 思路:纯模拟题 ...
随机推荐
- Ioc 比较
public interface IC { } public class A { IC ic_; public A(IC ic) { ic_ = ic; } } public class B : IC ...
- prefix springmvc
设置了@RequestMapping("/jsp/info.do"),也可以写成"jsp/info.act"不影响 retuen "index&quo ...
- gdb基本使用方法
gdb时linux下的一个非常好用的调试工具.下面给出它几个常用的方法 b 设置断点.c 继续执行. i 查看一些信息,比如断点,i b. bt 查看函数调用栈. n 执行下一条指令,但不会进入到调用 ...
- 谁会是 Zabbix 和 Nagios 的继任者?
[编者按]本文根据 Dataloop.IO 的创始人兼 CEO David Gildeh 对监控工具市场的现状分析以及对未来发展趋势的展望,展开拓展讨论. 为什么监控还是一塌糊涂? 为了调研市场,从而 ...
- Linq查询Count、Sum、Min、Max、Average
原文地址:Linq——Count.Sum.Min.Max.Average作者:mousekitty Linq查询之Count.Sum.Min.Max.Average using System; usi ...
- java基础知识回顾之---java String final类 容易混淆的java String常量池内存分析
/** * 栈(Stack) :存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放 在常量池中). 堆(heap):存 ...
- c# 在windows服务中 使用定时器
由于最近做自动执行的程序,开始做windows服务程序, 在windows服务中如何使用定时器的时候一直失效, 以前是直接拖入timer控件,但是不能直接运行,后来在网上找了一段程序,好使了. //开 ...
- Netty 的Downstream 和 Upstream
Netty的Downstream 和 Upstream 如果一个event从第一个handler传递直到最后一个handler就是 Upstream 相反的如果一个event从最后一个handler传 ...
- sublime 复制黏贴等快捷键修改
在 keyboard-binding user 里 增加个人配置来覆盖默认配置 [ { "keys": ["ctrl+z"], "command&qu ...
- Java API —— 多线程
1.多线程概述 1)进程: 正在运行的程序,是系统进行资源分配和调用的独立单位. 每一个进程都有它自己的内存空间和系统资源. 2)线程: ...