![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
比赛总结
文章平均质量分 54
大学要有梦想
求offer鸭
QQ:1257960165
展开
-
hdu多校第九场题解(>=100人)
虚拟比赛的时候就做了一道题。。晕。 A - Rikka with Nash Equilibrium 这题写了一个深搜,结果5*5都搜不出来呜呜呜 看别人的题解才知道是dp,dp[i][j][k]代表已经放了i个,占了j行k列的数量。 转移式子倒是挺好想的。。#include<bits/stdc++.h>using namespace std;long long dp...原创 2018-09-02 18:36:42 · 459 阅读 · 0 评论 -
牛客网暑期ACM多校训练营(第八场
B Filling pools 别问我为什么,google就完事了。 贴一个地址。 https://math.stackexchange.com/questions/2732802/computing-nth-schr%C3%B6der-number#include<bits/stdc++.h>using namespace std;const int maxn=3...原创 2018-08-13 09:37:27 · 369 阅读 · 0 评论 -
牛客网暑期ACM多校训练营(第七场
第七场和第八场比较难,所以补的题少一点。。 C Bit Compression 暴力+剪枝就完事了。#include<bits/stdc++.h>using namespace std;const int maxn=3e5+5;int num[20][maxn];char s[maxn];int C(int opt,int a,int b){ if(...原创 2018-08-12 23:41:56 · 168 阅读 · 0 评论 -
牛客网暑期ACM多校训练营(第六场
F Squirtle 理解题意之后就十分好做了,唯一要注意的是会爆longlong,所以要用大数。 具体树dp见代码。#include<bits/stdc++.h>using namespace std;typedef long long LL;struct BigInt{ static const int BASE = 100000000; /...原创 2018-08-06 15:21:57 · 218 阅读 · 0 评论 -
牛客网暑期ACM多校训练营(第五场
A gpa 签到题,然而博主没做过01分数规划,看完题解才知道怎么做,但是对01分数规划还是不太了解。。 题解已经写得十分详细了,直接贴代码了。#include&lt;bits/stdc++.h&gt;using namespace std;const int maxn=1e5+5;struct node{ int s,c;}nodes[maxn];double ...原创 2018-08-06 14:00:26 · 200 阅读 · 0 评论 -
牛客网暑期ACM多校训练营(第四场
A Ternary String 主要是要推出公式。剩下的和之前做的牛客那题差不多,这种要降幂的还是写递归比较好啊。 降幂用拓展欧拉定理就行了。可参考博主另一篇博客 式子为 if s[i]==’0’ f[i]=f[i-1]+1 if s[i]==’1’ f[i]=2*f[i-1]+2 if s[i]==’2’ f[i]=2^f[i-1]*6-3 如果每次都要算一次模的欧拉值会T,所...原创 2018-08-01 15:03:21 · 158 阅读 · 0 评论 -
牛客网暑期ACM多校训练营(第三场
B Expected Number of Nodes 对于求期望这一类问题,我们通常可以算每个点对答案的贡献,然后累加。 假设当前要选择k个点。 对于度数小于等于2的点,它能存在的情况只有它被选进去,所以它能存在的概率即为C(n−1,k−1)/C(n,k)C(n−1,k−1)/C(n,k)C(n-1,k-1)/C(n,k)。可以发现它们的概率的分母都为C(n,k)C(n,k)C(n,k),...原创 2018-07-30 01:35:19 · 157 阅读 · 0 评论 -
牛客网暑期ACM多校训练营(第二场
B discount 对于每个i和f[i],如果将其视为一条边f[i]->i,那么n个点那条边,那么它是多个基环树(一棵树加一条边则形成基环树)。这里我们需要断环为链。 考虑其中一颗基环树,如果我们将它的环中的一条边删掉的话,这里就变成了树,从而想到树形dp,状态也很容易想到dp[u][way] 代表u结点及其孩子的总的最小费用,且u按照way方式购买的,way=0,1,2分别表示,免...原创 2018-07-26 00:53:01 · 264 阅读 · 1 评论 -
Codeforces Round #497 (Div. 2)D题详解
D. Pave the Parallelepiped D题做法实际上很显然,你只要保证你选出来的三个数a,b,c能和A,B,C一一对应(这里的对应是指前者是后者的因子),但是由于A,B,C这三个数有可能有共同的因子。那么在选择的时候需要进行容斥来排除重复选择的情况。然而容斥很麻烦。。 其实我们不用想的那么复杂,首先我们可以画一幅图。 因子的种类实际上可以分成图上7类,你只要挑出3类,A,...原创 2018-07-14 21:54:12 · 668 阅读 · 0 评论 -
Codeforces Round #495 (Div. 2)B,D,E详解
好菜,B都没做出来。。 B. Sonya and Exhibition 一开始被样例给迷惑了,一直在想如何根据区间进行构造,但怎么写都感觉有bug。。 实际上玫瑰花和茉莉花交叉排序就行了。 我是真的菜啊。#include<bits/stdc++.h>using namespace std;int main(){ int n,m; scanf("%d %...原创 2018-07-13 11:36:23 · 194 阅读 · 0 评论 -
hdu多校第二场题解(>=100人)
G - Naive Operations 一开始想到了线段树,但是没仔细思考如何操作。 大概就是维护区间最小值,如果最小值小于等于0才继续往下推。#include<bits/stdc++.h>using namespace std;const int maxn=1e5+5;int b[maxn];struct node{ int mi,lazy,sum;...原创 2018-08-26 13:52:01 · 375 阅读 · 0 评论 -
hdu多校第三场题解(>=100人)
F - Problem F. Grab The Tree 晕,做的时候大胆猜了一个结论,结果A了。赛后看题解发现猜错了。。 正确结论如下:如果异或和为0的话,无论先手怎样拿显然都是平局。如果不为0的话,找到异或和最高位的那个1, 这个位置是1得数一定有奇数个,我们只要拿走一个,剩下的数的异或和的这一位就一定是0,先手就一定胜利。 A - Problem A. Ascending Rati...原创 2018-08-27 01:23:00 · 172 阅读 · 0 评论 -
hdu多校第十场题解(>=100人)
时间不多了,然而hdu的多校还没开始补。。博主打算先解决掉>=100人的题,其他的题等以后再补吧。 Problem E. TeaTree 第一次见线段树合并的题,没想到线段树还能这么用。真好玩。。 这题没什么逻辑问题,std也写的很好。这里就不多说了。#include<bits/stdc++.h>using namespace std;const int max...原创 2018-08-23 10:53:29 · 611 阅读 · 0 评论 -
ACM-ICPC 2018 南京赛区网络预赛题解
B. The writing on the wall 如果没有黑点的话,我们可以这样计算子矩阵个数:对于一个坐标为(x,y)的点来说,以它为右下角的矩阵个数即为y+y+⋯+yxy+y+⋯+y⏟x\begin{matrix} \underbrace{y+y+\cdots+y}\\x\end{matrix} 但如果出现黑点的话,高度就取不到y了,所以遍历每个点时...原创 2018-09-02 11:40:35 · 537 阅读 · 0 评论 -
hdu多校第八场题解(>=100人)
这场之前打过了,开虚拟比赛就偷懒了一下,搞了几天今天才把题补完呜呜呜。。 感觉题目都挺好的。 A - Character Encoding 这个当时做的时候想了很久,以为是母函数。将所求的转换成式子就为(1+x1+x2+...+xn−1)m(1+x1+x2+...+xn−1)m(1+x^1+x^2+...+x^{n-1})^m 的k次幂的系数。 那么将它用等比数列求和公式表示后,再用牛顿二...原创 2018-09-01 22:28:19 · 256 阅读 · 0 评论 -
hdu多校第七场题解(>=100人)
K - Swordsman 这题挺好的,做的时候写了假算法,而且没用fread读入,结果sort一下就T了。。 还以为思路错了。。 实际上思路很裸,将怪兽按k个a值排个序,然后k个指针往后走,如果一个怪兽被扫了k次,那么能力值就加上这个怪兽的b。 呜呜呜。。 这里刚好贴一下输入挂#include<bits/stdc++.h>using namespace std;...原创 2018-08-30 01:28:08 · 216 阅读 · 0 评论 -
hdu多校第六场题解(>=100人)
B - bookshelf 呜呜呜,几个特性不知道,结果式子都没推出来。。 题解链接搓这里 一个放x本书的层美观函数b(x)=2Fx−1b(x)=2Fx−1b(x)=2^{F_x}-1 整个书架的美观值为各层美观值的最大公约数,考察任意两项: gcd(b(x),b(y))gcd(b(x),b(y))gcd(b(x),b(y)) =gcd(2Fx−1,2Fy−1)=gcd(2Fx−1,...原创 2018-08-30 01:23:31 · 256 阅读 · 0 评论 -
牛客网暑期ACM多校训练营(第十场
D Rikka with Prefix Sum 当时一直想着怎么维护,并没有想到每个值对询问的贡献。。 真的是太菜了。 题解说的比较详细了,你只需要推出那个式子就行了。#include<bits/stdc++.h>using namespace std;const int maxn=1e5+5;const int mod=998244353;struct Que...原创 2018-08-21 22:52:00 · 214 阅读 · 0 评论 -
hdu多校第五场题解(>=100人)
E - Everything Has Changed 利用余角定理算出弧度,然后乘以半径就行了。acos真牛逼!本来我以为相交还得分两种情况来计算,但实际上列了一个通式之后算出来的结果用acos转换成弧度之后它会自己变成正确的,因为acos的值域为[0,pi]#include<bits/stdc++.h>using namespace std;const double P...原创 2018-08-28 20:44:34 · 177 阅读 · 0 评论 -
hdu多校第一场题解(>=100人)
B - Balanced Sequence 预处理出每个串未匹配的)及(的个数,看这个范围大致可以猜出是贪心。然而博主单纯的按照(从大到小排序。。看了题解才发现还能这样。。 这题主要的trick是排序方式,记好了!#include&lt;bits/stdc++.h&gt;using namespace std;const int maxn=1e5+5;struct node{...原创 2018-08-23 22:54:14 · 232 阅读 · 0 评论 -
牛客网暑期ACM多校训练营(第九场
C Gambling 一开始感觉这个题似乎没什么逻辑,博主只是跟着题解AC了一遍。。等写博客的时候大概想了想概率与此时应加的钱的关系,才觉得有点道理。 我们要明白两件事情。 第一,一开始的概率为1/2。 第二,题解上写的概率的转换。也就是设当前胜率为p,那么如果下一场赢了,胜率会变成p+q,输了胜率会变成p-q。 总之只需要明白胜率会进行加加减减知道最后变成1或者0。所以这也就说明了为...原创 2018-08-21 00:23:19 · 280 阅读 · 0 评论 -
hdu多校第四场题解(>=100人)
B - Problem B. Harvest of Apples 这题是个好题。一开始我以为有什么公式可以直接套,然后就没多想就去找题解了,结果题解说是莫队,突然觉得很有道理。。#include<bits/stdc++.h>using namespace std;const int maxn=1e5+5;const int mod=1e9+7;//*********...原创 2018-08-27 23:00:51 · 257 阅读 · 0 评论 -
The 2018 ACM-ICPC Chinese Collegiate Programming Contest题解(计蒜课第五场)
这场就补一道题哈哈。 F. Moving On n只有200,但是询问有2e4,可以发现其实有很多询问虽然问的不一样但实质是一样的,所以我第一想法是将r离散化,然后将询问离线,对每个询问按照w对应离散化后的r的下标进行分类,对于同一类别的询问跑floyd,然而还是t了。。 之后想到了可以将点按照r的大小排个序,这样就可以了,然而我离散化unique函数返回值一直都搞错了,所以wa了,赛后把它...原创 2018-07-18 21:45:37 · 529 阅读 · 0 评论 -
German Collegiate Programming Contest 2015题解(计蒜课第三场)
比赛网站: http://codeforces.com/gym/100753/problem/C 这场比赛的时候没打,赛后虚拟比赛的时候卡了两个题,比赛完了结果都A了。。很烦。。 [C - Cake] 比赛的时候以为是个水题,随手写了个2分结果意识到精度有问题。。最终还是没过。 其实它的面积和1/s21/s21/s^2 成正比,学过相似都知道。所以我们只要算出s=2的时候的面积,然后根据...原创 2018-07-18 17:05:55 · 328 阅读 · 0 评论 -
Educational Codeforces Round 47 (Rated for Div. 2)F详解
题意:给出一棵树,对于结点x来说,dx,kdx,kd_{x,k}表示与x的距离为k的它的孩子的个数,我们要找到dx,jdx,jd_{x,j},对于所有的k< j,dx,k<dx,jdx,k<dx,jd_{x,k}dx,k≤dx,jdx,k≤dx,jd_{x,k} \leq d_{x,j},就是找到第一个最大的d。 做法也十分的暴力,我们在dfs的过程中,可以根据子节点碰到的每一...原创 2018-07-18 16:43:04 · 194 阅读 · 0 评论 -
Codeforces Round #431 (Div. 2)(有E题!)比赛总结
做完这套题感觉如释重负。。只有一种感觉:好难,连前2道都让我感觉很困难。单看代码其实不怎么样,但它的思路确实让我感到了和大佬的差距。 A题题意:给你个数为n的序列,让你将该序列分成若干个小序列,小序列开头,结尾,个数都必须为奇数,并且,小序列的总个数也必须为奇数。问你是否有可能。 思路:博主的第一想法是模拟。。然而仔细想想该题有其奥妙在内。试想,小序列元素个数是奇数个,而小序列总个数也是奇数个,原创 2017-09-04 18:27:06 · 220 阅读 · 0 评论 -
Codeforces Round #432 (Div. 2)C,D,E题目详解
越到后来就发现,CDE题对博主的提升更大,而且博主纵观CSDN,几乎没人写E题题解,写A到D的居多,为了提高阅读量以及博客水平,以后就只更新CDE题目的题解了,并且会陆续把之前大约50场div2的题目都更新。。 C题题意:在一个5维坐标系中,如果一个点与其他任意两个点组成的两个向量夹角小于90度,则该点被称为bad,给你n个点的坐标,问有几个good点。 思路:直接三层for循环,如果夹角小于9原创 2017-09-05 23:53:18 · 405 阅读 · 0 评论 -
Codeforces Round #433(Div.2) C,D,E题目详解
C题题意:有n台飞机,起飞时间依次从1到n,但是现在会延期k分钟,也就是现在允许飞行的时间为k+1到k+n,每台飞机延期1分钟会有一个代价ci,并且不允许提前飞行,问如何安排飞行顺序使得代价最小。 思路:对于每台飞机来说,延期代价有大有小,那么延期对于代价大的来说,会影响更大,所以应该让代价大的飞机先选飞行时间。 按照上面的思路,先按照代价排序,然后让每个飞机都从自己原先起飞的时间往后遍历,看哪原创 2017-09-08 00:06:34 · 596 阅读 · 1 评论 -
Codeforces Round #430(Div.2) C,D,E题目详解
C题题意:询问从1(根节点)到其他所有节点的最大gcd是多少,你可以在该路径中将其中一个节点的值改为0或者一个都不改来影响最终的结果,所有节点的最大gcd分开考虑。 思路:一开始想到dp,但从他的根到孩子并没有什么联接性,满足根的gcd最大并不代表同样孩子的gcd最大。所以不能dp。 换种简单的思路,从上而下,将所有结果都保存下来,然后加上该点的值的影响,看最终结果哪个最大。一个简单的dfs即原创 2017-09-08 18:58:12 · 257 阅读 · 1 评论 -
Codeforces Round #435 (Div. 2)C,D,E,F题目详解
C题题意:用n个不同的数异或变成x。 思路:博主一开始的想法是一个偶数和它相邻的奇数异或值为1,那么我只要构造出许多个1,然后判断有奇数个1还是偶数个1就行了。如果是偶数个1,那么相当于前面异或值为0了,那么在加一个x就行了。同理奇数个1相当于前面异或值为1,那么最后一个数为x-1或者x+1(需判断一下哪个可行)。 依然觉得想法可行,但有许多细节要注意。下面介绍一个思路更加清晰的想法。 思路2原创 2017-09-22 10:26:13 · 554 阅读 · 0 评论 -
Codeforces Round #436 (Div. 2)E,F详解
鉴于太多人把D做出来了,实际上D就是道模拟简单题,所以本篇博客并没有D的题解。如果有需要的读者可以联系博主,博主会很热心的为你解释的(笑)。。 E题题解:Polycarp家着火了。。他家里有n个值钱的东西,每一个东西有一个营救需要的时间和一个烧毁需要的时间。问Polycarp能救出的东西的最大价值为多少,并输出营救顺序。 思路:裸的01背包问题。。如果不明白01背包问题可以看看紫书的动规专题。原创 2017-09-27 00:08:25 · 455 阅读 · 0 评论 -
Manthan, Codefest 17 B-F题目详解
被这套题搞的突然失去梦想。。 B题题意:给你三个值p,q,r,在一段序列上选取3个值ai,aj,ak(1<=i<=j<=k<=n)使得ai*p+aj *q+ak *r最大。 思路:做的时候想歪了,但弄懂了一个之前一直疑惑的问题。。之后认真思考这道题时发现不是很难想,首先博主做的时候认定为一道dp题。 dp转移方程为:dp[j][i] = max(dp[j - 1][i], dp[j][i -原创 2017-09-30 16:48:16 · 453 阅读 · 6 评论 -
Codeforces Round #437B,C,D,E题目详解
B题题意:给你一个答案A,让你推出用M种硬币组成N元钱的方案数为A。 思路:构造题,其实我们很容易知道用1和2就可以构造出所有的数,然后再算一算就会发现构造出的数字的方案是有规律的。读者可以自己思考思考。#include<iostream>using namespace std;int main(){ int A; cin >> A; cout << 2 * A -原创 2017-10-02 19:51:20 · 326 阅读 · 0 评论 -
2013长春regional题目详解
和队友打模拟赛遗憾的打铁了,在这里总结一下题,还是太菜了。。 题目难度由易到难的顺序讲解。 C题队友wa了4发后A了,一开始题意都不太理解,但实际上就是求N个数组成的所有数中的就行了。仔细想想其实题目不是很难理解。 代码如下:#include<iostream>#include<stdio.h>#include<cstring>#include<algorithm>using name原创 2017-11-06 20:11:13 · 204 阅读 · 0 评论 -
Codeforces Round #429 (Div. 2) D E两题总结
前三道题太水了,直接开后面两道吧。 D题题意:n个点m条边,每个点有一个值,该值等于0,1或-1,如果值为0,它的度数需要是偶数或者0,如果值为1,度数则需要为奇数,若为-1则随意。给出他们的边,需要你从中选几条边来满足所有的点的要求。思路:试想,如果所有边都不选,那么值等于1的会不满足题意,这时候我们就要加一条边给它,我们用dfs来维护这个过程,对于结点u,它的孩子v如果d值为1,那么他们两之间原创 2017-08-21 19:40:31 · 233 阅读 · 0 评论 -
Codeforces Round #428 (Div. 2)比赛总结
这次终于涨分了,比赛的时候思路也比前几次清晰多了,继续加油。 A题题意:A每天可以获得ai个糖,他会把糖给B,但是一天顶多给8颗,问最少要几天B获得的糖数不少于k颗。 WA了几次,一开始题意理解错了。。遇到水题还是得冷静分析分析。 最直接的思路就是如果A手上的糖数多于8颗,就给B8颗,如果少于8颗,就全部给他。 直接贴代码。#include<iostream>using namespace原创 2017-08-01 23:21:58 · 384 阅读 · 0 评论 -
Codeforces Round #426 (Div. 2)比赛总结
这场比赛比上次有进步,做出来2道题,但是由于交的时间太晚,没涨分。。 目前仍然是1456。。 A题题意:给你2个字符,2个字符都是这四个中的一个(v<^>),再给你一个步数k,经过k次旋转,第一个字符可以变成第二个字符,问你他是顺时针还是逆时针还是不可确定的… 思路:只需知道两个字符的位置,然后判断即可(搞不清楚为什么有人模拟做出这道题的。。)#include<iostream>#inclu原创 2017-07-31 21:10:42 · 251 阅读 · 0 评论 -
牛客网暑期ACM多校训练营(第一场
补得好辛苦QAQ,不过终于补完了。。 A Monotonic Matrix A题博主是打表找出规律来的,稍后会把详解贴上来。 找出来的规律为:C(m+n,n)*C(m+n+1,n)/(n+1) 找到规律就好办了,直接预处理出阶乘及阶乘的逆元及1到maxn的逆元就行了。#include<bits/stdc++.h>using namespace std;const i...原创 2018-07-24 03:57:42 · 207 阅读 · 0 评论 -
计蒜课周赛题解(计蒜课第四场)
比赛的时候只做了两个题,太菜了,实际上补的时候并没有感觉很难。 A. 从零开始的神棍之路 深搜就完事了。#include&lt;bits/stdc++.h&gt;using namespace std;int p1,ret1,ret2;int vis[30];int dfs(int d){ if(d==1) { p1=ret1=ret2=0;...原创 2018-07-17 22:44:26 · 163 阅读 · 0 评论 -
牛客练习赛22题解
简单瞎搞题 不会用bitset,所以没做出来。实际上还是比较简单的。#include<bits/stdc++.h>using namespace std;bitset<1000005>dp[2];int main(){ int n; cin>>n; int l,r; dp[0][0]=1; for(int...原创 2018-07-17 22:24:46 · 406 阅读 · 0 评论