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 阅读全文
posted @ 2024-09-29 20:49 zhengchenxi 阅读(13) 评论(0) 推荐(0) 编辑
摘要:T1光 我们来考虑一个格加 4 或者减 4 ,这样有一个比较好的性质,它能提供 4,2,2,1 的贡献还不会溢出,这样我们就有一个比较好的思路,我们枚举 4,2,2,1 所无法造成的贡献,很明显只有 16 种,然后我们就可以再枚举 4,2,2,1 来算 阅读全文
posted @ 2024-09-29 19:27 zhengchenxi 阅读(17) 评论(0) 推荐(0) 编辑
摘要:T1几何 DP题,我们先考虑,设 f[i][j][k] 表示目前到了第 i 个字符, x 串已经匹配到了第 j 个字符(前面可能已经有若干个 x 串的重复), y 串已经匹配到了第 k 个字符(同样,前面可能已经有若干个 y 串的重复) 阅读全文
posted @ 2024-09-29 16:09 zhengchenxi 阅读(31) 评论(6) 推荐(0) 编辑
摘要:T1 奇观 挺有趣的思路,每个字母相互独立, CF ,我们可以把 C 分成一个两个端点和一个三个端点的路径(以同一个起点开始),而 F 为了方便统计,我们也可以把它分成两个两个端点和一个三个端点的路径(同样是以同一个端点为起点)。那我们定义 $s_{i} = \ 阅读全文
posted @ 2024-09-26 18:16 zhengchenxi 阅读(16) 评论(0) 推荐(1) 编辑
摘要:1.网络流 2. 凸包,旋转卡壳 3.csp4 T2大力分讨 4. csp3 T4超神线段树 5.逆天生成函数 6.连训模拟1 T3 (讨厌一切概率期望和排列组合)( 7.博客(想起来就写点) 阅读全文
posted @ 2024-09-24 21:32 zhengchenxi 阅读(46) 评论(4) 推荐(1) 编辑
摘要:题目 正数通常比较好处理,那我们先想个办法把所有的负数转为正数,我们可以求一下所有负数的和 sum ,这一定是最小数,那我们考虑如何将其变小一点,无非是去掉一个加上的负数或是加上一个正数,诶,那这样,去掉负数不就等于加上一个正数吗,这样我们就可以将所有的负数转化为正数,选出来的数在加上 \( 阅读全文
posted @ 2024-09-24 14:05 zhengchenxi 阅读(28) 评论(2) 推荐(1) 编辑
摘要:定理:对于一个有 n 个节点的无根树,它的结构可以有 nn2 种可能。 至于证明,我们可以用 prufer序列 来证明。 prufer序列 度娘给出的定义是: Prufer数列 是无根树的一种数列。在组合数学中, Prufer数列 由有一个对于 阅读全文
posted @ 2024-09-13 16:52 zhengchenxi 阅读(59) 评论(3) 推荐(3) 编辑
摘要:T1 原题 根据倒数第二,三个部分分的提示,我们可以发现一个性质,如果两个连续的序列中间被间隔开,如 1,2,3,4,6,7,8,9 那这两个序列中选数操作互不影响,那这就比较好办了,一个长度为 n 连续序列最多可以选出 n2 个数 阅读全文
posted @ 2024-09-08 18:05 zhengchenxi 阅读(24) 评论(0) 推荐(1) 编辑
该文被密码保护。
posted @ 2024-09-06 20:58 zhengchenxi 阅读(17) 评论(4) 推荐(2) 编辑
摘要:i=1ni2=n(n+1)(2n+1)6 证明 12=1 22=1+3 32=1+3+5 …… n2=1+3+5++(2n1) 据此可以得出: \(\sum _{i=1}^{n}i^2=1* 阅读全文
posted @ 2024-09-06 17:52 zhengchenxi 阅读(125) 评论(0) 推荐(2) 编辑
摘要:找环 无向图 拓扑排序找环 点击查看代码 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 阅读全文
posted @ 2024-09-05 12:06 zhengchenxi 阅读(14) 评论(0) 推荐(1) 编辑
摘要: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) { 阅读全文
posted @ 2024-09-02 11:41 zhengchenxi 阅读(13) 评论(0) 推荐(1) 编辑
摘要: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 阅读全文
posted @ 2024-09-02 11:34 zhengchenxi 阅读(18) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示