自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(367)
  • 收藏
  • 关注

原创 Markov Chain Fingerprinting to Classify Encrypted Traffic 论文笔记

XT这些消息,所以计算概率肯定是第一个消息是X1进入的概率,然后按照给定的消息序列走的概率,对应连乘,最后乘一个离开的概率。例如,在我们研究的前两个数据集中,我们没有观察到 PayPal 和 Twitter 会话中的任何服务器密钥交换消息,而在 Dropbox 的情况下,它总是遵循证书消息。这样,应用之间的差异就容易找到。研究了 12 个使用 SSL/TLS 的代表性应用程序的马尔可夫链指纹,建立的模型展现出特定的结构,这种结构能够通过比较应用程序流量和和它带有指纹的消息序列对加密的应用程序流量分类。

2023-11-07 14:40:40 473

原创 网络流量分类概述

深度学习的另一个重要特点是,与传统的 ML 方法相比,它具有相当大的学习能力,因此可以学习高度复杂的模式。结合这两个特征,作为一种端到端方法,深度学习能够学习原始输入和相应的输出之间的非线性关系,而不需要将流量分类问题分解为特征选择和分类两个子问题。第一代常用的方法是使用端口号,但是随着P2P的普及,逐渐失效(因为P2P使用伪装端口的手法)。网络流量分类是指,构造一个分类模型,对收集到的各种网络流量进行分类识别,分类识别的结果是某种应用程序或者应用层协议。流量分类技术随着时间的推移已经发生了显着的发展。

2023-11-07 14:08:52 952

原创 有一些东西必不可少(前后背包+二分/前缀和优化)

可以发现这两种情况的方案数分别对应了sum[i+1][k-1-j]和sum[i+1][k-1-j] - sum[i+1][k-a[i]-j-1],这就是前缀和的魅力。对于a[i]<k,如果其他物品能够凑出一个方案,权值和在[k-a[i],k-1]之间,该物品同样是必要的。预处理dp之后,对于每个物品i,看是否存在dp[i-1][l]和dp[i+1][r],他们都是合法方案,且满足 k-a[i]<=l+r<=k-1.或者用一种预处理前缀后缀背包的手法,比如说dp[i][j]表示前i个物品,能否凑出j。

2023-10-30 15:46:43 278 2

原创 leetcode 1996. 游戏中弱角色的数量(排序的魅力)

可以看到攻击力都是7的分组里,无论遍历到哪个人,前边攻击力也是7的人的防御力是比他低的,所以即使[7,9]的防御力9更新了最大防御,可是[7,10]的防御力比[7,9]的高,所以不用担心产生贡献。所以不会出现同是攻击力为7的人之间对答案产生贡献。,这样可以保证维护的最大防御力的人的攻击力是严格高于当前人的攻击力的。因为攻击力相同的人是放在一起的,然后防御力从小到大可以保证当前这个人前边与他攻击力相同的人的防御力比他低,这样就保证了维护的最大防御力的人的攻击力是严格高于当前人的攻击力的。

2023-08-22 10:50:01 825

原创 codeforces 857 D (初始化歪了,错失上分良机)

对于A物品从大到小枚举每个物品i当最大值,此时会发现,第i个商店必须选A,而价值比A[i]大的商店必须买B物品,可以维护出B物品的最大值至少是mx,而其余的物品既可以选A也可以选B。在其余的商店里,如果选B能使答案更优秀,就选对应的B,否则就选A,不会使结果更差。根据mx和A[i]的关系分情况讨论,如果mx更大,答案只能是mx-A[i];如果mx更小,可以在B中找比A[i]大和小的位置,看能否使答案更优。后来发现最大值变量初始化成0了,默认B的最大值是0,改成初始化为-1秒ac,寄。

2023-03-10 10:25:22 183 1

原创 codeforces 850 D (模拟)

但是还要注意另一种情况,如果存在 w->i, i->n, n->w;w->n, n->i, i->w. 不能相互抵消,但是可以通过两次交换满足这三个要求。1和2先换,2和3的需求就变成互补的了,2和3再换.给定m个w、i、n,随机分配给m个人,每人3个字母。现在可以让任意两个人交换手中的一个字母,求最少需要交换多少次并输出方案.如果某个人多w且没有i,就标记为w->i;如果某个人多i且没有w,就标记i->w,二者可以交换满足对方的条件。

