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,否则输出明文. 思路:纯模拟题 ...
随机推荐
- log4j安装与简介
问题描述: 在应用程序中添加日志记录总的来说基于三个目的: (1) 监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作: (2) 跟踪代码运行时轨迹,作为日 ...
- 初尝backbone
backbone的基础知识在此将不再进行介绍.自己后续应该会整理出来,不过今天先把这几天学的成果用一个demo进行展示. 后续可运行demo将会在sinaapp上分享,不过近期在整理sinaapp上d ...
- [转载]C#获取进程的主窗口句柄
public class User32API { private static Hashtable processWnd = null; public delegate bool WNDENUMPRO ...
- Socket 阻塞模式和非阻塞模式
阻塞I/O模型: 简介:进程会一直阻塞,直到数据拷贝 完成 应用程序调用一个IO函数,导致应用程序阻塞,等待数据准备好. 如果数据没有准备好,一直等待….数据准备好了,从内核拷贝到用户空间,IO函数返 ...
- 【入门篇】Nginx + FastCGI 程序(C/C++) 搭建高性能web service的Demo及部署发布
http://blog.csdn.net/allenlinrui/article/details/19419721 1.介绍 Nginx - 高性能web server,这个不用多说了,大家都 ...
- UNDERSTANDING CALLBACK FUNCTIONS IN JAVASCRIPT
转自: http://recurial.com/programming/understanding-callback-functions-in-javascript/ Callback functio ...
- Sudoku Solver
Write a program to solve a Sudoku puzzle by filling the empty cells. Empty cells are indicated by th ...
- POJ 1486 Sorting Slides(寻找必须边)
题意:找出幻灯片与编号唯一对应的情况 思路: 1:求最大匹配,若小于n,则答案为none,否则转2 (不过我代码没有事先判断一开始的最大匹配数是否<n,但这样也过了,估计给的数据最大匹配数一定为 ...
- Thread的第一天学习
1.实现线程的方法: 1)extend Thread 2)implements Runnable 2.下面代码执行哪个run方法: new Thread( new Runnable(){ public ...
- 欧拉工程第69题:Totient maximum
题目链接 欧拉函数φ(n)(有时也叫做phi函数)可以用来计算小于n 的数字中与n互质的数字的个数. 当n小于1,000,000时候,n/φ(n)最大值时候的n. 欧拉函数维基百科链接 这里的是p是n ...