2013年6月1日
摘要: 好吧,这是我两天里唯一考试时AC的题目…………明显的按位DP,设sum1[i][lim][zero]表示在第i位,是否顶着上界,是否有前导零的所有数的前缀串之和(如12345的前缀串之和为12345+1234+123+12+1),sum2[i][lim][zero]记录的是所求的和,num[i][lim][zero]表示该状态下数的个数。那么转移很明显了:sum1[i]=now*tms[i]*num[i-1]+sum1[i-1],sum2[i]=sum2[i-1]+now*tms[i]*num[i-1]+sum1[i-1]*!(zero&&(now==0));(now为当前这一 阅读全文
posted @ 2013-06-01 16:39 stickjitb 阅读(529) 评论(2) 推荐(0) 编辑
摘要: 题目描述:首先看到这题应该知道该怎么裸吧…………以每个字符和间隙为中心可以建立若干个等和不等关系。相等关系可以用并查集合并,不等关系之间连边。然后对每一位贪心地选取合适的字典序最小的字符就可以了。然后我们发现,这样是会T的(废话),为什么?因为我们进行了太多无意义的关系判定,设想有一个非常长的回文串,它的左半边有一些小的回文串,我们已经为它们建立好了关系,那么右半边何必再做一遍呢??也就是说我们一边处理关系,一边记录当前最右覆盖的端点,每次只对覆盖端点以外进行关系的建立,这样由于右端点是单调的,不难推出复杂度为O(n),于是就可以通过了。ps.这种思想其实就是Manachar算法,一种线性求回 阅读全文
posted @ 2013-06-01 16:07 stickjitb 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 题目描述:首先注意!!这道题的修改是将x^L到x^R项进行的!!!不是下标!!也就是说mulx操作会让一些项整体右移!!好吧,不得不说电子科大的题是世界上最坑的题,电子科大的样例是世界上最坑的样例。这道题本不难,但要是看错题了…………………………就只有20分了…………………………更可悲的是,我的线段树都写错了,于是又悲惨地挂零了……………………好吧,既然要整体右移,那么就很容易想到用splay来维护了。每次mulx只需要把第r项与第r+1项合并,然后在l前添加一项系数为零的项即可。其余操作就非常容易了,记两个标记add和mul,表示这个项被乘上了mul后加上了add,如何打标记和下放标记什么的 阅读全文
posted @ 2013-06-01 15:34 stickjitb 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 题目描述:先吐槽一下为什么今年题要用纸质的…………又是版权问题么…………然后数据因为版权…………没法得到,所以现在只能在电子科大OJ上提交题目(真搞不懂,数据什么时候也不公开了…………)。首先很明显这道题要求我们找两点之间最小边的最大值,然后能买尽量买,能卖尽量卖,贪心走一遍就好了。考试的时候没有想出来正确的解法,于是上了一个类似弗洛伊德的DP,悲剧的是忘了处理列车站的情况,然后中间也是各种差错导致挂零…………悲剧的人生啊……其实这个问题很简单,两点之间的最小边的最大值一定存在于最大生成树上(因为最大生成树上两点之间的路径是所有路径中包含的边中权值最大的几条),然后就成了在最大生成树上倍增了, 阅读全文
posted @ 2013-06-01 15:15 stickjitb 阅读(378) 评论(0) 推荐(0) 编辑