- 博客(11)
- 资源 (1)
- 收藏
- 关注
原创 2023年12月GESP-5 编程题答案解析
如果不后缀预处理答案 ans[i]数组, 每次往后查找可能会超时.否则 i 不是幸运数, ans[i] = ans[i]+1。那么如果i 是幸运数, ans[i] = i;首先筛法预处理出每个数是否是幸运数;
2024-04-02 23:58:55 641
原创 2023年12月GESP-6 编程题答案解析
当 i + a[j] > n 是, 这样的f[i] 都可能是答案, 因为此时的i 可以一步跳过终点.4. 意思就是深度大的优先往上爬, 直到x’==y’, 相等的时候x就是原来的x与y的最近公共祖先.如果 father[pos]可以继续跳, 那就跳到 father[father[pos]]因为这两个算法都能保证每个节点的dp值在求解的时候,它的前继节点都是已经求解过的.用倍增, father[pos][j] 表示 从pos连跳。
2024-04-02 15:32:17 415
原创 2023年12月GESP-7 编程题答案解析
4. 意思就是深度大的优先往上爬, 直到x’==y’, 相等的时候x就是原来的x与y的最近公共祖先.如果 father[pos]可以继续跳, 那就跳到 father[father[pos]]本质就是赚到a物品卖出的钱, 花费b物品购买的钱, 与每次交易的手续费1元。2. 如果dep[x] > dep[y], x = father(x);模拟1: 计数数组标记每个节点的所有祖先出现的次数,出现次数为。用倍增, father[pos][j] 表示 从pos连跳。a换x, x换y, y换z…
2024-03-30 09:15:28 959
原创 2024年03月GESP-8 编程题答案解析
直接模拟链表, Next[i]记录i后面第一个与a[i] 相同的位置, 每次模拟的的时候直接从 pos 跳到 Next[pos] + 1.如果 next[pos]+1可以继续跳, 那就跳到 next[next[pos]+1] + 1。自己做的随机数勉强能过, 但是可以构造全是1的数据卡一下.用倍增, next[pos][j] 表示 从pos连跳。pos可以跳到next[pos]+1;这样做还不够, 因为题目多次询问。有没有同学能够构造出比。
2024-03-26 16:49:38 930
原创 2024年03月GESP-7 编程题答案解析
明天再写,休息/(ㄒoㄒ)/~~太简单了,懒得解释,直接上代码。宽搜, 深搜, 二分图染色。大模拟, 字符串哈希。
2024-03-19 00:32:50 364
原创 2024年03月GESP-5 编程题答案解析
枚举[1,n]中的每一个数i,对i进行唯一分解定理…数论:因子,唯一分解定理,动态规划,筛法。埃氏筛或者欧拉筛的时候转移就很快了.这个动态规划怎么做可以更快呢?的最大质因子,如果转移呢?的质因子有很多,任意一个。
2024-03-19 00:12:21 993 2
原创 2024年03月GESP-6 编程题答案解析
f[i] 表示分解成a,b序列和的方案数,得到:f[0] = 1上面的递推式也就是爬楼梯的思维(很简单对吗…)那么问题的关键是: 哪些状态和答案有关?当 i>=n-c && i-a=n-c && i-b
2024-03-18 21:40:29 526 1
原创 hdu 6446/1009 Tree and Permutation
/* 树:O(n)求每一条线段两边的顶点数*/#include <bits/stdc++.h>using namespace std;typedef long long LL;const int N = 1e5+10;const LL mod = 1e9+7;int n;int e[N], f[N];vector<pair<int, int&
2018-08-26 23:03:11 95
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人