自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

D0zingbear的博客

这是一个蒟蒻的博客

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

原创 AtCoder Grand Contest 038 E - Gachapon 题解

传送门 题目大意: 有一个随机数生成器会随机生成[1,N][1,N][1,N]的一个整数,第iii个数被生成的概率是Ai∑jAj\frac{A_i}{\sum_{j} A_j}∑j​Aj​Ai​​,每次调用这个生成器生成一个数,把生成的数排成一个序列,当对于每个数iii都出现了不少于BiB_iBi​次时停止,求序列的期望长度。 ∑Ai≤400,∑Bi≤400\sum A_i \le 400, \s...

2019-09-23 21:25:37 532 1

原创 20190903训练记录

Codeforces 504E 题意是给一棵树,每个节点上一个字母,m次询问a到b路径的字符串和c到d路径的字符串的lcp. n=300000,m=1000000n=300000,m=1000000n=300000,m=1000000 看上去非常蠢的一个倍增题,一开始我觉得自己想明白了,甚至还质疑了为什么这道题能有3000分。 实际上一个logloglog的纯倍增还是漏洞重重的。 其中一个漏洞就是...

2019-09-03 21:12:41 214

原创 [Codeforces 956D]Contact ATC

956D 题解: 考虑两个飞机(x0,v0)(x0,v0)(x_0,v_0) (x1,v1)(x1,v1)(x_1,v_1) 对于一个风速w0w0w_0,第一个飞机的飞行时间是f0(w0)=x0v0+w0f0(w0)=x0v0+w0f_0(w_0)=\frac{x_0}{v_0+w_0} 第二个飞机的飞行时间是f1(w0)=x1v1+w0f1(w0)=x1v1+w0f_1(w_0)=\fr...

2018-08-12 14:23:54 657

原创 [Codeforces 981G]Magic multisets

981G 题解: 使用set维护对于每个数,有哪些区间的集合含有这个数。 然后每次询问暴力的修改每个区间,使用线段树维护即可。 #include<bits/stdc++.h> #define LL long long #define ull unsigned long long #define ULL ull #define mp make_pair #define pii p...

2018-08-12 13:55:37 236

原创 [Codeforces 883D]Packmen Strike Back

883D 题解: 特殊处理只有一个“P”“P”“P”的情况。 对于有两个以上的“P”“P”“P”,第一问的答案一定是所有“∗”“∗”“*”的个数。 显然第二问的答案具有单调性,所以二分答案,对于一个长度lenlenlen,只要从左到右分配方向分几种情况贪心处理就行了。 贪心策略: 1. 如果当前的“P”“P”“P”的左边没有没被覆盖的“∗”“∗”“*”,那么方向一定是向右。 2. 如...

2018-08-09 22:28:23 245

原创 [Topcoder SRM 589 Division I, Level Three]FlippingBitsDiv1

传送门 题解: 分块暴力即可. 对于m小于n−−√n\sqrt n暴力枚举循环串然后dpdpdp. 对于m大于n−−√n\sqrt n暴力枚举每个循环串是否翻转即可。 时间复杂度:O(2n√n)O(2nn)O(2^{\sqrt n}n) 代码: #include<bits/stdc++.h> #define LL long long #define ull unsign...

2018-08-09 19:23:31 390

原创 [AGC06D] Median Pyramid Hard

AGC06D 题解: 由于求的是中位数,和数的大小关系有关,则可以二分答案,然后将所有大于等于当前二分的数的刷成111,小于的刷成000,然后根据010101算出的答案调整二分区间。(套路) 然后问题就被简化成了给2n−12n−12n-1个数,每个数是0或1,求第一层的数。 令这2n−12n−12n-1个数是b1,b2,⋯,b2n−1b1,b2,⋯,b2n−1b_1,b_2, \cdots...

2018-08-08 21:00:30 315

原创 [HDU 6314] Matrix

HDU 6314 题解 写完后看了眼题解,发现题解不靠谱. fa,j=1−∑j−1k=aCkjfa,j=1−∑k=aj−1Cjkf_{a,j}=1-\sum_{k=a}^{j-1} C_j^k 此处应为 fa,j=1−∑j−1k=afa,kCkjfa,j=1−∑k=aj−1fa,kCjkf_{a,j}=1-\sum_{k=a}^{j-1} f_{a,k}C_j^k ​​代码: ...

2018-08-07 14:44:02 309

原创 [HDU 6305]RMQ Similar Sequence

HDU 6305 题解: 首先B数列一定是一个下标满足二叉搜索树,值满足大根堆的东西。 先考虑B数列满足这个条件的概率。 首先根的元素一定是A数列中最大的(第二关键字是下标最小),考虑B数列中对应的元素。 这个元素是最大的概率是1n1n\frac1n, 递归的求解左右两个区间满足条件的概率乘起来就是B数列满足条件的概率。 最后在将概率和B数列的和的期望即n2n2\frac n2乘起来就行...

