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提高组题解

时间: 2024-10-11 15:24:15

noip2001提高组题解的相关文章

noip2004提高组题解

这次有两道题以前已经做过了,所以分数什么的也没有意义了.发现这年的难度设置极不靠谱,前三题都比较简单,最后一题太难,不知道出题人怎么想的. 第一题:储蓄计划 模拟. 第二题:合并果子 贪心.每次选最小的两堆合并. 第三题:合唱队形 两次动规.题目可以转化为找出一个人,使得以他为尾的最长上升子序列的长度最大,并且以他为首的最长下降子序列的长度也最大. 第四题:虫食算 马上想到搜索.但是规模太大,N可能有26位,如果简单枚举那么运算次数是26!≍4e27:剪枝方面只想到一个很弱的剪枝(对于26的规模

noip2003提高组题解

这一年的前三题虽然难度不高,但是第二题极为繁琐,想在考场上用较短的时间拿到第二题的分数难上加难.所以必须要调整策略,争取拿其他三题的分数.第四题是比较普通的搜索题,分数比较好拿,但是很容易想成树形DP,就只能拿30~50分. ? 第一题:神经网络 模拟 有几个注意点: 输入层(即第一层)的结点的U(阈值)是没有用的: 题目说输出「最后状态非零的输出层神经元状态」,但实际上输出的是状态大于0的值. 由于没有注意到神经元只有在兴奋状态时才会向下传送信号,所以WA了1次. ? 第二题:侦探推理 模拟+

noip2000提高组题解

事实再次向我证明了RP的重要性... 第一题:进制转换 是我最没有把握AC的一道题目却是我唯一一道AC的题目,真是讽刺.看完题目几乎完全没有往正常的解法(取余倒序)去想,直接写了搜索,因为数据范围在2^16,感觉枚举每一位上的数应该就够了,但是在自己的电脑上连样例都用了3.4s,然后想不到任何有效的剪枝,就果断放弃了.最后写完其他三题之后还是回过头看了下这道题,还是没往正常的解法想....结果惊人地AC了...RP真的太重要了. 然后经提醒终于想到了正常一点的解法,查了网上的题解之后开始自己写取

NOIP 2014 提高组 题解

NOIP 2014 提高组 题解 No 1. 生活大爆炸版石头剪刀布 http://www.luogu.org/problem/show?pid=1328 这是道大水题,我都在想怎么会有人错了,没算法,直接模拟,别读错题. 1 int wn[5][5]={{2,0,1,1,0}, 2 {1,2,0,1,0}, 3 {0,1,2,0,1}, 4 {0,0,1,2,1}, 5 {1,1,0,0,2}}; 6 7 int n,na,nb; 8 int a[222],b[222]; 9 int s1,s

noip2010提高组题解

NOIP2010提高组题解 T1:机器翻译 题目大意:顺序输入n个数,有一个队列容量为m,遇到未出现元素入队,求入队次数. AC做法:直接开1000的队列模拟过程. T2:乌龟棋 题目大意:有长度为n的棋盘,每个格子对应一个分数,1,2,3,4的卡片共m张,给出四种卡片各自的数量,求改变出牌顺序能获得的最大分数. 思路:开了一个四维的f[i][j][k][l]来表示每张牌有了几张时的最大分数: F[i][j][k][l]=max(f[i-1][j][k][l],f[i][j-1][k][l],f

NOIP2007 提高组 题解

2007 提高组题解 第一题 一开始还想是不是要用哈希表储存呢,但仔细想了一会儿,那个数据量20W 用个快排序,时间是能过的.所以这道题用个STL的快排,再一个循环统计个数就OK了.但最后交上去评测时0分,很尴尬.就是我在数据初始化时从一开始计数,我循环又从一开始,你懂的,多算了一次,爆掉了.改了就100了.200W的话数据就很强了,用哈希好一些. 第二题 额,写得很快,果然这种无脑模拟题最适合我了.但自信没检查,带了3组给的数据就走了.果然错了,过了4个点好像.主要是题没读完,没有判断处于字母

noip2009提高组题解

第一题:潜伏者 模拟 注意点: 不同的密文对应的明文不同,反过来,不同的明文对应的密文也不同,我用了两个hash表来实现: 26个明文字母必须有对应的密文字母,我用了两个计数变量来判断是否26个字母都有匹配. ? 第二题:Hankson的趣味题 数论 对 a0, a1, b0, b1 四个数进行质因数分解,然后确定 x 的各质因数的指数的取值范围,运用乘法原理解决.详细分析见下: (引用自http://wenwen.sogou.com/z/q169562042.htm) Gcd(x,a0)=a1

noip2008提高组题解

第一题:笨小猴 模拟 ? 第二题:火柴棒等式 搜索 深搜不用说,确定出两个加数然后判断能否拼出等式. 枚举确实不太好搞,因为枚举范围不确定,太大了容易超时,太小了容易漏解.不过这题的数据貌似很温和,我从 0~1000 枚举也能过. ? 第三题:传纸条 多线程动态规划 跟 2000 年的方格取数很像. 还是看做两个人同时从左上角走到右下角.用 f(i, j, k) 表示横纵坐标和为 i,第一个人的行坐标为 j,第二个人的行坐标为 k 时的最大和. 由于一个地方不能走两次,所以对于除了终点以外的所有

[NOIP2001] 提高组 洛谷P1027 Car的旅行路线

题目描述 又到暑假了,住在城市A的Car想和朋友一起去城市B旅游.她知道每个城市都有四个飞机场,分别位于一个 矩形的四个顶点上,同一个城市中两个机场之间有一条笔直的高速铁路,第I个城市中高速铁路了的单位里程价格为Ti,任意两个不同城市的机场之间均有航线, 所有航线单位里程的价格均为t. 图例(从上而下) 机场 高速铁路 飞机航线 注意:图中并没有 标出所有的铁路与航线. 那么Car应如何安排到城市B的路线才能尽可能的节省花费呢?她发现这并不是一个简单的问题,于是她来向你请教. 找出一条从城市A到