摘要: #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=105; const int mod=1e9+7; int n; struct matrix { ll a[maxn][maxn]; m 阅读全文
posted @ 2020-07-18 21:00 zlc0405 阅读(116) 评论(0) 推荐(0) 编辑
摘要: #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=3e5+100; const int mod=998244353; ll fpow (int x,int y) { ll ans=1; 阅读全文
posted @ 2020-07-18 20:12 zlc0405 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 题意: 定义一种特殊的加法,这种加法没有进位,其他与普通加法一样,比如16+16=212。 给出一个数,询问这个数可能被哪两个数用特殊加法构成,并且每次询问修改这个数数位上的一个数字,输出更新后的答案。 题解: 矩阵乘法优化dp 矩阵乘法可以用来加速线性递推式。 以斐波那契数列为例: f[n] = 阅读全文
posted @ 2020-07-18 20:01 zlc0405 阅读(328) 评论(0) 推荐(0) 编辑
摘要: /* *1380E.Merging Towers *给出半径为1~n的n个盘子和m个塔,要求每个塔上盘子的半径始终从底向上递减 *一次操作可以将一个塔上的任意个盘子移动到另一个塔的顶部。 *令某一情形下的复杂度为将所有盘子移动到同一个塔上所需的最小操作数。 *题目给出m-1次询问,每次询问时输出当前 阅读全文
posted @ 2020-07-18 19:31 zlc0405 阅读(222) 评论(0) 推荐(0) 编辑
摘要: /* *CF1380D.Berserk And Fireball *n个战士站成一排,分别有武力值ai。 *你有两种法术:火球和激怒。 *火球可以消耗x个法力,消灭连续k个战士。 *激怒可以消耗y个法力,选择相邻的两个战士,武力值大的会消灭武力值小的 *求最后留下的战士和数组b一样所需要的最小法力花 阅读全文
posted @ 2020-07-18 16:56 zlc0405 阅读(258) 评论(0) 推荐(0) 编辑
摘要: #include<bits/stdc++.h> using namespace std; const int maxn=2e5+100; int t; int n; int a[maxn]; int b[maxn]; vector<int> g[maxn]; int visit[maxn]; vec 阅读全文
posted @ 2020-07-18 16:26 zlc0405 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出一棵树,每次可以剪掉同一顶点的k个叶子,询问最多能剪几次。 题解: 如果k是1,那么答案就是n-1。 然后开一个队列,每次把叶子数大于k的叶子入队,取出队头的时候更新叶子数。全学jiangly的。 #include<bits/stdc++.h> using namespace std; 阅读全文
posted @ 2020-07-18 16:00 zlc0405 阅读(322) 评论(1) 推荐(0) 编辑
摘要: A.TPM 给出三个元素x,y,z,x表示max(a,b),y表示max(a,c),z表示max(b,c),请输出xyz。 推导后发现较大的两个元素必须一样,否则无解,然后输出两遍较小的元素,一遍较大的元素即可。 #include<bits/stdc++.h> using namespace std 阅读全文
posted @ 2020-07-18 15:02 zlc0405 阅读(179) 评论(0) 推荐(0) 编辑