Circus

Codeforces Round #545 (Div. 2) B. Circus(思维)

假如想象 提交于 2021-01-14 06:29:50
B. Circus time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output Polycarp is a head of a circus troupe. There are n — an even number — artists in the troupe. It is known whether the i-th artist can perform as a clown (if yes, then ci=1, otherwise ci=0), and whether they can perform as an acrobat (if yes, then ai=1, otherwise ai=0). Split the artists into two performances in such a way that: each artist plays in exactly one performance, the number of artists in the two performances is equal (i.e. equal to n2), the number of artists that can

省选前做题记录

血红的双手。 提交于 2020-11-01 18:56:40
因为一道一道写太浪费时间了所以干脆直接写一起好了……代码的话为了节省空间自己上$OJ$上看吧 loj#2347. 「JOI 2018 Final」寒冬暖炉 来搞笑的 相当于一条线段上选出$k$段,等价于断开$k-1$段,$sort$一下取最大的$k-1$个即可 loj#2348. 「JOI 2018 Final」美术展览 按$A$排个序然后枚举最小值,相当于要求出右边最大的$S-A$,两个$S-A$的大小关系等价于前缀和$-A$的大小关系,从后往前$O(n)$递推就行了 loj#6495. 「雅礼集训 2018 Day1」树 设$f_{i,j}$表示$i$个点高度为$j$的方案数,因为$2$号点的父亲只能是$1$,我们可以把它看做特殊的。那么转移就是 $$f_{i,j}=\sum_{x=1}^{i-1}\left(\sum_{y=1}^{j-2}f_{i-x,j}\times f_{x,y}\times {i-2\choose x-1}+\sum_{y=1}^jf_{i-x,y}\times f_{x,j-1}\times {i-2\choose x-1}\right)$$ 柿子的意思就是,我们枚举以$2$号点为根的子树的高度,如果小于$j-1$那么剩下的高度必须等于$j$,否则剩下部分高度任意 听说这个方法吊打$std$ loj#2520. 「FJOI2018」所罗门王的宝藏

Luogu P6277 [USACO20OPEN]Circus P

試著忘記壹切 提交于 2020-04-21 03:46:55
Link 特殊的, \(k=n\) 时答案为 \(n!\) 。 如果忽略标号的话,那么任意两个状态都是可以相互到达的。 因此我们考虑固定 \(k\) 个位置,计算有多少种标号排列的等价类。 由群论的基本知识可以发现,所有等价类的大小都是相同的,因此答案为 \(\frac{k!}{size}\) 。 考虑如何计算等价类大小,一个方法是判断能否交换两个点并使得剩下的不变。 我们把所有没有分岔,两端都挂着一个连通块的链(包括端点)单独拿出来。 同一条链上的点是无法交换的,而两端挂的连通块中的点可以交换的充要条件是链长小于 \(n-k\) 。 也就是说两个点可以交换的充要条件就是这两点间的路径上不存在长度不小于 \(n-k\) 的链。 如果我们把所有可以相互交换的点对连边,设连完边之后每个连通块的大小为 \(s_i\) ,那么 \(size=\prod s_i\) ,注意这个连通块大小是要去掉链上的点的。 那么我们从大到小枚举 \(k\) ,用并查集维护可以相互到达的连通块,每次把长度小于 \(n-k\) 的链的两端的连通块接起来即可。 因为连通块数和链数同阶,而一条链会被统计链长次,所有连通块的枚举次数之和为 \(O(n)\) 。 #include<set> #include<cctype> #include<cstdio> #include<vector> #include

30 年前的圣诞节,Python 序章被谱写

跟風遠走 提交于 2019-12-30 11:39:59
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1989 年圣诞节期间,已经从阿姆斯特丹大学(University of Amsterdam)获得数学和计算机硕士学位的 Guido van Rossum,为了打发圣诞节的无趣,决心开发一个新语言解释器,作为 ABC 语言的一种继承。 之所以选中 Python(蟒蛇)作为该编程语言的名字,是取自英国 20世纪 70 年代首播的电视喜剧《蒙提.派森的飞行马戏团》(Monty Python's Flying Circus)。 1991年,第一个 Python 解释器正式发布。它是用 C 语言实现,能够调用 C 库(.so文件)。并且当时已经具有Python 的核心数据类型:类(class)、函数(function)、列表(list)、字典(dict),以及模块(module)。 Python 设计哲学是“优雅”、“明确”、“简单”,Guido 将“人生苦短,我用 Python” (Life is short, use python) 作为 Python 的 Slogan。 这是因为 Python 将许多机器层面上的细节隐藏,交给编译器处理,并凸显出逻辑层面的编程思。这让 Python 程序员可以花更多的时间用于思考程序的逻辑,而不是具体的实现细节。 正因如此,Python 在冷门多年后

Python程序员的30个常见错误

巧了我就是萌 提交于 2019-11-30 15:17:07
在这篇文章中,我将总结新老Python程序员常犯的一些错误,以帮助你们在自己的工作避免犯同样或类似错误。 首先我要说明一下的是,这些都是来源于第一手的经验。我以讲授Python的知识为生。在过去的7年里,我已经给上千名学生讲授上百堂Python的课程,同时看着这些学生们犯同样的错。也就是说,这些是我看着Python初学者活生生犯的错,千百次的错。 事实上,这些错误实在是太普遍了以至于我敢保证你刚开始学的时候是一定会犯的。 “那么是什么呢?”你会问,“你也会在Python里犯那么多错么?”是的。Python可能是最简单、最灵活的语言之一,但它终究还是一门编程语言。它仍然有语法,数据类型,以及巫师蒂姆居住的黑暗角落。 典故出自《蒙蒂派森与圣杯》中的魔法师蒂姆,他主角们指点在洞穴的墙壁上记录的圣杯位置,作者在此处的意思是Python语言里容易犯错的地方。另,Python语言得名于作者Guido van Rossum特别喜欢的《蒙蒂派森飞行马戏团(Monty Python’s Flying Circus)》——译者注 好事情是多亏了Python那干净的设计,一旦你学会了Python,你就能自动的避开很多陷阱。Python在其各组件之间有着最小的互动,这能有效的减少bug。它也拥有十分简单的语法,这意味着在一开始你就有更小的概率犯错。当你实在是犯了错的时候