2023-02-07 11:17:52 207

原创 abc 288 D (差分)

有q组询问,每次询问一个区间是否为good:执行任意次operation,使得区间内所有数变成0.每次operation允许选择一个长度为k的区间,令该区间中的每个数都+c(c为任意常数)。因为这些位置的最后一个位置操作影响的是b[r+1],它不在[l,r]区间内,所以这些位置就可以任意变,一定能变成符合题意的。题目要求全变成0,也就是说要把b[l+1] 到 b[r] 都变成0,b[l] 变成 - a[l-1].1.对于模k相同的位置的差分数组的和要求是0才可以,因为每次操作和不变的。

2023-02-05 19:08:28 286

原创 codeforces div2 845 CD

观察发现所有节点每个时刻贡献都是2^n-1,一半的情况是1,一半的情况是0.对于叶子显然是如此。t=1,根据其子节点的异或和得到其权值,子节点对应的所有情况是全0到全1的,异或和结果是1的全部情况也就是有Cn1 + Cn3 + …,只选出奇数个1的情况,所以一半的情况是1,贡献为2。双指针,没想到,寄。给定长度为n的数组a,在其中选择若干个数组成数组b,对于1-m这些数,在b中至少存在一个数是他的倍数。给定一颗有根树,树上每个点的权值为1或者0.每个时刻,树上所有节点的权值变为子节点权值的异或和。

2023-01-27 15:05:41 201

原创 edu 141 B(构造)

最大就是1到n^2-1都有,可以构造。首先,假设是一条链,只要头和尾交叉放置即可。1 n^2 2 n^2-1 3…这样n^2根据左右得到n ^ 2-1和n^2-2,依次类推。那么对于矩阵来说,可以考虑蛇形走位,奇数行正着放,偶数行倒着放,按照链中构造的顺序放,相当于是个链去用。给定1到n^2,构造一个n*n的矩阵,把任意两个数之间的绝对值之差加入集合s中,使得s尽可能地大。

2023-01-22 19:36:25 183

原创 codeforces 843 B(思维)

乐,没想出来,看了题解才会。如果某个数x,起不到任何作用,就可以在某个序列的基础上或上x,结果还是原来的数。简而言之,如果某个数的每一位都出现过不止一次,就能找到。出现过不止一次,别的数也可以贡献此位。给定长度为n的数组,判断能否找到两个不同的序列,满足序列的或相等。

2023-01-22 19:27:05 196

原创 abc 285_e

如果某个休息日距离最近的工作日有i天,那么他的贡献是ai.可以枚举之前一个休息日j在哪里,枚举从1到i-1即可。之后再加上[j+1,j-1]这个区间的贡献。已知j和i是休息日,那么在二者之间的天会有一半距离j更近,有一半距离i更近。令区间长度为len.如果是奇数,一个区间产生s[(len+1)/2]的贡献,另一个产生s[len/2]的贡献。除此之外,要注意到,有可能只选择一个休息日,所以上述枚举会漏掉这种情况。如果是偶数,左右区间都会产生s[len/2]的贡献。令dp[i]表示第i天为休息日的最大贡献。

2023-01-16 21:29:19 223

原创 牛客手速月赛63 E(推式子)

看1和n之间的距离是1、2、3,然后找规律。当距离是k时,稳定有(n-k)的贡献,之后看起点1的位置,左边有i-1个数,右边有n-(i+k)个数,可以两两组合,直接相乘。所以就能推出求和公式了。计算长度为 n 的所有排列中所有最大值为 n 且最小值为 1 的子区间个数,对 998244353 取模。这里只考虑了1和n的关系,还可以倒过来,乘2,然后其他数是可以任意排列的,还有(n-2)!题解说能化简成O(1),上述式子可以再拆开,然后套立方和、平方和公式啥的。

2022-12-17 10:59:02 312

原创 Codeforces Round #838 (Div. 2) C(思维、dp)、D(思维、交互)

