自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

galiqing的博客

即便如此,人们啊。获得幸福吧!只是,心怀幸福和爱活下去吧!

  • 博客(152)
  • 收藏
  • 关注

原创 个人简介

老年退役选手的无用简介

2018-04-23 18:32:10 4171 2

原创 [caioj 1488及hdu 1588]Gauss Fibonacci

有一个g数组,f数组。g[i]=k*i+b,k与i都是给定的常数。f[0]=0,f[1]=1,f[i]=f[i-1]+f[i-2] (i>=2)。现在,要你求f[g[0]]+f[g[1]]+…+f[g[n-1]]的值,但可能最后的值会很大,所以结果需要mod M。这题看到了它的数据范围,就令人很容易想到用矩阵乘法加快速幂,但是这是一道有难度的题,耗了我不少时间。它的难点就是如何构造矩阵,对于这个问

2017-09-23 14:24:04 489

原创 关于矩阵乘法

矩阵乘法是什么?顾名思义它是矩阵之间的乘法,不过它可与数字乘法有所不同。它相乘还有一定的条件,如x行y列的矩阵可以跟y行z列的矩阵相乘,也就是说第一个矩阵的列数要跟第二个矩阵的行数一样才能相乘。那么它是怎么相乘的呢?它的方法有点奇怪,假设矩阵C一开始所有的数都为0,矩阵A与矩阵B相乘得到矩阵C,那么C[i][j]+=A[i][k]*B[k][j] (1<=k<=A的列数)。 虽说它的相乘方法有点

2017-09-21 20:40:44 708

原创 [caioj 1487及vijos 1194,利用矩阵乘法解决的经典题目九]有趣的domino

问用1*2的多米诺骨牌填满m*n的矩阵有多少种方案,结果需要mod p。这道题看上去跟矩阵乘法八竿子都打不着边,但是我们可以转换模型。其实我们可以将这个m*n矩阵的状态通过位运算转换成二进制状态,具体就是先假设i是前一个状态,而j是这一个状态,那么i状态到j状态的条件就是i or j=k 且 i and j=s[x] (0<=x<8),s[]={0,3,6,12,15,24,27,30};为什么这

2017-08-26 16:55:18 1758

原创 [caioj 1486及hdu 2157,利用矩阵乘法解决的经典题目八]多少条路呢??

给定一个有向图,有n个点,m条边。求A点到B点恰好经过k条边的方案数(可走重复边)。这道题表面上是dp,dfs什么的,但实际上是一道矩阵乘法加快速幂的裸题。为什么呢,其实是因为矩阵乘法它那相乘的特殊。首先

2017-08-25 12:34:43 446

原创 [caioj 1485及vijos 1067,利用矩阵乘法解决的经典题目七]童年的走格子

有n个格子,从入口出发(注意,入口不是第一个格子,要另外计算),需要走到最后一个格子(即出口,第n个格子)。每走一步可选择走过1~k个格子,求能走到出口的方案数。这道题的主体算法是递推,但是需要矩阵乘法优化。递推公式很简单,就是f[0]=1,f[i]=f[i-1]+f[i-2]+…+f[i-k],看到这种题,应马上想到矩阵优化,因为每次递推的公式是不变的。我们可以先求出f[1],f[2]…,

2017-08-24 12:53:50 1041

原创 [caioj 1484及Luogu P1962,利用矩阵乘法解决的经典题目六]Fibonacci数列

