日常爆炸,rp++
考试的时候三道题都只会打暴力,T1打完线段树又删了,T2,dfs然而并没有分,T3本来40分的暴力被我浪到了36(别老想着骗分)
总分40+0+36=76pts,rank36,原地爆炸
主要考试的时候不能静下心思考,对问题总是想偏,一出问题就自暴自弃,最后出成绩直接完戏
T1:string
暴力十分好打,全场除了W某没有一个爆零
正解和之前一道题一样用线段树维护区间查询和赋值
然而由于改题时没开26棵线段树而只开了一棵,凭空从26变成26^2,各种极限卡长,循环展开,fread才过。。。。。。
T2:matrix
考场上纯暴力0pts,状压20pts,dp100pts
设f[i][j]表示前i列已经在j个右区间放了1,然后分这样几种情况讨论
(设ls[i]表示i及i左侧左区间右端点的个数,rs[i]表示i及i左侧右区间左端电的个数)
1:什么也不填,则f[i+1][j]+=f[i][j]
2:在下一列填1,那么有r[i+1]-j种填法,则f[i+1][j+1]+=f[i][j]*(r[i+1]-j)
但到现在我们只考虑了右区间的填法,而对于左区间的填法,在第i列我们需要安排l[i]-l[i-1]个1,同时有i-j-l[i-1]个空行,则f[i][j]*=A(i-j-l[i-1],l[i]-l[i-1])
T3:big
考场上本来40分暴力,后来想偏分码了个神奇算法,成功卡掉自己4分,rp++
题义可转化成选一个数,使他和m-1个数异或最小值最大
把m-1个数插入trie,从根开始dfs,使结果最大就好了
(一定要从高位往低位插入)