当时想的是dp,表示每个位置有多少个灵活使用的空位。如果不需要灵活使用的空位,这些位置就是01任选,2的幂次的贡献,如果需要把所有灵活使用的空位都用上,那贡献只能是1. (晚上太困了,忘了由i-1的状态转移到i,不然还能上波分,问题不大,主要是理解的不够深)其实很有道理,不妨用01来说明,现在两个位置都是1. 因为前i-1个位置是可以内部变换满足中位数那个限制的,也就是说前i-1个位置至少有i-1个1,不然他是满足不了限制的,而第i个位置又是1,前i个位置有i个1,已然满足条件,他前边的空位就01任选了。

2022-12-16 15:26:07 511

原创 2021 ICPC 上海 H(Kruskal重构树)

给定n个点m条边的无向图,每个点具有一个点权,到达之后可以累加上这个权值的能力,而通过某一条边需要当前的能力值大于这条边的边权才可以(通过后能力值不会减少)。所以建好树之后,我们就可以对于每个查询从叶子开始往上爬,如果父节点的点权(对应选择边的边权,也就是合成的代价)

2022-12-15 22:00:03 214

原创 2021 ICPC 沈阳 J (bfs)

bfs,搜索从0000到其他状态的最短路。然后哩,我们可以发现从状态a转移到b,相当于从0000转移到b-a.相当于有个偏移量,直接到a状态了,搜索b-a需要多少步即可。给定四个数0-9的数,变成另外四个0-9的数。每次可以选择1-4个连续的数,都+1或者都-1 (mod 10).合法的状态转移我是用dfs,3^4暴搜搜出来的。没想到可以转化成b-a,蚌埠住了。

2022-12-15 11:17:11 302

原创 2022 浙大城市学院 新生赛 补题

比较套路的题,这n次位运算是独立的,可以对于每一位提前预处理出来,以0和1为起点能否变成1. 然后对于每次查询,从高位到低位处理,如果0能变成1直接这一位填0,如果1才能变成1在满足限制的前提下这一位填1,二进制特性,这一位选1比后边所有位都选1更优。给定n层的树,第i层有i个叶子,类似数字三角形。给定n次位运算,包括&、|、^.给定q次询问,每次可以选择[0,r]中的任意整数x,令x经过这n次位运算最大,输出选择的x.给定x、y、z,x和y都有a个1、b个0,z有c个0. 满足y

2022-12-14 22:07:06 331

原创 2018 ICPC 青岛站 C(思维) + E(二分)

而其他的位置即使浇水浇够了,也需要加上走过去的一次,因为n至少要浇水一次,必须要走下去,只有第n个数满足条件时可以少走一次。给定n个植物,分别在1-n的位置,然后有一个机器人在0这个位置,总共能移动m次,每次移动会给对应的植物浇水,使植物提高ai点防御力,求这些植物的防御力的最小值最大是多少。两次都选对应区间,覆盖两个区间再把中间的选上,或者覆盖两个区间的基础上交叉地把中间的区间选了。写代码的时候把n给复用了,导致一直wa,后来看了别人题解才发现自己很对,然后把变量改成len就行了,服了,太粗心了。

2022-12-14 20:51:58 546

原创 abc 282 e(mutiset维护第k小)

对于删除的数x,如果x

2022-12-14 11:28:59 269

原创 2020 银川 B(dp好难捏)

fi,j,k表示前i个数,分成j段,然后当前第j段已经选了+、-,只选了+,只选了-。(也可以再加上什么都不选,也可以用前j-1段已经选了+、-来代替)一个长度为n的数组,分成k个不相交的子段,每个子段的贡献是其中的最大值-最小值,求最大贡献是多少。0可以由1和2推得,也由前一个状态顺延(第i个数不选),也可以使第i个数单独成一段。2也可以由前j-1段选了+、-推得,也可以由前一个状态顺延(第i个数不选)1可以由前j-1段选了+、-推得,也可以由前一个状态顺延(第i个数不选)0表示当前这一段已经选了+、-

2022-12-13 17:35:28 271

原创 codeforces edu 139 (经典教育场被教育)

给定x,y,最大的k,满足gcd(x,y) = gcd(x+1,y+1) = gcd(x+k-1,y+k-1) = 1,gcd(x+k,y+k)!x%p是x比p的倍数多多少,p-x%p是需要补多少,但是如果恰好是p的倍数这个结果就是p了,实际是0,所以要%p.所以gcd(x+k,y+k) = gcd(x+k,y+k-(x+k)) = gcd(x+k,y-x).然后可以质因数分解掉y-x,因为y-x是固定的,得到y-x的质因子p。之后看k应该取多少,x+k是p的倍数。说明x+k含有y-x的质因子。

