随笔分类 - /* 圣人不死 AC不止!*/
coding不息!
摘要:题目传送门题意:中文题面分析:放官方题解,就是从1为根节点深搜记录节点的深度,选出最大的深度的点,将该到达该点的节点都vis掉,然后再重新计算没有vis的点的深度,找最大的相加就是答案。放张图好理解:收获:计算树的节点的深度代码:/**********************************...
阅读全文
摘要:以后每做完一场CF,解题报告都写在一起吧暴力||二分A - Bear and Elections题意:有n个候选人,第一个候选人可以贿赂其他人拿到他们的票,问最少要贿赂多少张票第一个人才能赢分析:正解竟然是暴力!没敢写暴力,卡了很久,导致这场比赛差点爆零!二分的话可以优化,但对于这题来说好像不需要。...
阅读全文
摘要:题目传送门题意:给出一些砖头的长宽高,砖头能叠在另一块上要求它的长宽都小于下面的转头的长宽,问叠起来最高能有多高分析:设一个砖头的长宽高为x, y, z,那么想当于多了x, z, y 和y, x, z的砖头,如果i能叠在j上,那么g[i][j] = true,转换成DAG问题,dp[i]表示第i块叠...
阅读全文
摘要:题目传送门题意:一个长为n(n#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include ...
阅读全文
摘要:题目传送门题意:素性测试和大整数分解,N (2 #include #include #include #include #include #include #include #include #include #include #include #include #include #include ...
阅读全文
摘要:题目传送门题意:一个置换群,经过最少k次置换后还原。问给一个N个元素,在所有的置换群里,有多少个不同的k。分析:这道题可以转化成:N =Σai ,求LCM (ai)有多少个不同的值。比如N=10时,k可为:1,2,3,2*2,5,2*3,7,2*2*2,3*3,2*5,2*2*3,2*7,3*5,2...
阅读全文
摘要:题目传送门题意:计算从1开始到第n个非完全平方数的开方和分析:设第n个非完全平方数的值为a,x * x #include #include #include #include #include #include #include #include #include #include #include...
阅读全文
摘要:题目传送门题意:有n个金矿,每个金矿有抓取的消耗的时间和价值,矿工在原点,问在T时间内能得到的最大的价值分析:唯一和01背包不同的是金矿可能共线,也就是抓取近的金矿后才能抓后面共线的金矿。这是分组背包问题,方法是将点按照斜率排序,如果相等按照距离原点远近排序,将斜率相等的点分成一组,每组的点累加上前...
阅读全文
摘要:题目传送门题意:求C(n,0),C(n,1),C(n,2)...C(n,n)中奇数的个数分析:Lucas 定理:A、B是非负整数,p是质数。AB写成p进制:A=a[n]a[n-1]...a[0],B=b[n]b[n-1]...b[0]。则组合数C(A,B)与C(a[n],b[n])*C(a[n-1]...
阅读全文
摘要:题目传送门题意:5个集合,每个集合最多200个数字,问是否每个集合挑一个数加起来和为0。分析:显然n^5的程序果断超时,甚至n^3logn的二分也过不了。想n^3的方法,既然判断有没有,那么可以将两个两个的集合合并成两个大集合,再枚举最后一个集合,两个大集合排完序之后一个指针从开头最小开始,另一个从...
阅读全文
摘要:题目传送门题意:给两串字符串,操作1:替换其中一个字符串的某个位置的字符 操作2:查询从p开始相等的最长连续长度分析:树状数组可以维护一个区间内公共长度(连续)的情况,查询时用二分查找最远的端点即可。还可以用线段树去做,线段树能处理的问题很多,这题只要往右区间合并就行了。收获:1.线段树的区间合并又...
阅读全文
摘要:题目传送门题意:有一个A进制的有限小数,问能否转换成B进制的有限小数分析:0.123在A进制下表示成:1/A + 2/(A^2) + 3 / (A^3),转换成B进制就是不断的乘B直到为0,即(1/A + 2/(A^2) + 3 / (A^3)) * (B^m)。那么(B^m) 一定要能整除(A^n...
阅读全文
摘要:题目传送门题意:判三角恋(三元环)。如果A喜欢B,那么B一定不喜欢A,任意两人一定有关系连接分析:正解应该是拓扑排序判环,如果有环,一定是三元环,证明。DFS:从任意一点开始搜索,搜索过的点标记,否则超时。看是否存在两点路程只差等于2,如果存在,则说明有上述的三角环。其他做法。收获:DFS搜索一定要...
阅读全文
摘要:题目传送门题意:给出一些花开花落的时间,问某个时间花开的有几朵分析:这题有好几种做法,正解应该是离散化坐标后用线段树成端更新和单点询问。还有排序后二分查找询问点之前总花开数和总花凋谢数,作差是当前花开的数量,放张图易理解:还有一种做法用尺取法的思想,对暴力方法优化,对询问点排序后再扫描一遍,花开+1...
阅读全文
摘要:题目传送门题意:完全不懂,最后还是看题解才理解了。第一行字符串是密文变成明文的规则,比如第二个样例:“qwertyuiopasdfghjklzxcvbnm”,‘q'对应的明文为’a','w'对应'b'....... 第二行是密文+明文的形式,明文有密文转换来,但不完整,求原来最小的可能文本。分析:将...
阅读全文
摘要:题目传送门题意:给一些坐标轴上的点,选一个点,使得其他点到该点曼哈顿距离和最小分析:这题有很强的技巧性,直接计算每个点的曼哈顿距离和是不可行的。这里用到了前缀的思想,先对点按照x从左到右排序,p[i].sum保存选择i点时曼哈顿距离和是多少,p[i].sum = (i - 1) * p[i].x -...
阅读全文
摘要:题目传送门题意:如何花最小的代价使得一棵树划分开且不含同类节点分析:当一条边连接的左右集合同类点小于等于1,那么不用删除,将两个集合合并,要求最小代价,那么贪心思想将权值降序排序,删除后剩下的就是最小值了。树形DP的方法以后再补上收获:进一步理解Kruskal的算法过程,碰到新的问题要往经典的算法模...
阅读全文
摘要:题目传送门题意:起点s到终点t送电,中途会有损耗,问最小损耗是多少分析:可以转换为单源最短路问题,用优先队列的Dijkstra版本,d[]表示从s出发到当前点的最小损耗,用res保存剩下的电量。当到达t就结束,因为按照w从小到大排序,访问过的点都已经最优,这是贪心思想收获:复习了Dijkstra,进...
阅读全文
摘要:题目传送门题意:给了n个点的坐标,问能有几个凸四边形分析:数据规模小,直接暴力枚举,每次四个点判断是否会是凹四边形,条件是有一个点在另外三个点的内部,那么问题转换成判断一个点d是否在三角形abc内 易得S (abd) + S (acd) + S (bcd) == S (abc),求三角形面积收...
阅读全文
摘要:题目传送门题意:有中文版的分析:(出题人的解题报告)我们首先需要预处理出任意两个国家之间的最短距离,因为数据范围很小,所以直接用Floyd就行了。之后,我们用f[S][i]表示访问国家的情况为S,当前最后访问的一个国家是i所需要的最小总油量,其中,S的二进制表示记录了访问国家的情况,S在二进制表示下...
阅读全文