09 2024 档案
摘要:T1一般图最小匹配 点击查看代码 #include<bits/stdc++.h> using namespace std; #define int long long const int N=5000+107; int n,m,a[N]; int read() { int f=1,s=0;char
阅读全文
摘要:T1光 我们来考虑一个格加 或者减 ,这样有一个比较好的性质,它能提供 的贡献还不会溢出,这样我们就有一个比较好的思路,我们枚举 所无法造成的贡献,很明显只有 种,然后我们就可以再枚举 来算
阅读全文
摘要:T1几何 DP题,我们先考虑,设 表示目前到了第 个字符, 串已经匹配到了第 个字符(前面可能已经有若干个 串的重复), 串已经匹配到了第 个字符(同样,前面可能已经有若干个 串的重复)
阅读全文
摘要:T1 奇观 挺有趣的思路,每个字母相互独立, 和 ,我们可以把 分成一个两个端点和一个三个端点的路径(以同一个起点开始),而 为了方便统计,我们也可以把它分成两个两个端点和一个三个端点的路径(同样是以同一个端点为起点)。那我们定义 $s_{i} = \
阅读全文
摘要:1.网络流 2. 凸包,旋转卡壳 3.csp4 T2大力分讨 4. csp3 T4超神线段树 5.逆天生成函数 6.连训模拟1 T3 (讨厌一切概率期望和排列组合)( 7.博客(想起来就写点)
阅读全文
摘要:题目 正数通常比较好处理,那我们先想个办法把所有的负数转为正数,我们可以求一下所有负数的和 ,这一定是最小数,那我们考虑如何将其变小一点,无非是去掉一个加上的负数或是加上一个正数,诶,那这样,去掉负数不就等于加上一个正数吗,这样我们就可以将所有的负数转化为正数,选出来的数在加上 \(
阅读全文
摘要:定理:对于一个有 个节点的无根树,它的结构可以有 种可能。 至于证明,我们可以用 序列 来证明。 序列 度娘给出的定义是: 数列 是无根树的一种数列。在组合数学中, 数列 由有一个对于
阅读全文
摘要:T1 原题 根据倒数第二,三个部分分的提示,我们可以发现一个性质,如果两个连续的序列中间被间隔开,如 那这两个序列中选数操作互不影响,那这就比较好办了,一个长度为 连续序列最多可以选出 个数
阅读全文
摘要:找环 无向图 拓扑排序找环 点击查看代码 bool vis[N]; queue<int> q; void tp() { for(int i=1;i<=n;i++) if(du[i]==0) q.push(i); while(!q.empty()) { int x=q.front(); for(int
阅读全文
摘要:using namespace std; sort(e+1,e+1+n,comp); void kruskal() { int cnt=0,k=1; while(cnt<n-1) { int rx=find(e[k].from); int ry=find(e[k].to); if(rx!=ry) {
阅读全文
摘要:using namespace std; bool vis[N]; int match[N]; bool find(int x) { for(int i=h[x];i;i=nxt[i]) { int y=to[i]; if(!vis[y]) { vis[y]=1; if(!match[y]||fin
阅读全文