2022-12-13 17:10:02 441

原创 2021 ICPC上海站 D(思维),G(猜结论),I(01背包变形)

如果有偶数个儿子,自己分配,Cn2、Cn-22这样的,然后如果是奇数个儿子,留着一个儿子和该节点连向父节点的边配合,剩下的选俩、选俩直到都选完。给定n个物品,有体积和价值。假设x=a/b,然后发现就是个一元二次方程,然后如果Δ不是某个数的平方的话,是不符合题意的,因为x不能是无理数的。给定一棵n个节点的树,保证n是奇数,然后我们需要把这n-1条边分成互不相交的n-1/2组,即每两条边在一个组里,然后。f[i][j][k]: 前i个物品,有j个翻倍,然后集合1的体积和-集合2的体积和为k。

2022-12-12 22:07:01 334

原创 Codeforces Round #643 (Div. 2) E(三分)

然后三分的使用条件就是具有极值点,假设最优解为所有数等于ans,那么ans不管是+1还是-1都会使答案变得更差或者不变(操作的消耗可能为0),所以可以三分找。三分,函数值可以花O(n)的时间枚举得到,当然也可以维护前缀和二分求得。给定长度为n的数组。有三种操作,求最小的花费使得数组中所有元素相同。那么为什么可以用三分呢,首先直接二分不太行,因为不具有单调性。花费c,使得某个数+1,另一个数-1.花费a,使得某个数++;花费b,使得某个数–;

2022-12-12 14:41:26 264

原创 2020 ICPC 南京站 F(期望,三分)

假设我们每次都点燃x个烟火,然后进行一次检查。成功的概率是1-(1-p)^x,令其为p’.如果点燃不成功,就会再点燃,直到点燃为止。是一个比较经典的几何分布了,前i-1次失败第i次成功这样的,如果概率是p,期望就是1/p,期望需要1/p这么多次成功。也就是1/p’,而每次操作也就代表着点x个烟火,然后进行一次检查。再乘以x*n+m即对应的期望时间。给你若干烟火,每次可以花n的时间点燃一个,成功概率为p,花m的时间检查前边点燃的烟火是否存在一个点燃成功。求直到第一次点燃成功时,最小的期望时间。

2022-12-12 10:17:08 282

原创 2020 ICPC 南京站 L(签到失败)

一眼二分,然而并不是,因为没有单调性。可以把两个数组合并,分红蓝两种颜色,其实就是求由蓝色点分隔后的红色点组成的最长的一段多长。因为选点肯定选在某几个连续红点中间。给定长度为n的a数组和长度为m的b数组,找一个点c,满足尽可能多的a中的点到c的距离严格小于b中所有点到c的距离。如果红点和蓝点重合,要把对应的红点删除。

2022-12-12 10:10:49 267

原创 2020 ICPC 南京站 E(思维+暴力)

本来想的逆着走,但是发现不对,能被hack掉。情况非常多,分支判会很多。所以应该暴力,暴力枚举UDLR的顺序,然后模拟判断是否合法,也就4!起点为(0,0),终点为(x,y),给定一组上下左右的串,可以对其任意重排序,判断是否存在一个序列使得该点不会走到(x,y),若存在,输出方案.

2022-12-11 22:06:55 283

原创 Codeforces Round #825 (Div. 2) B(会C不会B,输)

b1和bn直接等于对应a数组的值即可。之后每个bi受ai-1和ai限制,最小值为ai-1和ai的最小公倍数。如果把lcm这个数变大了,有可能会影响gcd的取值。给定长度为n的数组a,构造一个长度为n+1的数组b,满足gcd(bi,bi+1) = ai.

2022-12-09 21:13:27 167

原创 Codeforces Round #832 (Div. 2) C(不会C,输麻了)

