摘要:
这种大水题,我还是没有想出来,明明都知道了是差分了。。。。 好了我们来看看,先将有重叠的区间(房子)合并(反正效果都一样),这样我们就得到了多段不重叠的区间。 然后我们枚举每一个点和每一条线段,比如说我们枚举了p这个点它在x,还有两段分别在x1,y1的一条线段,很明显我们最终如果移动的位置在x1-x 阅读全文
摘要:
不得不说,我有种不好的预感,如果考试考到这种裸的数学定理,怕是要完。 原网址:http://blog.csdn.net/zhjchengfeng5/article/details/7786595 扩展欧几里德算法 谁是欧几里德?自己百度去 先介绍什么叫做欧几里德算法 有两个数 a b,现在,我们要求 阅读全文
摘要:
我首先首先先考虑了二分+hash,但可能是我的二分有点问题,一直tle了一个点,然后完全不知道怎么去改变,只能去USACO的官网上看,结果发现了更厉害的方法。 原英文题解:http://www.usaco.org/current/data/sol_cownomics_gold_open17.html 阅读全文
摘要:
我能说这道题我想到了思路交上去只有44分,结果发现程序各种小错误,唉。。。 其实就是一个裸的概率Dp+floyed 就是转移方程烦了一点,不过也很容易想到。 用f[i][j][k]来表示前i节课选j个来换当前这节课是否要换。 具体的就看程序吧。 阅读全文
摘要:
说到这题,我得感谢一下出题人的仁慈,n=100的分高达90,因为题目标算为O(1)... 我首先想到的是dp,用dp[i][j][k]表示Jack在i,Rose在j,k这个人选择接下来要走的这一步的这个状态下,Jack的金钱与Rose的金钱的差值。 如果k=0表示Jack选择,k=1Rose选择 d 阅读全文
摘要:
之前一直用的是tarjan第一次学习到这个来试一下。 唔,就是裸的算法,然后如果出度为0的点只有一个,输出这个点的大小。 阅读全文
摘要:
这题我真地想了好久怎么构造dp,可惜,最后还是不会构造,真的是太弱了。。。 先来个简单方法,我们用dp[i][a][b][c]表示前i位最长优胜序列的末尾为0的最长长度为a,末尾为1最长长度为b,末尾为2最长长度是c,的方案数。(我觉得给我多久我都根本想不到这种方程的。。。) 那么如果当前第i位可能 阅读全文
摘要:
好吧,虽然是道水题但是是第一次接触数位dp所以还是要记录一下。 其实就是因为如果按数的大小枚举的话很不方便所以就按数位枚举并进行记忆化。 阅读全文
摘要:
明明三道都是水题,我却只有144。。。 这道题我们用两个vector来储存。 a[x]储存的是x这个位置放过的球的标号,和放进这个球时是第几次交换。 b[x]储存的是x这个球放过哪些位置,和放到那个位置是第几次交换。 所以对于每次询问我们只要先二分出第x个位置在第l次操作之前放的是几号球,然后再二分 阅读全文
摘要:
我没有想到怎么dp,怕是完了。。。(啊,只拿了5分。。。) 首先我们能发现 假设前面一个怪物为x1,y1后面一个怪物为x2,y2我们怎么确定如果两个怪物都要打先打前面那个? 列个式子如果前面一个先打前面一个耗费x1*y1+ad(x1+y1)+a^2*d^2后面一个则为x2*y2+bd(x2+y2)+ 阅读全文