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,否则输出明文. 思路:纯模拟题 ...
随机推荐
- 【BZOJ】【1272】【BeiJingWC2008】Gate of Babylon
组合数学+容斥原理 Orz zyf-zyf 多重集组合数0.0还带个数限制? ——> <组合数学>第6章 6.2带重复的组合 组合数还要模P 0.0? ——> Lucas ...
- 坑人的 try catch finally
一直以为这样可以关闭 fs, 其实不行 static void Main(string[] args) { FileStream fs = null; try { fs = new FileStrea ...
- 01-04-01【Nhibernate (版本3.3.1.4000) 出入江湖】原生的SQL查询
Nhibernate 支持原生的SQL查询 : /// <summary> /// 使用原生的SQL查询 /// </summary> /// <param name=& ...
- Java学习第三篇:类的三大特征,抽象类,接口,final关键字
一.类的三大特征 1.封装性 (1).什么是封装 封装就是把抽象出的数据和对数据的操作封装在一起, 数据被保护在内部, 程序的其他部分只有通过被授权的操作(成员方法), 才能对数据进行操作. (2). ...
- 谈谈WCF中的Data Contract(3):WCF Data Contract对Collection & Dictionary的支持
谈谈WCF中的Data Contract(3):WCF Data Contract对Collection & Dictionary的支持 在本篇文章上一部分Order Processing的例 ...
- java Hotspot 内存管理白皮书(中文翻译)
转自: http://my.oschina.net/u/568779/blog/166891 1引言 一个健壮的 Java™2平台,Standard Edition (J2SE™)拥有一个自动内存管理 ...
- JsRender系列demo(5) for else
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- hdu1151 Air Raid
http://acm.hdu.edu.cn/showproblem.php?pid=1151 增广路的变种2:DAG图的最小路径覆盖=定点数-最大匹配数 #include<iostream> ...
- Android:利用SharedPreferences实现自动登录
主要代码: public class LoginActivity extends Activity { private EditText username; private EditText user ...
- [翻译] - <Entity Framework> - 直接执行数据库命令
原文:[翻译] - <Entity Framework> - 直接执行数据库命令 纯属学习上的记录, 非专业翻译, 如有错误欢迎指正! 原文地址: http://msdn.microsof ...