给定n,求第n个Fibonacci数mod 10^9+7的值。这道题如果看到了数据范围,就知道了不只模拟那么简单。不错,这题要用矩阵乘法及快速幂,其实这题感觉最大的重点就是构建矩阵,但也挺好推,结果矩阵就是这样{0,1}{1,1}。为什么呢,因为{0,1}{1,1}*{f1}{f2}=(f2}{f3(f1+f2)}(两个相邻括号之间有空行)。最后只要用结果矩阵平方n次,再乘{f0(0)}{f1(1

2017-08-22 11:51:25 337

原创 [caioj 1483,利用矩阵乘法解决的经典题目五]成群的细菌

n个培养皿排成一个圈,每个里面都有一些细菌。培养皿逆时针编号为1,2,…,n,第i个培养皿里有a[i]个细菌。细菌不停地活动着,它们有可能会进行六种操作: d i 0,表示第i个培养皿的所有细菌都死亡。 r i k,表示第i个培养皿的每个细菌分裂成k个。 c i j,表示把第j个培养皿的所有细菌复制到第i个培养皿。 t i j,表示把第j个培养皿的所有细菌转移到第i

2017-08-19 11:35:00 442

原创 [caioj 1482及vijos 1049,利用矩阵乘法解决的经典题目四]序列无限变

有n个数,也就是说初始序列为1,2,3…n;m种置换方式(有m行),每行有n个数字,这些数字互不相同而且每个数字都在1到n之间。置换操作方式为设这一行操作的第i个数字为a[i],那么就把原来序列中的第a[i]个数放到这个序列的第i的位置上,然后组成新的序列。从第一种置换方式开始操作,一直到最后一种操作,重复上面的操作方式。当最后一种操作结束后,组成了的序列又按照第一种来操作,一直循环下去,直到一共操

2017-08-18 11:29:06 483

原创 [caioj 1481及poj 3233,利用矩阵乘法解决的经典题目三]矩阵幂级数

给定一个n行n列的矩阵A,求A+A^2+A^3+…+A^k的结果,并且输出的每个数都mod m。这道题非常经典,因为它需要两次快速幂,为什么?首先A^i我们当然可以求出来,可以用快速幂,但如果计算k次就会超时。所以我们要再进行一次,举个例子,A+A^2+A^3+…+A^6,可以转化成A+A^2+A^3+A^3(A+A^2+A^3),这样就可以先二分算出(A+A^2+A^3),然后再乘A^3,便可以

2017-08-16 11:36:44 1044

原创 [caioj 1480,利用矩阵乘法解决的经典题目二]矩阵无限方

给定一个n行n列的矩阵A,求出A^x的结果,输出的每个数都mod 10^9+7。这道题是矩阵乘法加快速幂的模板题。如果暴力的话,就会超时,时间复杂度为O(x)。所以我们就在矩阵乘法的基础上引入了快速幂,时间复杂度就会大大降低。接下来重点讲一下矩阵乘法的快速幂,首先需要大家弄明白数字的快速幂,然后看一下伪代码的图片,大约就能弄明白矩阵的快速幂了。 这题弄明白快速幂后,就很简单了。#includ

2017-08-15 11:32:57 422

原创 [caioj 1479,利用矩阵乘法解决的经典题目一]点的变换

给定n(n<=10000)个点,m次操作,所有点的坐标都是已知的,现在可能对n个点做以下几种操作: 平移一定距离(M),相对X轴上下翻转(X),相对Y轴左右翻转(Y),坐标缩小或放大一定的倍数(S),所有点对坐标原点逆时针旋转一定角度(R)。 操作的次数不超过1000000次,求最终所有点的坐标。这道题最主要的算法是矩阵乘法,这些操作都可以转换成一个3*3的矩阵。转换后,首先先将总的操

2017-08-14 11:40:29 479

原创 [CCPC2020 绵阳]G. Game of Cards

Portal博弈题。并不是sgsgsg题,而且直接的脑子博弈。设输入为a,b,c,da,b,c,da,b,c,d。首先若b=c=d=0b=c=d=0b=c=d=0,直接判断即可。若不是,那么aaa的作用就是每次减111,所以先不考虑它,即先把它当做000来考虑。而若只剩下了b,c,db,c,db,c,d,那么只有两种操作,b−=2,c+=1b-=2,c+=1b−=2,c+=1或b−−,c−−b--,c--b−−,c−−,显然真正起决定作用的是bbb这个值。先不考虑ccc的影响,那么其实就是一个经典的

2022-01-11 18:06:24 490

原创 [AtCoder Regular Contest 122]C - Calculator

Portal这题很好地看出了我是一个sb。。。看来我一年没碰OI,实力还是有所倒退。。。但怎么感觉倒退了这么多???我明明感觉高三过得很快~~(划水)~~啊,可能是我本来就菜吧,哭。首先看到130130130这个数字就很有迷惑性好吧,因为65∗2=13065*2=13065∗2=130,还以为是二进制呢。。。(事后看来我这么想就像是一个思维僵化的sb)然后就是想不下去了啊。但其实你发现这个3,43,43,4操作,其实很像fibfibfib数列,所以我就往那边想了。但是由于我是一个sbsbsb,fib

2021-06-17 23:41:06 342

原创 [NOMURA Programming Competition 2020]E - Binary Programming

Portal先考虑倒着操作,也就是变成每次删除后统计贡献,最后加上原序列的贡献即可。由于显然可以将删除顺序看成一个排列,那么就考虑对这个排列进行dpdpdp。也就是设f(i)f(i)f(i)表示仅考虑前iii个字符时的最大权值(不考虑原序列的贡献),转移到f(i+1)f(i+1)f(i+1)就是新增第i+1i+1i+1个字符。当新增字符为111时,通过贪心可以发现一定是最后删除最优,所以它新增的贡献就为⌈i2⌉\lceil\frac{i}{2}\rceil⌈2i​⌉。而当新增字符为000时,贡献其实就是

2020-06-05 11:43:40 240

原创 [AtCoder Regular Contest 098]F - Donation

Portal挺套路的。。。考虑倒过来操作。假设最后在点xxx上,剩余的钱为ansansans,那么ansansans一定不小于Ax−BxA_x-B_xAx​−Bx​,先假定W=ans=Ax−BxW=ans=A_x-B_xW=ans=Ax​−Bx​。之后让W+=BxW+=B_xW+=Bx​,然后若yyy与xxx直接相连,并且WWW不小于Ay−ByA_y-B_yAy​−By​,就可以让W+=ByW...

2020-02-17 17:13:23 297

原创 [AtCoder Grand Contest 040]D - Balance Beam

Portal首先考虑一个固定的顺序如何计算概率,就是设ddd为maxi=1n∑j=1ib(j)−a(j)max_{i=1}^n\sum_{j=1}^ib(j)-a(j)maxi=1n​∑j=1i​b(j)−a(j),然后RingoRingoRingo从起点走ddd秒的距离占总长的比例就是答案了。证明显然。整数部分指那些被完全经过的平衡木,小数部分指那个被部分经过的平衡木(可能不存在)。然后先...

2019-12-12 16:22:50 334

原创 CSP-S 2019游记

第一次写游记,好紧张本来想写长一点的,但由于考的太差了,所以就随便写写吧。DAY1看完T1T1T1题面时,我一度以为nnn的范围会非常大。但当我看完数据范围时,这不就是一个模拟嘛。。。稳了(flag1)看完T2T2T2题面时,仔细想了一会,由于括号类型的题可能做法比较单一吧,没多久就有了一个O(n)O(n)O(n)的做法,但由于不放心,就写了个拍。可是当时考场上面忘记了怎么开栈,所以就没有...

2019-12-01 17:45:53 237

原创 [bzoj 5466]保卫王国

Z国有n座城市,n-1条双向道路,每条双向道路连接两座城市,且任意两座城市都能通过若干条道路相互到达。Z国的国防部长小 Z 要在城市中驻扎军队。驻扎军队需要满足如下几个条件:一座城市可以驻扎一支军队,也可以不驻扎军队。由道路直接连接的两座城市中至少要有一座城市驻扎军队。在城市里驻扎军队会产生花费,在编号为i的城市中驻扎军队的花费是p_i。小 Z很快就规划出了一种驻扎军队的方案,使总花费最小。...

2019-10-24 15:44:49 464

原创 [AtCoder Grand Contest 036]F - Square Constraints

题意好题。明确要用容斥原理。设i能选择的pi范围为li~ ri。若能求到对于每个k(0<=k<=n,因为n~ 2n-1的l为0),满足所有pi<=ri,至少有k个pi<li的排列数,就可以用二项式反演进行容斥了。而没有性质的话这题就不可做了,所以一开始肯定是找性质。而这题最关键的性质就是0~n-1的r肯定都大于l。把0~ n-1的li-1和n~ 2n-1的r放...

2019-07-23 23:39:05 380

原创 [bzoj 4424]Cf19E Fairy

给定 n 个点,m 条边的无向图,可以从图中删除一条边,问删除哪些边可以使图变成 一个二分图。这道题还是不错的。看到无向图的题目,应该一开始要往dfs树上面想。其实是因为最近吃够教训了那么根据上面套路,我们先弄出一棵生成树。对于那些非树边,如果x与y之间的点数为偶数,称之为偶边,如果为奇数,就为奇边。二分图的充要条件是不存在奇环,且点数要在2个或以上(这个出题人好像没卡),所以我们的目...

2019-07-19 22:59:24 312

原创 [Codeforces Global Round 3]F. Foo Fighters

题意链接很有意思的一道题,成功地区分掉了我这种弱鸡。考虑到and的特殊性质,0and1为0。这就启示着我们要根据mark的二进制中1所在的最高位来依次进行考虑,因为这样决策时就不会对已经决策过的物品产生影响。具体做法就是从第0位到第62位,第i位考虑2i−1&lt;=mark&lt;2i+12^i-1&lt;=mark&lt;2^{i+1}2i−1<...

2019-06-03 17:51:28 346

原创 [bzoj 2525--Poi2011]Dynamite

Byteotian Cave的结构是一棵N个节点的树,其中某些点上面已经安置了炸药,现在需要点燃M个点上的引线引爆所有的炸药。某个点上的引线被点燃后的1单位时间内,在树上和它相邻的点的引线会被点燃。如果一个有炸药的点的引信被点燃,那么这个点上的炸药会爆炸。求引爆所有炸药的最短时间。好题啊。...

2019-05-06 13:39:57 193

原创 [bzoj 4561--JLoi2016]圆的异或并

在平面直角坐标系中给定N个圆。已知这些圆两两没有交点,即两圆的关系只存在相离和包含。求这些圆的异或面积并。异或面积并为:当一片区域在奇数个圆内则计算其面积,当一片区域在偶数个圆内则不考虑。看到这个求面积就应该想到扫描线啊,还是太菜了。我们发现只要知道每个圆覆盖它的圆的个数的奇偶性就可以计算答案了,并且题目中有个重要的性质:要不包含,要不相离,所以我们如果知道离每个圆的最近的圆弧是上还是下,...

2019-04-25 17:51:29 175

原创 [bzoj 4524--Cqoi2016]伪光滑数

若一个大于1的整数M的质因数分解有k项,其最大的质因子为Ak,并且满足Ak^K<=N,Ak<128,我们就称整数M为N-伪光滑数。现在给出N,求所有整数中,第K大的N-伪光滑数。这种问题首先发现一个数是否是伪光滑数只跟它的最大的质因子和分解后的项数有关,而只有31种质因子,所以总共的类别是有限的(把最大的质因子和分解后的项数都相同的归为一类)。那根据套路开个大根堆,一开始把所有...

2019-04-19 17:14:12 143

原创 [bzoj 4709--Jsoi2011]柠檬

Flute很喜欢柠檬。它准备了一串用树枝串起来的贝壳,打算用一种魔法把贝壳变成柠檬。贝壳一共有 N (1 ≤ N ≤ 100,000)只,按顺序串在树枝上。为了方便,我们从左到右给贝壳编号 1…N。每只贝壳的大小不一定相同,贝壳 i 的大小为 si(1 ≤ si ≤10,000)。变柠檬的魔法要求,Flute 每次从树枝一端取下一小段连续的贝壳,并选择一种贝壳的大小 s0。如果 这一小段贝壳中 ...

2019-04-05 14:10:31 320

原创 [bzoj 3622]已经没有什么好害怕的了

已经使Modoka有签订契约,和自己一起战斗的想法后,Mami忽然感到自己不再是孤单一人了呢。于是,之前的谨慎的战斗作风也消失了,在对Charlotte的傀儡使用终曲——Tiro Finale后,Mami面临着即将被Charlotte的本体吃掉的局面。这时,已经多次面对过Charlotte的Honiura告诉了学OI的你这样一个性质:Charlotte的结界中有两种具有能量的元素,一种是“糖...

2019-03-16 14:07:49 175

原创 [bzoj 2302--HAOI2011]Problem c

给n个人安排座位,先给每个人一个1~n的编号,设第i个人的编号为ai(不同人的编号可以相同),接着从第一个人开始,大家依次入座,第i个人来了以后尝试坐到ai,如果ai被占据了,就尝试ai+1,ai+1也被占据了的话就尝试ai+2,……,如果一直尝试到第n个都不行,该安排方案就不合法。然而有m个人的编号已经确定(他们或许贿赂了你的上司…),你只能安排剩下的人的编号,求有多少种合法的安排方案。由于答...

2019-01-30 23:28:05 1285

原创 [bzoj 2121]字符串游戏

BX正在进行一个字符串游戏,他手上有一个字符串L,以及其他一些字符串的集合S,然后他可以进行以下操作:对于一个在集合S中的字符串p,如果p在L中出现,BX就可以选择是否将其删除,如果删除,则将删除后L分裂成的左右两部分合并。举个例子,L=‘abcdefg’ ,S={‘de’},如果BX选择将’de’从L中删去,则删后的L=‘abcfg’。现在BX可以进行任意多次操作(删的次数,顺序都随意),他想...

2019-01-26 17:29:16 356

原创 [bzoj 1226--SDOI2009]学校食堂Dining

小F的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭。学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴。当然,不同的人口味也不一定相同,但每个人的口味都可以用一个非负整数表示。由于人手不够,食堂每次只能为一个人做菜。做每道菜所需的时间是和前一道菜有关的,若前一道菜的对应的口味是a,这一道为b,则做这道菜所需的时间为(aor b)-(a and b),而做第一道菜是不需要计算时间...

2019-01-25 23:40:16 184

原创 [bzoj 4380--POI2015]Myjnie

有n家洗车店从左往右排成一排,每家店都有一个正整数价格p[i]。有m个人要来消费,第i个人会驶过第a[i]个开始一直到第b[i]个洗车店,且会选择这些店中最便宜的一个进行一次消费。但是如果这个最便宜的价格大于c[i],那么这个人就不洗车了。请给每家店指定一个价格,使得所有人花的钱的总和最大。这道题#include&amp;lt;cstdio&amp;gt;#include&amp;lt;cstring&amp;gt...

2019-01-12 10:37:57 225

原创 [bzoj 3521--POI2014]Salad Bar

有一个长度为n的字符串,每一位只会是p或j。你需要取出一个子串S(从左到右或从右到左一个一个取出),使得不管是从左往右还是从右往左取,都保证每时每刻已取出的p的个数不小于j的个数。你需要最大化|S|。这道题先推一下式子。满足从左到右条件时需要sum[p][i]-sum[p][l-1]&gt;=sum[j][i]-sum[j][l-1],那移一下,变成sum[p][i]-sum[j][i]&g...

2018-12-30 17:13:51 186

原创 [bzoj 5042]LWD的分科岛

要求用优秀的复杂度求静态RMQ这道题首先肯定不能带log,那可以考虑离线做,让询问右端点递增。枚举右端点,用并查集fa[i]表示i~r的极值所在的位置,然后可以发现改变的位置可以用单调栈来解决,#include&amp;lt;cstdio&amp;gt;#include&amp;lt;cstring&amp;gt;#include&amp;lt;cmath&amp;gt;#include&amp;lt;algorithm

2018-12-27 14:02:29 148

原创 [bzoj 4382--POI2015]Podział naszyjnika

长度为n的一串项链,每颗珠子是k种颜色之一。 第i颗与第i-1,i+1颗珠子相邻,第n颗与第1颗也相邻。切两刀,把项链断成两条链。要求每种颜色的珠子只能出现在其中一条链中。 求方案数量(保证至少存在一种),以及切成的两段长度之差绝对值的最小值。首先我们可以发现如果只考虑一种颜色,那么只要相邻的两颗颜色相同的之间选两个间隔断开就可以了,这样如果有x颗颜色相同,就会有x个区间,每一个区间里的任...

2018-12-22 14:02:02 235

原创 [bzoj 3526--POI2014]Card

有n张卡片在桌上一字排开,每张卡片上有两个数,第i张卡片上,正面的数为a[i],反面的数为b[i]。现在,有m个熊孩子来破坏你的卡片了!第i个熊孩子会交换c[i]和d[i]两个位置上的卡片。每个熊孩子捣乱后,你都需要判断,通过任意翻转卡片(把正面变为反面或把反面变成正面,但不能改变卡片的位置),能否让卡片正面上的数从左到右单调不降。这道题很容易想到一个贪心策略,那就是当左端点确定时,最优...

2018-12-22 13:41:35 248

原创 [bzoj 4383--POI2015]Pustynia

给定一个长度为n的正整数序列a,每个数都在1到10^9范围内,告诉你其中s个数,并给出m条信息,每条信息包含三个数l,r,k以及接下来k个正整数,表示a[l],a[l+1],…,a[r-1],a[r]里这k个数中的任意一个都比任意一个剩下的r-l+1-k个数大(严格大于,即没有等号)。请任意构造出一组满足条件的方案,或者判断无解。这道题首先运用差分约束的思想,把小的往大的连边,然后拓扑排序...

2018-12-09 16:27:57 162

原创 [bzoj 4381--POI2015]Odwiedziny

给定一棵n个点的树,树上每条边的长度都为1,第i个点的权值为a[i]。Byteasar想要走遍这整棵树,他会按照某个1到n的全排列b走n-1次,第i次他会从b[i]点走到b[i+1]点,并且这一次的步伐大小为c[i]。对于一次行走,假设起点为x,终点为y,步伐为k,那么Byteasar会从x开始,每步往前走k步,如果最后不足k步就能到达y,那么他会一步走到y。请帮助Byteasar统计出每...

2018-12-08 16:57:13 120

原创 [bzoj 4725--POI2017]Reprezentacje ró?nicowe

给定一个数列a:当n&amp;lt;=2时,a[n]=n当n&amp;gt;2,且n是奇数时,a[n]=2a[n-1]当n&amp;gt;2,且n是偶数时,a[n]=a[n-1]+r[n-1]其中r[n-1]=mex(|a[i]-a[j]|)(1&amp;lt;=i&amp;lt;=j&amp;lt;=n-1),mex{S}表示最小的不在S集合里面的非负整数。数列a的前若干项依次为:1,2,4,8,16,21,42,51,102,1..

2018-12-08 14:07:52 124

原创 [bzoj 4727--POI2017]Turysta

给出一个n个点的有向图,任意两个点之间有且仅一条有向边。对于每个点v,求出从v出发的一条经过点数最多,且没有重复经过同一个点两次及两次以上的简单路径。这道题首先我们要知道一个性质,一个强连通的竞赛图存在哈密顿回路。#include&amp;amp;lt;cstdio&amp;amp;gt;#include&amp;amp;lt;cstring&amp;amp;gt;#include&amp;amp;lt;cstdlib&amp;am

2018-12-05 13:04:58 214

原创 [bzoj 4724--POI2017]Podzielno

B进制数,每个数字i(i=0,1,…,B-1)有a[i]个。你要用这些数字组成一个最大的B进制数X(不能有前导零,不需要用完所有数字),使得X是B-1的倍数。q次询问,每次询问X在B进制下的第k位数字是什么(最低位是第0位)。这道题。。。,很sb。很容易发现只要各个数位上的数值的和是B-1的倍数就可以满足条件了,那之后又发现a[i]都是大于1的,那么只要让a[Σa[i]∗i\Sigma a...

2018-12-01 15:49:58 152

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除