C. Page Numbers time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output «Bersoft» company is working on a new version of its most popular text editor - Bord 2010. Bord, like many other text editor…
题意: 给出一个树,树上每一条边的边权为 1,求树上所有最长链的点集并. 细节: 可能存在多条最长链!最长链!最长链!重要的事情说三遍 分析: 方法round 1:暴力乱搞Q A Q,边权为正-> d f s 解决,如何标记点集呢,只需要求出最大长度,然后在进行一次遍历,当当前长度等于最长链长的时候就返回 true,并且对沿路的节点进行标记. 好吧这样你就成功的死亡了,还是细节最长链有多条!有多条!有多条!好吧我们再来看一张神奇的图片 点我的最帅最美 想象一下多条最长链一定是根所示的有一条链和一…
题意:给你一颗树,问这颗树是否存在一个根,使得对于任意两点,如果它们到根的距离相同,那么它们的度必须相等. 思路1:树的重心乱搞 根据样例发现,树的重心可能是答案,所以我们可以先判断一下树的重心可不可以.如果不行,剩下的只可能是度为1点当根了.当然,我们不能枚举所有度为1的点,不然一个菊花图就超时了,我的做法是对于以重心为根的树搜索一遍,对于每个深度的度数为1的点只记录一个,然后枚举这些点,如果有就是有,否则没有.这样最坏的复杂度应该能到O(n * sqrt(n)),但是肯定跑不满.至于为什么这…
题目传送门(内部题94) 输入格式 第一行两个整数$n,k$,代表衣服的数量和阈值. 接下来一行$n$个数,第$i$个数$a_i$表示每件衣服的愉悦值. 输出格式 输出一行$n$个数,第$i$个数为$r_i-l_i+1$,如果不存在这样的$l,r$,则输出$-1$即可. 数据范围与提示 $n\leqslant 10^6,0\leqslant a_i\leqslant 10^8,0\leqslant k\leqslant 10^9$ 题解 正解是什么?我不知道. 乱搞就好了…… 具体看代码吧,挺帅…
B. DZY Loves FFT 题目连接: http://codeforces.com/contest/444/problem/B Description DZY loves Fast Fourier Transformation, and he enjoys using it. Fast Fourier Transformation is an algorithm used to calculate convolution. Specifically, if a, b and c are s…
原题链接:http://codeforces.com/gym/100203/attachments/download/1702/statements.pdf 题解 考虑暴力的复杂度是O(n^3),所以我们需要记录所有的ai+aj,如果当前考虑到了ak,那么就去前面寻找ai,使得ak-ai是我们记录过的和.整个算法的复杂度O(n^2). 代码 #include<iostream> #include<cstring> #include<cstdio> #include<…
G. Suggested Friends time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Polycarpus works as a programmer in a start-up social network. His boss gave his a task to develop a mechanism for dete…
Codeforces 题目传送门 & 洛谷题目传送门 简单题,难度 *2500 的 D2F,就当调节一下一模炸裂了的自闭的心情,稍微写写吧. 首先我看到这题的第一反应是分类讨论+数据结构,即枚举其中一个被交换的位置然后用树状数组或类似的数据结构维护另一个决策的贡献,细节似乎挺多的,大概硬刚个大分类讨论上去也可以?不过显然此题有更简便的方法所以这种方法就没写了. 我们来观察一下这个"交换"有什么性质,这个绝对值有点烦,我们不妨将所有 \(i\) 分为两类:\(a_i<b_i…
题面: https://www.lydsy.com/JudgeOnline/problem.php?id=1491 题解: 先看数据范围,n<=100..欸可以乱搞了 首先因为小学学过的乘法原理,a->b有n种走法,b->c有m种走法,那么a->c有n*m种走法. 那么我们就用一个类似邻接矩阵的p矩阵来存走法,p[i][j]表示在最短路的前提下,从i到j的走法. 那么在用floyd跑最短路的时候,如果可以松弛,就用p[i][k]*p[k][j]来更新p[i][j]:如果不能松弛,就…
题意:a是严格递增数列,bi是ai每一位的和,告诉你b1~bn,问你怎样搞才能让an最小 思路:让ai刚好大于ai-1弄出来的an最小.所以直接模拟贪心,如果当前位和前一个数的当前位一样并且后面还能生成比前一个数大的数,那么就和前一个数保持一致,否则当前位 = 前一个数当前位+ 1,后面的位数按照最小方式排列.如果排到最后每一位都和前面一个数一致,就把剩余的b从最小的一位一直加满9. 代码: #include<set> #include<map> #include<stack…