摘要: 刚看到一个做法很棒,枚举十字中点然后向四周扩展“十字”,并计数,如果数量等于*总数就输出YES,否则输出NO. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #inc 阅读全文
posted @ 2020-08-12 08:59 A_sc 阅读(170) 评论(0) 推荐(0) 编辑
摘要: luoguP4208 最小生成树计数 【注】:代码还未添加注释,有时间补 如果还不会生成树计数,看 → 生成树计数 例题:luoguP4208 题意: 求一个图中有多少个不同的最小生成树。 题解: 两个非常重要的定理: 先假设A,B分别表示图G的两个不同的最小生成树。 定理一: 设ai,bi分别为A 阅读全文
posted @ 2020-08-07 16:51 A_sc 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 矩阵树定理 / 生成树计数 论文《生成树的计数及其应用》 学习博客 推荐阅读博客 Kirchhoff 矩阵树定理 / Matrix-Tree 定理,用来解决一张图的生成树计数问题 首先我们要知道生成树计数问题是什么:就是给你一个n个点,m条边的图,问你这个图的生成树个数。而矩阵树定理就是高效解决这一 阅读全文
posted @ 2020-08-07 14:52 A_sc 阅读(326) 评论(0) 推荐(0) 编辑
摘要: NC20811 蓝魔法师 (树形DP/树上01背包) 题目链接 学习博客 题目: 给出一棵树,求有多少种删边方案,使得删后的图每个连通块大小小于等于k,两种方案不同当且仅当存在一条边在一个方案中被删除,而在另一个方案中未被删除,答案对998244353取模 。 题解: 没想到是树形DP题,做题太少了 阅读全文
posted @ 2020-08-06 10:17 A_sc 阅读(166) 评论(0) 推荐(0) 编辑
摘要: Xor-MST学习/ 2020牛客暑假多校(五)B.Graph 补题链接 题目大意: 给一个完全图,求异或最小生成树。 题解: 首先先看一下这道题:CF888G 。与本题不同之处是这两个题一个给点的权值,一个给边的权值。但实际上一样可以相互转换。如让本题中a[1]= 0,跑一下dfs,算出所有点的权 阅读全文
posted @ 2020-08-05 21:18 A_sc 阅读(100) 评论(0) 推荐(0) 编辑
摘要: HDU-6820 / 2020杭电多校(五) 1007 Tree 补题链接 参考博客 题意: 在一个无根树上选择一个的子图,要求子图全联通且度数大于k 的点最多只有1个。问该子图最大的权值。 题解: 首先想到枚举这个子图中度数大于k的点,然扩展一下。这个方法复杂度太高。 可以发现叶子节点很好处理,可 阅读全文
posted @ 2020-08-05 15:47 A_sc 阅读(186) 评论(1) 推荐(1) 编辑
摘要: Minimum-cost Flow 参考博客 题目🔗 题意:给n个点,m条边的有向图,有q次询问,每次询问给两个数u, v。用来限制每一条边能使用的最大流量为u/v, 问把1单位从1点到n点的最小花费。(所有边容量相同) 题解: 我们可以设所有边费用为c/v,那输入流量和输出流量设为u/v跑一次D 阅读全文
posted @ 2020-07-24 14:50 A_sc 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 参考博客 题目🔗 题意: 一个s串满足s[i] = i % 10,给出p,d数组的构造方法,每次将s串p[i]位换成d[i], 总共得到n + 1个串,对它们进行排名。第i次操作后的排名为r[i]; 输出 \((\sum_{i=0}^{n}(r_{i}*10000019^{i}))\%(1e9+7 阅读全文
posted @ 2020-07-24 12:58 A_sc 阅读(122) 评论(0) 推荐(0) 编辑
摘要: "题目链接" "比赛地址" 题目: 将N个相同的硬币排成一排,所有的硬币正面朝上向下放到桌子上,尾巴向上,然后执行K次操作每次取一枚硬币,抛出得到正面或反面。最后正面朝上的硬币可以拿走。问可以赢得的最大预期金额是多少? 思路: 期望公式 $Ex = A p(A)$ A表示是一个事件,P(A)是A发生 阅读全文
posted @ 2020-05-23 23:04 A_sc 阅读(211) 评论(0) 推荐(0) 编辑
摘要: "题目链接" "参考博客" 题目: 有n个宝石和n个箱子,每个箱子只能放一个宝石且第i个宝石不能放在a[i]箱子中,问合适的放法数量,mod 998244353; 题解: 总数减去不合法排列的数量就是要的答案。 计算不合法排列数量时容易明白需要用到容斥的做法。得到公式: $res = n! \sum 阅读全文
posted @ 2020-05-23 09:49 A_sc 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 题目: "题目链接" 一个人工作时越工作越累,连续工作k天每天消耗体力为k,并且他最多消耗m的体力,当他休息一天后就可以恢复所有体力。在公司工作,给出一个字符01串,s[i]=0时表示第i天公司放假,他休息。s[i]=1时他可以自由选择休息还是工作。问这个人最多工作多少天? dp题。用dp[i][j 阅读全文
posted @ 2020-05-21 08:52 A_sc 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 题目: 给出一个n m 的矩阵,每个位置的值是0或1。可以对矩阵执行操作:将所有四周有和自己相同值的点反转(0 1,1 0)。有多组询问,输入x,y,p,输出(x,y)点在矩阵经过p次操作后的值。 首先一个四周存在相同值的点一次操作后值反转。一个四周没有和自己相同值的点,它在一次操作后值不变,但是这 阅读全文
posted @ 2020-05-13 18:42 A_sc 阅读(186) 评论(0) 推荐(0) 编辑
摘要: ```c++ int T, n, m; struct node{ ll s, v; }a[N], b[N]; bool cmp(const node&x, const node&y){ return x.s = 1){ while(b[l].v && l m || b[l].s > a[r].s) break; res1 += (a[r].s - b[l].s); r --; l ++; } l 阅读全文
posted @ 2020-05-12 19:57 A_sc 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 题目: 一个游戏,每一局获胜概率为p%,获胜后获奖概率为q,q初值为2%,如果获胜没获奖q+2%,如果没有获胜q+1.5%。问输入p下获胜且获奖的期望。 我们能知道的初始状态是q=100%时的期望,此时就是一个几何分布,期望为1/p。dp[i]表示q=i时的期望。转移方程为$dp[i]=p (1 q 阅读全文
posted @ 2020-05-12 09:52 A_sc 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 题目: 有向图,节点分为输入层(in[x]=0),输出层(out[x]=0),中间层。给出每个节点的参数c[i],u[i],其中除输入层外,其他节点的$c[i]=\sum_{j=1}^{k}w_{j,i} c[j] u[i]$。输出最后的输出层非零c[i],如果没有输出'NULL'。只有c[j] 0 阅读全文
posted @ 2020-05-10 12:27 A_sc 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 题目: n m的黑白网格,给出每个格子的颜色以及下一步移动的方向。当给一个位置放一个机器人,它会按照每个位置的信号移动,可以放多个机器人,但要求相同时刻一个位置不能出现两个机器人。求最多可以放多少个机器人,机器人数量相同时最多有多少个机器人放在黑格子上。 参考题解。观察样例发现,这些控制指令可以使整 阅读全文
posted @ 2020-05-08 20:14 A_sc 阅读(213) 评论(0) 推荐(0) 编辑
摘要: ```c++ #include #include #include #include #include #include #include #include #include #include using namespace std; #define rep(i, a, n) for(int i = a; i = a; -- i) #define make_pair mkp #define Max 阅读全文
posted @ 2020-05-07 23:35 A_sc 阅读(133) 评论(0) 推荐(0) 编辑
摘要: ![](https://img2020.cnblogs.com/blog/1596795/202005/1596795-20200507105555860-931501591.png)![](https://img2020.cnblogs.com/blog/1596795/202005/1596795-20200507105607845-1859153692.png)```c++#include#... 阅读全文
posted @ 2020-05-07 10:56 A_sc 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 题目: 阅读全文
posted @ 2020-05-07 10:55 A_sc 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 题目: n n的表格中,先后选两条路径,第一条路径走完后会清空路径上的值,问两次路径上的值和得最大值。 $dp[i][j][k][l] = max(dp[i 1][j][k 1][l],dp[i 1][j][k][l 1],dp[i][j 1][k 1][l],dp[i][j 1][k][l 1]) 阅读全文
posted @ 2020-05-04 00:06 A_sc 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 通过质因数分解可以把很大的数唯一分解为有限个质数的乘积,能够很好的比较两个数。 阅读全文
posted @ 2020-05-03 16:34 A_sc 阅读(146) 评论(0) 推荐(0) 编辑
摘要: ```java import java.io.*; import java.math.*; import java.util.*; import java.util.Scanner; //import java.text.*; public class Main { public static void main(String[] args) { Scanner cin = new Scanner 阅读全文
posted @ 2020-05-02 23:35 A_sc 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题目: 输入x,输出使x = b ^ p的最大的p 先质因数分解,res=gcd(c1,c2...cm)就是答案,注意如果n是负数,res只能是奇数,所以先按正数计算,再把结果一直除2到奇数。还要特判1。 阅读全文
posted @ 2020-05-02 22:43 A_sc 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题目: 给出n,f[1],f[2], 已知递推公式:$f[i] = 2 f[i 2] + f[i 1] + i^{4}$;求f[n]; ($n include include include include include include include include include using 阅读全文
posted @ 2020-05-02 19:30 A_sc 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 题目: 一个细菌初始质量为1,每天可以选择分裂其中任意个,分裂后质量均分,每天晚上所有细菌质量+1.找一个方法使得用最少的天数分裂细菌,使最后总质量等于n。输出天数和每天分裂的细菌个数。 用变量temp表示细菌个数,用all表示目标质量,初始temp = 1,all = n 1. 仔细考虑发现,分裂 阅读全文
posted @ 2020-05-02 11:59 A_sc 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 题意: 把字符串s中的字符分给k个空字符串,要求每个空字符串都有字符,同时最小化k个字符串中字典序的最大值,输出分配后字典序最大的字符 题解: 分类讨论,如果s排序后,s[0]!=s[k 1]答案就是$s[k]$(样例3,5), 如果相等且k~n 1只有一种字符,就要把这种字符依此分给每个字符串,输 阅读全文
posted @ 2020-05-02 10:19 A_sc 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 题意: 一个完全联通的有向图,要经过每一条边一次,访问路径由经过的节点组成,节点可以经过多次。输出“字典序最小的”路径中l,r之间的节点值。 题解: 要相信这类题一定有什么规律,且规律无论n的大小都满足。所以要先从n较小的情况下总结规律。本题就是最小路径类似 (以n=4为例)"1 2 1 3 1 4 阅读全文
posted @ 2020-05-01 15:29 A_sc 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 题意: "车"只能走直线,"后"可以走直线和斜线,它们每一步只能走到能走到的位置中没走过的数字最小的位置。如果能走到的位置都走了,但棋盘还有不能直接走到的位置,可以花费1van去跳转到当前棋盘中未走的数字最小的位置。现在让你构造这个N x N的棋盘,使"车"的花费小于"后"。 题解: 这题想不出来做 阅读全文
posted @ 2020-05-01 09:42 A_sc 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 对n个数,我们考虑它对整个gcd集合的贡献,对于质数,它只能贡献1,对于合数,它所有的因子都在集合中(gcd(A,A的因子)= A的因子)。要输出选i个数中的最小的gcd最大值。那就把前i个数的的贡献从小到大排序,输出。 阅读全文
posted @ 2020-04-30 14:05 A_sc 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 一个数组当它的所有子数组和都不为0时,它是一个good数组。给一个长为n的数组问所给数组子数组中good数组个数。 如果两个不同位置的前缀和值相等,那这两个位置之间的数组和为0。对每个位置si考虑其贡献,用top表示一个限制,就是si和top以前的位置构成的数组一定包含一个和为0的子数组。所以si的 阅读全文
posted @ 2020-04-29 23:26 A_sc 阅读(122) 评论(0) 推荐(0) 编辑