2018-08-07 13:16:26 193

原创 [HDU 6338] Depth-First Search

HDU 6338 题解: 首先显然的dpdpdp, dp(u)=|sonu|!∏v∈sonudp(v)dp(u)=|sonu|!∏v∈sonudp(v)dp(u)=|son_u|! \prod_{v \in son_u} dp(v) ,然后换根dp,求出以任意节点为根的答案。 然后考虑根编号小于B1B1B_1的,直接加入答案。对于根编号为B1B1B_1, 可以按为利用前面求得的dpdpdp值...

2018-08-01 22:00:00 325

原创 [HDU 6327]Random Sequence

HDU 6327 题解 #include<bits/stdc++.h> #define LL long long #define ull unsigned long long #define ULL ull #define mp make_pair #define pii pair<int,int> #define piii pair<int, pii > ...

2018-07-30 22:59:26 349

原创 [HDU 6331]Walking Plan

HDU 6331 题解 #include<bits/stdc++.h> #define LL long long #define ull unsigned long long #define ULL ull #define mp make_pair #define pii pair<int,int> #define piii pair<int, pii > ...

2018-07-30 20:10:01 391

原创 [Topcoder SRM403 Division I Level Three] TheLuckySum

Topcoder SRM403 Division I Level Three 题解: 错误的解法: dpdpdp预处理n≤106n≤106n \leq 10^6的答案,然后迭代加深爆搜,发现无论怎么加优化都会T掉。 正确的解法: 按位搜索,枚举每一位上有几个4和几个7,然后在确定了每一位上4和7的个数后,当前的最优解可以直接O(92)O(92)O(9^2)求得。加上一些可行性剪枝即可轻...

2018-07-29 22:51:07 406

原创 [ZOJ 2617/UVALive 3488] Edison

UVALive 3488 题解: 性质:对于连续的R次同样的操作,可以变成一次操作。 解法一:对原序列分块,然后暴力操作即可。时间复杂度O(SC−−√)O(SC)O(S \sqrt C ) 解法二:使用平衡树维护序列。 时间复杂度O(Slogn+n)O(Slogn+n)O(Slogn+n) 解法三:暴力维护当前序列的区间状态,每次操作沿左右端点将区间切开。时间复杂度O(S2)O(S2)O...

2018-07-29 22:02:00 183

原创 [URAL 1148] Building Towers

URAL 1148 题解: 考虑朴素的dpdpdp, dp(i,j,k)dp(i,j,k)dp(i,j,k)表示考虑到第i层,当前层放jjj个块,已经放了kkk个块的情况数量. 空间约为8×60×70×2500bytes≈80MB8×60×70×2500bytes≈80MB8 \times 60 \times 70 \times 2500 bytes \approx 80 MB 远超出空间...

2018-07-29 21:53:03 246

原创 [Codeforces Gym 101651/100725B] Banal Tickets

Codeforces Gym 100725 题解: 先分两种情况, 积为000与积非000, 积为 000 的情况容斥求解即可。 考虑积非000的情况 令dp1(i,c2,c3,c5,c7)dp1(i,c2,c3,c5,c7)dp1(i,c2,c3,c5,c7)表示考虑左边n个数中到第iii个数为止积为2c23c35c57c72c23c35c57c72^{c2}3^{c3}5^{c5}7^...

2018-07-28 22:56:18 283

原创 [Codeforces 339E] Three Swaps

339E 题解: 最朴素的做法是O(n4)O(n4)O(n^4)枚举其中两次翻转的左右端点,然后O(n)O(n)O(n)判断剩下的序列是否能通过一次反转得到ai=iai=ia_i=i的排列。 总时间复杂度O(n5)O(n5)O(n^5). 发现其实可能的区间左右端点并没有很多,在把序列aaa分成若干个公差为111或−1−1-1等差数列后,可能的区间左右端点必定与一个等差数列的左右端点重合。...

2018-07-28 22:43:09 619

原创 [SGU 475] Be a Smart Raftsman

SGU 475 题解: 由于n≤10n≤10n \leq 10, 所以显然的解法是状态压缩dpdpdp , dp(i,mask)dp(i,mask)dp(i,mask)表示走到第iii个河岸,船上的人集合是maskmaskmask的最少时间花费。 转移方程: dp(i,mask)=minmask′{dp(i−1,mask′)+trans(mask,mask′)+costi(mask)}...

2018-07-28 22:18:43 409

空空如也

空空如也

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

TA关注的人

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