随笔分类 - 解题报告
各种解题报告都在这。。
摘要:rockers是USACO一道很经典的动态规划,这个题其实是可以优化状态的。将状态表示中的一部分记录到状态的最优解中,从而实现将空间和空间都降一维的目的。 nuggets这个题判别几个特殊情况后就是个裸的背包了。 这两题都不难,均为1A。 rockers: /*TASK:rockersLANG:C++*/#include <iostream>#include <fstream>#include <...
阅读全文
摘要:heritage 这个题本质上是个水到不能再水的题目了。拆解一下就是字符串操作,外带递归就好了。原来在pascal写的时候也很简单,没想到在C++就遇到了意想不到的麻烦。首先C风格的字符串也就是那个脑残的char [],介个东西的各种函数返回值都各种诡异,都是指针神马的。所以最后还是决定用string类,这个东西最大的好处就是方便,缺点就是要慢一些……然后就遇到了个狗血的事情……大家都知道C++中...
阅读全文
摘要:这个题在我第一次做USACO的时候被我生生的扔掉了(交了个标程……)。我对计算几何这个东西完全没有感觉。但是这回借此机会搞一了一下,尽管用的不是这个题的完美解法(完美解法简直是BT……)。 这个题吧,有几种方法。最SB的一种方法就是,从viewer这个点引出的一条射线开始,跟每条线段做相交实验,做完之后旋转一个很小的角度。重复这两步,直到绕完一圈……这个方法虽然很SB,但是那个角度控制得当这个题还...
阅读全文
摘要:这两题都是DP,总体上没啥太大的难度。 range方程式: f[i][j] = min(f[i][j - 1], min(f[i - 1][j], f[i – 1][j - 1])) + 1; game1方程式:f[i][j] = sum[i][j] – min(f[i][j - 1], f[i + 1][j]); 程序上也没啥好主意的…… range: /*TASK:rangeLANG:C++*...
阅读全文
摘要:这题本来是个很水的题,但是USACO的特点大家是知道的:细节折磨死你……这题也不例外,好想其实也挺好写。但是如果不是一把成就会很悲剧……还好我是幸运的,基本一会就过了…… 但是这个题还是碰到了相当的问题,就是说pascal当中有我们无敌的神器fillword和filldword。但是C++当中只有一个fill,这个东西还要算指针头和指针尾,着实很悲剧。所以逼得我不得不用memset,很悲剧的是这个...
阅读全文
摘要:写在前面:因为之前没写的C++的USACO Training的解题报告太多……所以就不写了,要是想要代码可以联系我:xiedong_1993@foxmail.com这题就是传说中的五维背包,其实写起来难度不大。但是我写的时候可以说是遇到了重重困难。因为我对C++的掌握还不如Pascal,所以很多东西写的不是很熟。这题有一个很大的问题就在于,最后有用的只有五种物品,但是物品的编号却又很多。处理的方法有几种,一种是离散化,但是这个太SB了。。为了处理这么弱的数据还要排序重标号实在得不偿失。另一种是直接就标号,但是面临的问题就是,需要用的五种标号在能标之前就要被用到,就涉及到了一个问题,如何略过前面
阅读全文
摘要:写在前面:介个题呢是某THU大神,也是我原来的少儿部同学MQC MM,鉴于她所在自动化系的大作业需要这个题,我应邀写了这篇质量不高的解题报告。POI XVII frog(zab)解题报告首先,我必须承认我这题SB了……经历了将近6个小时的编写和调试,发现了一个异常悲剧的情况:我第一个算法果断超时了……。虽然是超时,但是超的非常少,几乎是擦边,优化了一下午的常数结果是我放弃了……转而去想我刚开始就否定的算法,结果15分钟编写加调试,居然 TMD过了……言归正传,说说这个题的解法:首先说说这个题的题意:说在一条小溪上有n个石头,按照严格升序给出每个是石头到源头的距离。然后说有一群灰常SB的青蛙(每
阅读全文

浙公网安备 33010602011771号