上一页 1 ··· 3 4 5 6 7 8 9 下一页
摘要: T1 建图,点表示状态 {$x,y,0/1$} 表示A和B分别在$x$和$y$现在到某个人 跑反向bfs 必胜态到了一个点,这个点为胜败态,把这个点入队 如果一个点全部的入边都是必败态,这个点就是必败态,入队 如果一个点一直没入队,那么就是平局 T2 建反向图,点为{$x,0/1$},0是先手,1是 阅读全文
posted @ 2023-04-08 12:03 hubingshan 阅读(16) 评论(0) 推荐(0)
摘要: 并查集 例1 有 $n$ 个变量 ,可以加入若干个关系限制: $1\;i\;j $:加入 $a_i=a_j$的条件 $2\;i\;j $:加入 $a_i\not=a_j$的条件 加完之后判断合不合法。 分为 $i$ 和 $i+n$ 两种点 操作1,连 $i,j$ 和 $i+n,j+n$ 操作2,连 阅读全文
posted @ 2023-04-03 21:27 hubingshan 阅读(36) 评论(0) 推荐(0)
摘要: 简单题解 A 看作起点不变,矩阵移动,二维前缀和 B 先考虑0和1的情况 发现 $ans=\sum \left\lceil\frac{len}{2}\right\rceil$ $len$为每个1的联通块1的个数 类推到其它情况 $ans=\sum_{i=\infty}^{1} \sum\left\l 阅读全文
posted @ 2023-03-25 10:19 hubingshan 阅读(13) 评论(0) 推荐(0)
摘要: 没打比赛,赛后补题 代码还未写好,数据还未测试,可能会出一堆锅 题意 给定一棵树,在这棵树中选出若干个花子图(不重叠),使这几个花子图价值之和最大 花子图定义如下: 直径小于等于三的联通图,其中度数最大的节点为中心节点 $O$,其余节点为边缘节点 $p$ 其价值为 $|v_O-\sum v_p|$ 阅读全文
posted @ 2023-03-16 13:46 hubingshan 阅读(20) 评论(0) 推荐(0)
摘要: A 暴力递归 B CF1622E $2^n$ 枚举是 $x-r$ 还是 $r-x$ 看对答案贡献的次数 排序 即为答案 C 枚举K 按左边的最大值排序 再将左边最小按排序编号列出 枚举红蓝分界点 符合蓝色最大比红色最小的分界点即是左边答案 右边同时枚举 看枚举到的蓝色部分是否相同且满足条件 合法即为 阅读全文
posted @ 2023-02-25 17:03 hubingshan 阅读(14) 评论(0) 推荐(0)
摘要: bool cmp(int x,int y){ return dfn[x]<dfn[y]; } void build(){ sort(h+1,h+1+k,cmp); q[top=1]=1,g.h[1]=0,g.k=0; for(int i=1;i<=k;i++){ if(h[i]==1) contin 阅读全文
posted @ 2022-10-28 14:41 hubingshan 阅读(14) 评论(0) 推荐(0)
摘要: struct TU{ int k,h[N]; TU(){k=0;memset(h,0,sizeof(h));} struct AB{ int a,b,c,n; }d[N*2]; void cun(int x,int y,int z){d[++k]=(AB){x,y,z,h[x]},h[x]=k;} 阅读全文
posted @ 2022-10-28 12:12 hubingshan 阅读(16) 评论(0) 推荐(0)
摘要: struct gao{ int cnt,a[N]; gao(){memset(a,0,sizeof(a));cnt=0;} gao operator + (const gao &b)const{ gao c; int yu=0; c.cnt=max(cnt,b.cnt); for(int i=1;i 阅读全文
posted @ 2022-10-27 14:05 hubingshan 阅读(26) 评论(0) 推荐(0)
摘要: struct AB{ int k,b; }d[N]; void add(int k,int b){d[++cnt]=(AB){k,b};} int cal(int id,int x){return d[id].k*x+d[id].b;} void upd(int p,int l,int r,int 阅读全文
posted @ 2022-10-06 16:32 hubingshan 阅读(47) 评论(0) 推荐(0)
摘要: struct A{ int a[N][N],x,y; A(){memset(a,0,sizeof(a));} A operator*(A const &num){ A ans; ans.x=x,ans.y=num.y; for(int i=1;i<=x;i++){ for(int j=1;j<=y; 阅读全文
posted @ 2022-09-29 13:37 hubingshan 阅读(12) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7 8 9 下一页