自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HDOJ 6867 Tree

原题链接:Tree题面:思路:只能添加一条有向边由题意可知,所建出来的树,父节点到子结点之间都是一条由父节点指向子结点的有向边。要想得到最大对数的 (x,y)(x,y)(x,y),只能从叶子节点添加一条有向边到根节点。所以,可以先暴搜求出每个节点可以到达的节点数,并求和得到 tottottot,然后更新最大值。其中每个叶子节点连接到根节点后得到的可行对数为 n+tot−cnt[i]n+tot-cnt[i]n+tot−cnt[i]。代码:#include <bits/stdc++.h&gt

2020-08-19 23:10:29 107

原创 CH0503 奇数码问题(逆序对)

题面:奇数码问题思路:找了好久,没有找到奇数码问题和 n∗mn*mn∗m 数码问题的详细证明。先记个结论。奇数码游戏两个局面可达,当且仅当两个局面下网络中的数依次写成不含零的 111 到 n∗n−1n*n-1n∗n−1 的序列后,逆序对个数的奇偶性相同。结论必要性证明:空格(即 000 )左右移动的时候,我们列出出来的序列是不变的;空格上(下)移动时,相当于某个数与它后(前)边 n−1n-1n−1 个数交换了位置,因为 n−1n-1n−1 是偶数,所以逆序对数的变化也是一个偶数。拓展到 nnn 为

2020-08-08 11:00:02 328

原创 HDU 6835 Divisibility

原题链接:Divisibility题目大意:对于任意 bbb 进制的正整数 y=c1c2...cn‾y=\overline{c_1c_2...c_n}y=c1​c2​...cn​​,如果有 c1+c2+...+cn≡0(modx)c_1+c_2+...+c_n\equiv 0\pmod xc1​+c2​+...+cn​≡0(modx),那么有 y≡0(modx)y\equiv 0\pmod xy≡0(modx),否则 y≢0(modx)y\not\equiv 0\pmod xy​≡0(modx)。

2020-08-07 16:13:12 120

原创 HDU 6827 Road To The 3rd Building(前缀和+乘法逆元+数学推导)

原题链接:Road To The 3rd Building题面:题目大意:有 nnn 棵银杏树,每棵树都有可爱价值,当从第 iii 棵树走到第 jjj 棵树,则他们的平均可爱价值为 1j−i+1∑k=ijs[i]\cfrac{1}{j-i+1}\sum_{k=i}^{j}s[i]j−i+11​∑k=ij​s[i]。最后求这些可爱价值的数学期望。即 ∑i=1nE[i]\sum_{i=1}^{n}E[i]∑i=1n​E[i]。数学推导:我们可以先考虑每一个数对于期望值的贡献。以 n=4n=4n=

2020-08-07 11:33:17 172

原创 HDU 6825 Set1(组合数学+数学推导)

原题链接:Set1题面:题目大意:给定一个集合 S={1∼n}S=\{1\sim n\}S={1∼n},对集合进行如下操作直到 ∣S∣=1|S|=1∣S∣=1。首先会先删除集合中最小的数,之后以相同的概率删除其他的数。求集合中每一个数被保留下来的概率。数学推导:令操作111为删除最小的元素,操作222为随机删除一个元素。假设元素 iii 会被保留下来,则它的前面有 i−1i-1i−1 个元素,后面有 n−in-in−i 个元素。我们需要考虑保留下元素 iii 的所有方案数。显然,保留下

2020-08-06 23:28:39 182

原创 HDU 6822 Paperfolding(数学推导)

原题链接:Paperfolding题面:题目大意:给你一张纸,可以进行四种操作,向上向下向左向右对折,实际上向上向下为一种,即竖直对折;向左向右一种,即水平对折。对折完后可以进行横竖一刀切的操作,将纸张分成 sss 张。现在给定一个 nnn,问经过 nnn 次四种操作后,期望 E(s)E(s)E(s) ,即最终切割后得到的纸张数 sss 的期望是多少。数学推导:用纸张模拟 (我脑子不太好使,撕了几张纸)。可以发现,水平和竖直的对折,对于结果的影响都是独立的,即水平对折只影响水平的切痕,竖直的

