随笔分类 - 高质量难题
摘要:2013年省赛H题你不能每次都快速幂算A^x,优化就是预处理,把10^9预处理成10^5和10^4。想法真的是非常巧妙啊N=100000构造两个数组,f1[N],间隔为Af2[1e4]间隔为A^N,中间用f1来填补f[x]=f1[x%N]*f2[x/N]%P; 1 #include<iostream
阅读全文
摘要:HEX SDUT 3896 17年山东省赛D题这个题是从矩形的左下角走到右上角的方案数的变形题,看来我对以前做过的题理解还不是太深,或者是忘了。对于这种题目,直接分析它的性质就完事了。从(1,1)走到(a,b)向左走的步数和向右走的步数是确定的,向下是代表向左向右各走了一步。细节:利用对称性,线性推
阅读全文
摘要:zoj3781赛场上堵在了缩点上emmmmm把原始图相同颜色的方块缩成一个点,然后与它周围不同颜色的联通块连双向边,然后枚举每个点然后求最大深度的最小值因为每次翻转都相当于深度+1(可以手动模拟一下 #include<iostream> #include<cstdio> #include<queue
阅读全文
摘要:poj 1753做搜索题还是要找到特殊性质和枚举方式哪怕很简单的性质,也会产生很大的影响在这个题中,同一个格子翻2次和不翻没有区别,在这里有一个小细节就是可以有impossible的情况,这也意味着所有情况都可以在规定时间内枚举到,这也就是你枚举所有情况就可以了。这题还有一个巧妙的方法如果第一行是确
阅读全文
摘要:csp2018.9第4题 用差分约束求差的最小值,然后有一些转化,比如前缀和换成>=,跑最长路a1*2≤x1+x2≤a1*2+1 d[2]-d[0]>=a1*2d[0]-d[2]>=-a1*2-1 a2*3<=x1+x2+x3<=a2*3+2 ... an-1*2<=xn-1+xn<=an*2+1x
阅读全文
摘要:P1074 靶形数独正着搜80分,完全倒置95分,完全倒置后左右再倒置,就会A掉,到时候脑洞要大一些。
阅读全文
摘要:P2659 美丽的序列对于当前的最小值,找到最大的左右边界,然后更新答案。用单调队列确定左右边界,O(n)做法。
阅读全文
摘要:P2279 [HNOI2003]消防局的设立考场上想出了贪心策略,但是处理细节时有点问题,gg了。从(当前深度最大的节点)叶子节点往上跳k个,在这里设消防局,并从消防局遍历k个距离,标记上。
阅读全文
摘要:P3147 [USACO16OPEN]262144一道非常有趣的游戏,不,题目。当数据水时,可以这样表示状态。f[i][j]表示合并[i,j]区间所能得到的最大值,有点floyed的小味道。if(f[i][k]==f[k+1][j])f[i][j]=max(f[i][k]+1,f[i][j]);不断
阅读全文
摘要:P3917 异或序列暴力前缀异或枚举每一个区间,再求和,60分。正解:按每一位来做对于区间[l,r],如果它对答案有贡献,区间中1的个数一定是奇数,可以按每一位取(1<<i)的前缀和,q[r]-q[l-1]一定是奇数,那只要保证端点值奇偶性不同即可。根据乘法原理,奇数*偶数就是满足条件的区间个数,这
阅读全文
摘要:P3719 [AHOI2017初中组]rexp一开始想的是类似计算式子的值的东西,用栈。然后发现处理最大值很麻烦,因为处理的很像子过程,所以考虑递归来做。碰到'('就递归一次,碰到'|'就取最大值再递归一次。 if(a=='(') { sum+=work(0); }要在 if(a==')') { r
阅读全文
摘要:P1292 倒酒这个题有很多模型,这个是一个变形。我令一个解为x两个整数Pa和Pb,分别表示从体积为a ml的酒杯中倒出酒的次数和将酒倒入体积为b ml的酒杯中的次数(酒杯一开始为空)。b最后是0,所有倒入b中的都会倒入a中,而每次a倒出都是从满的状态倒出来,所以剩下的x=Pb*b-Pa*a。 因为
阅读全文
摘要:P2817 宋荣子的城堡一道找规律的题,现在深入追究发现了有趣的东西。1 12 23 94 64显然k^(k-1) 在日照的时候也推出来了。3 9今天推错了,要列出所有的情况,然后再选,否则会漏掉。答案是(k^(k-1)) * ((n-k)^(n-k))对了,我卡速米一直打的是错的。要对指数为0的情
阅读全文
摘要:P1244 青蛙过河NOI2000主要思想:数学归纳法 递推 压位高精度 化归 理解能力和找规律的能力题意再述:1.青蛙从上到下必须连续递增或者下面是石墩 而不能是1 12 33 4而且每时每刻都要满足这个条件2.左岸和右岸都是石堆公式推导过程:k=0h=0 s=1h=1 s=2 _ _ _h=2
阅读全文
摘要:[USACO08FEB]修路Making the Grade比较难的dp,比赛时打的找LIS,然后其他的尽可能靠近,40分。先举个例子61 2 3 1 4 561 2 3 3 4 5第4个1要么改成3,要么改成4,反正是数列中的数。所以最优情况下,答案中的数都是原数列中有的。b[]是a[]由小到大排
阅读全文
摘要:P2719 搞笑世界杯我觉得这个难度是假的,如果不知道这个是dp我就做不出来,好吧,知道我也没做出来。。f[i][j]表示剩i张A票,j张B票时,最后两张票相同的概率。当前的队首有一半的概率选A,一半的概率选B,so f[i][j]=0.5*f[i-1][j]+0.5*f[i][j-1]答案为f[n
阅读全文
摘要:P3402 最长公共子序列经典问题LCS-->LIS 没有重复的值才可以这么做把第一数列转化成1~n,然后将第二个数列映射成1~n中的一些数,然后求第二个数列的LIS即可,然后用Bit求LIS,O(nlogN) //数据太大,考虑map #include<iostream> #include<cst
阅读全文
摘要:[POI2010]GRA-The Minima Game一道与博弈相关的dp,想了好长时间,才想明白。A与B都是从大到小,取连续的一段,因为每次都是取当前拿走的元素的最小值。然后由小到大排序,f[i]表示两个人取完了,前i个元素,(先手-后手)的最大值,我一直卡在这里,我总是以为这里的先手就是A,后
阅读全文