上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 37 下一页
摘要: 用于查找主串中有多少个模式串 int ne[maxn];//存节点u回跳边的节点 int ch[maxn][80],cnt[maxn],idx; void buildtrie(){ for(int i=0;i<=idx;i++){ for(int j=0;j<79;j++){ ch[i][j]=0; 阅读全文
posted @ 2025-03-16 16:34 Marinaco 阅读(4) 评论(0) 推荐(0)
摘要: 题目链接:https://www.luogu.com.cn/problem/P1196 题意: 两种操作:M i j 表示将i所在战舰组移动到j所在战舰组后面 C i j 查询i,j之间的战舰数量 思路: 带权并查集,分别开两个数组siz[i],dist[i]记录战舰组战舰数量和战舰到战舰头的距离 阅读全文
posted @ 2025-03-16 15:09 Marinaco 阅读(14) 评论(0) 推荐(0)
摘要: 题目链接:https://atcoder.jp/contests/abc383/tasks/abc383_d 题意: 找出不大于n的具有9个因子的数 思路: 有因数分解定理:x需要满足:x=p1*p1*p2*p2 或者 x=pow(p1,8) 筛出根号n以内的素数,组合得出答案 要注意整数过大溢出 阅读全文
posted @ 2025-03-16 09:39 Marinaco 阅读(13) 评论(0) 推荐(0)
摘要: 题目链接:https://www.luogu.com.cn/problem/P4427 题意: 给定一颗树,m次询问,每次询问u-v之间每个节点的k次方之和 思路: 树上前缀和:res=ans[u][k]+ans[v][k]-ans[lca(u,v)][k]-ans[fa[lca(u,v)][0]] 阅读全文
posted @ 2025-03-15 18:14 Marinaco 阅读(15) 评论(0) 推荐(0)
摘要: int dep[maxn];//存u的深度 int fa[maxn][50];//存从u向上跳pow(2,i)的祖先节点 //流程:1.dfs创建st表 //2.利用st表求LCA vector<int>e[maxn]; void dfs(int u,int father){ dep[u]=dep[ 阅读全文
posted @ 2025-03-15 17:16 Marinaco 阅读(28) 评论(0) 推荐(0)
摘要: 时间复杂度O(mlogn*logn) 用于解决u-v最短路径权值问题 解决u子树点权值和问题 可以将两点之间深度较深的那一个点的权值映射到这条边的权值 从而通过维护点权值间接维护边权值 每次只需要lca那一点的权值不动即可 int w[maxn]; vector<int>e[maxn]; int f 阅读全文
posted @ 2025-03-15 10:31 Marinaco 阅读(24) 评论(0) 推荐(0)
摘要: 题目链接:https://www.luogu.com.cn/problem/P1379 题意: 求将初始状态转移至目标状态的最小步数(每次移动‘0’) 思路: 需要将每个状态记录在一个map表里,当出现新的状态时才将其加入,否则不加入(因为如果以前出现过,那么现在的状态肯定更劣) 将每个状态转化为字 阅读全文
posted @ 2025-03-14 16:56 Marinaco 阅读(13) 评论(0) 推荐(0)
摘要: int a[maxn]; vector<int>v; struct node{ int ch[2]; int s; }tr[maxn*22]; int root[maxn],idx; void build(int &x,int l,int r){ x=++idx; if(l==r)return; i 阅读全文
posted @ 2025-03-13 20:36 Marinaco 阅读(8) 评论(0) 推荐(0)
摘要: 题目链接:https://www.luogu.com.cn/problem/P4551 题意: 给定义一颗带权树,求其中两个节点边权异或和最大值 思路: 结论是:树上两个节点i,j由于 x ^ x=0 的异或性质,所以其异或和为(根节点,i)路径异或和 xor (根节点,j)路径异或和 所以dfs求 阅读全文
posted @ 2025-03-13 19:37 Marinaco 阅读(29) 评论(0) 推荐(0)
摘要: 用于快速求出一个序列 其中两个值 的xor最大值 由于 从高位到低位 找与给定数 数位相反 的路径 所以底层逻辑是贪心,并且正确性显然 struct trie{ int ch[maxn*31][2],idx; void insert(int x){ int p=0; for(int i=31;i>= 阅读全文
posted @ 2025-03-13 19:31 Marinaco 阅读(16) 评论(0) 推荐(0)
上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 37 下一页
//雪花飘落效果