2020-08-06 22:47:48 215

原创 2020杭电多校第五场A题\HUD 6814 Tetrahedron(数学推导)

原题链接:Tetrahedron题面:直角四面体的性质:题目要我们求的,就是 E(1/OH2)E(1/OH^2)E(1/OH2) 是多少。根据性质:E(1/h2)=E(1/a2+1/b2+1/c2)=3E(1/a2)E(1/h^2)=E(1/a^2+1/b^2+1/c^2)=3E(1/a^2)E(1/h2)=E(1/a2+1/b2+1/c2)=3E(1/a2)数学推导:全部都是正经题解给的哈。方法一:利用海伦公式和面积体积的关系推导。方法二:运用向量叉积。这里有一个问题,平面向量叉

2020-08-06 22:16:31 202

原创 2020杭电多校C题\HDU 6816 Boring Game(模拟)

原题链接:Boring Game题面:输入输出:思路:这是一个模拟 nnn 张纸展开的情况,每次只截取上半部分展开到左侧,一共模拟 kkk 次得到答案。该题,也可以直接看作模拟 111 张纸,对折 kkk 次,每次对折一半并截取上半部分到左侧的情况。下面是正经题解给的展开(模拟)图:所以,该题就是一个模拟题,这里采用 vectorvectorvector 进行模拟。下面是核心代码的模拟样板:代码:#include <bits/stdc++.h>#define sc s

2020-08-06 21:55:23 210

原创 2020牛客多校第四场B题 Basic Gcd Problem(唯一分解定理)

原题:Basic Gcd Problem题面:题面大意:给一对 nnn 和 ccc ,结合所给的公式,问 f[n]f[n]f[n] 等于多少。思路:分析式子,会发现,所有质数的 fff 值都是 c∗f[1]c*f[1]c∗f[1],也就是 ccc。由唯一分解定理可知,max gcd(i,n)[1≤i<n]max\ gcd(i,n) [1\leq i< n]max gcd(i,n)[1≤i<n]所能取到的最大公约数,是 nnn 除以一个自己最小的质因数而构

2020-08-04 11:24:59 189

原创 2020牛客多校第八场G题 Game SET(???)