如果某个人将a1减到0,则必输。因为所有数都>=1,操作者将a1减到0,对手下一次操作把那个0换到a1,操作者就输了。所以要尽快地让对方把一个数减少到0,就赢了。若此时a1=0,操作者输;否则,操作者使a1–,并交换a1和ai(2

2022-12-09 11:13:58 185

原创 Codeforces Round #829 (Div. 2) E(不会概率,输)

假设0的个数是cnt0,1的个数是cnt1。假设这个数量是k,说明最后边还有k个0和他们对应,都没有放到正确的位置。所有的选择方案是Cn2,其中有k*k的可能性选中一对能消去逆序对的。求和i从1到k,每次求选中一对能消去逆序对的两个位置的期望。可以发现是几何分布,前i-1次失败且第i次成功的概率,E(X) = 1/p,也就 i / Cn2的倒数,之后从1到k分别求和即可。给你一个长度为 n 的 01序列,每次等概率随机交换序列中的一对数,如果它们是逆序对,则交换它们的位置,求排成顺序序列的期望操作次数。

2022-12-08 19:30:15 199

原创 abc 280 f(最短路也不会捏)

题目题意: 给定n个点m条边的有向图,每次给边都是(a,b,c),(b,a,-c)成对给出。q组询问,每次询问问两个点是否可达,若可达,输出最长路,顺便判断以下最长路是不是正无穷。思路: 并查集维护是否可达。有正环就说明最长路是正无穷。可以通过bfs判断,如果某个点被访问过且他的最长距离还能再次被更新,则说明存在正环。两点之间的路径比较特殊,可以bfs预处理每个连通分量中的根节点root到其他节点的距离数组,之后x->y = x->root + root->y. 假设x和y在root两边,没有问题;如果

2022-12-07 15:42:59 139

原创 2022 ICPC杭州站 C(01背包,简单dp)

题目题意: 给定n个物品,体积为vi,其体积t∈1-vi分别对应一个价值wi,t。背包容量上限为k,若某个物品能放入背包,则必须完全放入;可以选择至多一个个物品作为特殊物品,其可以部分放入。思路: 由于每个物品的体积很小,至多为10.可以采用n * k * vi的dp方式. f[i][j][k]表示从前i个物品中选,体积为j且是否存在部分选择的物品。(k=1表示已经选择了某个物品部分选择,k=0反之亦然)PS: 注意将dp数组初始化为-INF,这样才能保证第二维里是恰好用了体积为j的物品.代码:

2022-12-07 14:19:10 1158

原创 abc 280 E(没开ll,调了半小时,输麻了)

题目题意: 起始有n滴血,有p的概率一刀2血,1-p的概率一刀1血,期望多少刀可以把怪砍到0血及以下。思路: 如果只是0血,直接开搞即可。假设目前n刀全是1血,然后依次把2刀1血换成1刀2血,用组合数统计期望即可。但是现在可能是-1血,那就额外计算以下-1血的情况,唯一的区别是最后必定是一刀2血,且之前伤害之和是n-1,假设n-1刀全是1血,然后依次把2刀1血换成1刀2血。PS: 遇到这种题还是先推明白式子再敲,推歪了然后再调再推很浪费时间。而且快速幂要开ll的,没开ll调了半小时,输。代码:

2022-12-06 16:31:24 120

原创 2237. 猪 (网络流实战)

题目题意:1.顾客到达养猪场,将所有他有钥匙的猪舍的大门全部打开,米尔克从所有未上锁的猪舍中挑选一定数量的猪卖给该顾客。2.如果米尔克愿意,他还可以给未上锁的猪舍里剩下的猪重新分配位置。3.在每个顾客到达之前,会将上一个顾客打开的猪舍全部关闭。每个猪舍中都可以放置无限数量的猪。请你编写一个程序,计算他当天可以出售的生猪的最大数量。思路: 如果没有猪舍重新分配猪的限制,很好建模,直接源点向猪舍连边,猪舍向顾客连边,顾客向汇点连边,求最大流即可。但是现在可以重新分配,就比较难。可以按照天数来建点,也

2022-12-05 10:37:46 89

原创 2278. 企鹅游行 (网络流拆点)

题目题意: 略。思路: 这个拆点好想,没看题解就想出来了。每个冰块作为一个点,企鹅乱跳作为不同点之间的流量,然后每个冰块的跳跃次数的用拆点的方式限制住。之后枚举汇点得到答案,记得每次枚举之前把网络重置,每条正向边的边权应该是现有边权+反向边的边权,还能流多少+已经流了多少=总共能流多少=容量,反向边的边权清0,变成没流的状态。代码:

2022-12-04 21:51:45 98

原创 2180. 最长递增子序列问题 (网络流拆点)

题目题意:给定正整数序列 x1,⋯,xn。1.计算其最长非递减子序列的长度 s。2.计算从给定的序列中最多可取出多少个长度为 s 的非递减子序列。(给定序列中的每个元素最多只能被取出使用一次)3.如果允许在取出的序列中多次使用 x1 和 xn,则从给定序列中最多可取出多少个长度为 s 的非递减子序列。思路: n

2022-12-04 21:45:27 113

原创 abc 280 D(侥幸蒙对捏)

题目题意: 给定最大为10^12的数k,求最小的n,满足n的阶乘为k的倍数。思路: 首先肯定需要对k分解质因数,其次肯定不能暴力从1开始枚举,因为遇到一个很大的质数2就寄了。那么我们从k的质因数角度考虑,n!必须要包含所有k的质因数对应的次数。如何凑k的质因数呢?比如k的质因数有2、3、5、7,只有2的倍数才存在因数,假设k中有3个2,至少需要2、4这两个数才能凑出来,所以n的取值不可能少于4了。对于k的每个质因子,我们都做此操作,取一个最大值。注意: k除完以后可能还剩下一个数,ans还要和他取一个

2022-12-04 15:55:02 172

原创 2187. 星际转移问题 (利用分层图思想建图)

题目题意: 略。思路: 首先用并查集或者dfs的方式判断起点和终点是否连通。之后呢,感觉这个题比较难建图。一个比较好的想法是根据天来建图,每一天建立所有点,不同天同一个点之间建立INF的边(停在某个点的人可以再留一天),再根据每趟车建立某一天的点和下一天的点之间的连边。之后天数从1开始增加即可,因为网络流是可扩展的,新增加了某一天的边之后再跑网络流并不慢。除此之外,建立超级源点和超级汇点,超级源点向第0天的起点连一条流量为k的边;所有天的终点向超级汇点连一条流量为INF的边。代码:

2022-12-03 18:53:07 159

原创 牛客练习赛106 E(二分图捏)

首先要知道二分图是没有奇数环的图,所以这个题本质是判断是否存在二分图,如果不存在二分图,说明存在长度为奇数的环。而二分图的话,dfs染色即可判断是否存在。这个题过的时候600多ms,属于卡过的,因为直接染色的话理论复杂度是O(n+m),m是n。给定n个点的无向完全图,现在删去m条边,判断图中是否存在长度为奇数的环。n,但是其实枚举不完这么多边就会提前结束了,可以推式子证明。

2022-12-02 22:58:23 555

原创 牛客练习赛106 G

给定一个长度为 nn的 01 序列 S,求最少需要多少次操作能使得最终得到的 01 序列不存在两个相邻位置值都为 1。如果放1,消耗就是dfs(idx+1,cur+2),当前位置放了必须隔一个位置才能继续放。如果cur大于n,idx还没有放完,说明当前方案无解,返回INF。dfs(idx,cur): 当前枚举到第idx个1,位置在cur,需要的总花费是多少.如果不放1,消耗就是dfs(idx,cur+1),直接看下一个位置。第二维只需要枚举到j-2,就能保证第i个1与前边的1是不冲突的。

2022-12-02 22:50:19 460

原创 Codeforces Round #772 (Div. 2) E (图论建模,好题)

题目题意: 在一条水平轴上,给定n辆车,每辆车以随机的速度行驶,有m个限制关系。限制关系有两种,一种是要求两车不能相撞;一种要求是两车必定相撞。输出任意解或者判断无解。思路: 如果一定不能相撞,那么说明长这样,反向且往左的在左边才行;如果一定相撞,说明也是反向不过是>

2022-12-02 14:36:45 106

原创 2240. 餐饮 (网络流之拆点)

网络流,食物向牛建边,牛向饮料建边,但是发现不对,因为没有约束牛的流量是一,可能某个牛多次被分配食物,这样的话就wa。可以把牛拆成两个点,分别负责入边和出边,之间用边权为1的点连接,限制每头牛最多被分配一套食物和饮料。给定n头牛,每头牛喜欢mi种食物,ki种饮料。每个牛只需要一个食物和一个饮料,每个食物和饮料被分配给一头牛之后不能再分配给别的牛。让尽可能多的牛吃到喜欢的食物和饮料,输出数量。

2022-12-01 22:47:02 115

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除