上一页 1 ··· 45 46 47 48 49 50 51 52 53 ··· 75 下一页
摘要: 原题链接 考察:线段树 or 树状数组 思路: 套模板即可. 注意:build函数里,赋值不是赋值a[u],而是a[l].l、r是1~n范围内.u是线段树结点编号. 1 #include <iostream> 2 #include <algorithm> 3 #include <cstring> 4 阅读全文
posted @ 2021-03-04 13:24 acmloser 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:树状数组 +贪心 or归并排序+贪心 思路: 首先一个定理:冒泡排序的交换次数 = 逆序对个数.证明: 冒泡排序每次交换减少一个逆序对,当最后逆序对数量 = 0,交换次数>=k. 又因为每次只能减少一个.那么必然可以取到k.对于某一个人i而言,i前面>hi有k个,后面<hi有t个.k 阅读全文
posted @ 2021-03-04 08:54 acmloser 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:树状数组 思路: 数据中x,y按升序的方式给出,当前xi yi 对于在它前面的星星,y一定<=yi,x不定,对于它后面的星星,要么y>=yi要么x>=xi,可以发现后面的星星一定不在计算的范围内.于是我们可以边读数边计算1~xi的前缀和. 注意:x可以从0开始,add函数不允许下标是 阅读全文
posted @ 2021-03-03 19:14 acmloser 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:dp+矩阵快速幂 思路: 首先了解邻接矩阵的一个性质:当邻接矩阵Tk , aij表示从i到j长度为k的路径数有aij条.以k = 2为例,aij*ajk 表示从i->j有一条路,从j->k有一条路.总体就是i->k有一条路.当j变化时就能得到方案数. 但是这道题的边权并非为1,这个性 阅读全文
posted @ 2021-03-03 10:47 acmloser 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察: 矩阵快速幂 思路: f[N]表示1~n栈灯在t 秒的状态,每盏灯只与它自己和它左边的灯有关.构造n*n的矩阵,在它自己和它左边的灯的位置取1,可以发现res[i] = (f[i-1]*a[j][i]+res[i])%2. 1 #include <iostream> 2 #inclu 阅读全文
posted @ 2021-03-02 22:55 acmloser 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:矩阵快速幂+floyd最短路 思路: 首先明白这道题不是矩阵相乘,res[i][j] = min(res[i][j],a[i][k]+b[k][j]). a[i][j]如果代表经过x条路的最短路,b[i][j]代表经过y条路的最短路.那么res是经过x+y条路的最短路. 注意: 图上 阅读全文
posted @ 2021-03-02 21:07 acmloser 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:矩阵快速幂 思路: 构造1X4的矩阵{f[n],f[n-1],f[n-2],S[n]},根据给出的递推公式很容易构造出a矩阵.注意数据有n = 1和n = 0的情况,需要特判. 1 #include <iostream> 2 #include <algorithm> 3 #inclu 阅读全文
posted @ 2021-03-02 17:20 acmloser 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:矩阵快速幂 思路: 入门题,ans = fk = f*fk-1.注意的是不能只保留主对角线的元素,因为主对角线的元素会随同行同列的元素变化 1 #include <iostream> 2 #include <algorithm> 3 #include <cstring> 4 usin 阅读全文
posted @ 2021-03-02 16:16 acmloser 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:矩阵快速幂 思路: 题目的递推式是找不到关系矩阵的,由此必须换一个思路.由题目的数据范围发现n小m大,可以考虑由第i列推到第i+1列,我们要由一个1x(n+2)的矩阵*(n+2)x(n+2)的矩阵 = 新的1xn+2的矩阵.从常数项先考虑,我们要从233->2333. 显然 2333 阅读全文
posted @ 2021-03-02 15:45 acmloser 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:线性dp+矩阵快速幂 思路: 将限制条件作为动态规划的维度,某两个数字不能紧连,这只与骰子的上面或下面有关,可以用f[i][j] 表示第i个骰子,其最上面是j.f[i][j] = f[i-1][k]*4,j的对面与k不互斥,骰子可以绕中心旋转.如果互斥常数就是0.时间复杂度n*6*6 阅读全文
posted @ 2021-03-02 09:19 acmloser 阅读(70) 评论(0) 推荐(0) 编辑
上一页 1 ··· 45 46 47 48 49 50 51 52 53 ··· 75 下一页