09 2018 档案
摘要:题解: 第一题:开始想找循环节,但数据很好卡; 后来想小的一直拿,那么另一个就会出现负数,抵消+打表发现就是2^k在mod(n+m)的值; #include<bits/stdc++.h> using namespace std; #define ll long long ll mod, n, m;
阅读全文
摘要:矩阵取数游戏 链接:https://www.luogu.org/problemnew/show/P1005 对于一个给定的 n \times mn×m 的矩阵,矩阵中的每个元素 ai,j 均为非负整数。游戏规则如下: 帅帅想请你帮忙写一个程序,对于任意矩阵,可以求出取数后的最大得分。 n, m <
阅读全文
摘要:题解: 第一题:T可以写成 b^n * S + ( x1*b^0 + x2*b^1 + x3*b^p2 + …… xn*b^n) * a,; n的大小是logT的,我们就可以枚举n, 然后用a拆分剩下的,a拆分时尽量用大的b^n去拆分; 第二题: 比如ai 向 i 连边,表示ai需要和大小为i的数进
阅读全文
摘要:第一题:抽屉原理,维护前缀和,出现一样的中间就可以了; 我看成了不能选一样的数(其实我觉得题意有歧义,也可能是我太久没学语文了),难度翻翻,以后要认真审题; #include<bits/stdc++.h> using namespace std; const int M = 1000005; boo
阅读全文
摘要:题解: 可持久化并查集(今天早上现学习YY的, 启发式合并logN, 就不用路径压缩了, 不然会要N*logN*logN的空间) #include<bits/stdc++.h> using namespace std; const int M = 100005; int n, m; struct N
阅读全文
摘要:题解: 第一题:类比只有三根,四根的柱子的汉诺塔,柱子越多越好,柱子盘子固定,步数一定,如果我有K个盘子,J个柱子,把P个盘子移到1个柱子的步数为F【P】【J】, 那么剩余K-P个盘子移到1个柱子就是F【K-P】【J-1】, 放P的柱子不能再放了,然后我们又有J个可以自由移动的柱子, 所以f[ i
阅读全文
摘要:第一题:线段树求最大连续子段和,维护四个信息:区间最大子段和, 区间和, 左边最大子段和, 右边最大子段和; 查询的时候返回的是一个指针,我开始用的zero, 节约空间, 后来发现会同时有多个询问用到zero,zero会不断变化, 所以要tail++,或重新写一个up函数 #include<bits
阅读全文
摘要:第一题: 插板法,多思考一下应该出得来; #include<bits/stdc++.h> using namespace std; #define ll long long const ll mod = 998244353; const int M = 1000005; ll dp[M], fac[
阅读全文
摘要:第一题:O (n*m) 对于查询矩阵xl, yl, xr, yr; 可以变为 sum(x, i) * (i, y) xl <= x <= xr, yl <= y <= yr, 1 <= i <= n; 用一个乘法分配率+前缀和 变为sum ( a[xl - xr][i] * b[i][yl - yr
阅读全文
摘要:题解: 第一题:每个柱子可以到达的位置是可求的一个区间,我们得到区间,并和下一个柱子的限制取交集,得到一个新区间,这样一直做下去,就可以得到最终答案的区间,我们肯定贪心走到最低点,知道了这个坐标,就可以O(1)得到答案,不用在考虑中间是怎么走的(我就是这点没有想到,然后去暴力DP了);最后在注意一下
阅读全文
摘要:题解 第一题:水 #include<bits/stdc++.h> using namespace std; const int M = 1e5 + 5; struct Node{ int s, t; }p[M]; bool cmp(Node A, Node B){ return A.t > B.t;
阅读全文
摘要:题解: 第一题: 这道题达到最终状态就停了,p是甲最终赢的概率,我们最后状态即p=1, 或p = 0;最初p = 0.5; 从0.5到1或0的增量都是0.5,甲还要赢x场, 乙还要赢y场,当x,y发生变动时,p改变,假设增量为q, 我们就应该投入 q/0.5 * 2 ^(2n - 1), (占总共钱
阅读全文
摘要:一场摸你赛 2018年7月22日 (请选手务必仔细阅读本页内容) 一.题目概况 中文题目名称 开会 围墙 搬砖 英文题目名称 CP gfw bricks 可执行文件名 CP gfw bricks 输入文件名 CP.in gfw.in bricks.in 输出文件名 CP.out gfw.out br
阅读全文
摘要:第一题:SPFA,最难的还是读入,一般读入接上一行的\n; 第二题:LIS即为答案,一个逆序对一条边,只有LIS里面没有边,应该多想一下,这道题很简单,但我方向完全偏了; 第三题:搜索+剪枝,所有数据都很小,所以可以实际跑的很快,本来想状压没搞出来; #include<algorithm> #inc
阅读全文
摘要:题解: 第一题:裸的exgcd,注意有很多特判; #include<bits/stdc++.h> using namespace std; #define ll long long const ll P = 65535; ll exgcd(ll a, ll b, ll &x, ll &y){ if(
阅读全文

浙公网安备 33010602011771号