原题:Game SET题面:题目大意:给你 nnn 个字符串,每个字符串包含以下四种牌(每种牌三个属性):number of shapes(one, two ,three)number\ of\ shapes(one,\ two\ ,three)number of shapes(one, two ,three)shapes(diamond,squiggle,oroval)shapes (diamond, squig

2020-08-04 10:34:20 246

原创 2020牛客多校第八场I题 Interesting Computer Game(并查集+离散化)

原题:Interesing Computer Game题面:题面大意:给我们 nnn 对数字 aaa 和 bbb ,我们可以进行下面三个操作:啥都不选如果数字 aia_iai​ 在前面没有被选过,我们可以选择它如果数字 bib_ibi​ 在前面没有被选过,我们可以选择它求我们总共能选择至多多少数字。(求最大数量)思路:一开始,没观察到数字的相关性,是疯狂乱贪心啊。每个数字都是有可能重复的,并且数字的数据范围在 [1,1e9][1,1e9][1,1e9],非常大,我们可以离散化这些数

2020-08-03 22:42:02 179

原创 2020牛客多校第八场K题 Kabaleo Lite(前缀和+小贪心)

原题:Kabaleo Lite题面:思路:本题需要注意的是数据范围,可能会达到 ±1e19\pm1e^{19}±1e19。用ULL可以处理正数,LL处理负数?不知道,我不会,我太菜了。普遍用 int128int128int128 处理数据。我们可以先预处理出 profitprofitprofit 的前缀和,以及每一道菜会被用的次数。第 iii 道菜的选择次数是由它的前继菜品的最小数量和它的数量构成的,也就是: cnt[ i ]=min(cnt[ i−1 ],

2020-08-03 20:43:26 360

原创 64位整数乘法(龟速乘板子)

题面:64位整数乘法方法一:类似于快速幂的思想,把整数 bbb 用二进制表示,有:b=ck−12k−1+ck−22k−2+...+c020b=c_{k-1}2^{k-1}+c_{k-2}2^{k-2}+...+c_{0}2^{0}b=ck−1​2k−1+ck−2​2k−2+...+c0​20于是,a∗ba*ba∗b 就有:a∗b=ck−1∗a∗2k−1+ck−2∗a∗2k−2+...+c0∗a∗20a*b=c_{k-1}*a*2^{k-1}+c_{k-2}*a*2^{k-2}+...+c_{0}*a*

2020-08-03 00:34:21 300

原创 a^b (快速幂板子)

题面:a^b快速幂思想:每个正整数都可以唯一表示为若干指数不重复的 222 的次幂的和。如果 bbb 在二进制表示下有 kkk 位,其中第 i(0≤i<k)i(0\leq i<k)i(0≤i<k) 位的数字是 cic_ici​,那么有:b=ck−12k−1+ck−22k−2+...+c020b=c_{k-1}2^{k-1} + c_{k-2}2^{k-2} +...+c_02^0b=ck−1​2k−1+ck−2​2k−2+...+c0​20所以:ab=ack−12k−1∗ack−

2020-08-03 00:21:01 216

原创 Fractal Streets(经典分形递归+坐标旋转)

原题链接:Fractal Streets题面:思路:本题关键要解决:求编号为MMM的房屋在NNN级城市中的位置。把该问题记为 calc(N,M)calc(N, M)calc(N,M) ,本题就是求 calc(N,A)calc(N, A)calc(N,A) 和 calc(N,B)calc(N, B)calc(N,B) 之间的距离。该题每一级的图像都是由上一级的图像变换得来的。具体的变换如下:假设当前为 NNN 级城市,将其对称的分成房屋数量完全相等的四个小块,即左上、右上、右下、左下。而这四个方

2020-08-02 23:59:59 837

原创 Tallest Cow(基础差分思想)

原题题面:Tallest Cow题目大意:有 NNN 头牛站成一排。两头牛能看见彼此,当且仅当它们中间的所有牛都比它们矮。现已知最高的牛是第PPP头,且它的身高为HHH,不知其他剩下 N−1N-1N−1 头牛的身高。题目还给出了 MMM 对关系,每队关系都有两头牛AAA和BBB能互相看见。求每头牛的身高最大可能是多少。思路:如果两头牛之间看得见,那么 Ai+1Ai+1Ai+1 到 Bi−1Bi-1Bi−1之间的牛比 AiAiAi 和 BiBiBi 都小1,也就是让这个区间内的牛身高都减1,可以简单想

2020-08-02 15:48:33 528

原创 2020牛客多校第七场B题 Mask Allocation

题面:思路:分析题面易知,盒子中最大的口罩数量 k≤min(n,m)k\leq min(n, m)k≤min(n,m)。所以我们只要有一点点贪心的思想就可以了,即先让 min(n,m)min(n, m)min(n,m) 的口罩数量填到 max(n,m)max(n, m)max(n,m) 个盒子里。这样能保证前 iii 项的盒子都是最大的口罩数量,也就符合字典序最大的题意了。然后,从末尾的盒子中一个个分解口罩的数量,总共有 n%mn \% mn%m 个盒子需要分解,每个末尾的盒子可能可以再细分出多个小盒

2020-08-01 20:10:38 170

原创 2020牛客多校第七场D题 Fake News(签到题)

题面:Fake News思路:签到题,注意总结结论。当且仅当 n=1或n=24n=1或n=24n=1或n=24 时,前 nnn 项的平方和为完全平方数。证明我不会。打表找规律做了。代码如下:#include <bits/stdc++.h>#define sc scanf#define pf printfusing namespace std;typedef long long LL;const double eps = 1e-7;LL n;int main(){

2020-08-01 19:43:40 176

空空如也

空空如也

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

TA关注的人

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