牛客挑战赛46 B】的更多相关文章

题目链接: 数列 查询有多少\([l,r]\)区间满足每个数出现\(k\)的倍数次 即为\(1\)到\(r\)与\(1\)到\(l-1\)每个数相减的次数为\(k\)的倍数次 可以使用哈希维护 记录每个数出现的次数为\(cnt[x]\),哈希值为\(hash[x]\) 那么前缀哈希和即为\(\sum_{x} cnt[x]*hash[x]\)(\(cnt\)注意要模\(k\)) 当我们循环到i时候,更新哈希值,查询得到的哈希值在之前map[hash]出现的次数 (\([l,r]\)区间的哈希值为0…
题目链接: 排列 考虑\(dp\),我们思考如何设计状态 将第i个数插入i-1个数中,我们考虑会新增多少个超级逆序对 假设将\(i\)插入后\(i\)的位置为\(l\),\(i-1\)的原来的位置为\(l2\) 如果\(l2>=l\) 我们会新产生\(i-l-1\)个逆序对 否则\(l2<l\) 我们会新产生\(i-l\)个逆序对 设j为逆序对的个数,我们可以得到如下的状态转移方程 \(dp[i][j][l]+=dp[i-1][j-i+l+1][l2]\)如果\(l2>=l\) 否则\(…
题目链接: 最小的指数 乍一看还以为是Pollard_rho算法,其实大可不必. 发现\(1<= n <= 1e18\),我们可以将n分为两部分(分块思想降低时间复杂度). 剔除小于等于\(4000\)的所有质因子,剩余的设为x,设此时得到的答案为\(minnum\) 如果x为\(1\),那我们得到答案,可以直接返回 否则知道x的质因子一定大于\(4000\),可以分类讨论 若x可写成\(x=p^{(1/4)}\),\(minnum = min(minnum,4)\),返回 若x可写成\(x=…
链接:https://ac.nowcoder.com/acm/contest/894/C 来源:牛客网 华华跟奕奕玩游戏 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 524288K,其他语言1048576K 64bit IO Format: %lld 题目描述 有一个箱子,开始时有n个黑球,m个蓝球.每一轮游戏规则如下: 第一步:奕奕有p的概率往箱子里添加一个黑球,有(1-p)的概率往箱子里添加一个蓝球. 第二步:华华随机从箱子里取出一个球. 华华喜欢黑球,他想知道k轮游戏之…
链接:https://ac.nowcoder.com/acm/contest/894/B?&headNav=acm 来源:牛客网 华华送奕奕小礼物 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 524288K,其他语言1048576K 64bit IO Format: %lld 题目描述 华华用数组a和数组b合成了矩阵c.其中a数组长度为n,b数组长度为m,c是n行m列的矩阵,且c[i][j]=a[i]*b[j].定义矩阵的权值为矩阵中所有元素的和.然后他想把矩阵送给奕奕.然而…
链接:https://ac.nowcoder.com/acm/contest/894/A 来源:牛客网 华华教奕奕写几何 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 524288K,其他语言1048576K 64bit IO Format: %lld 题目描述 奕奕的几何很差,然而奕奕并不承认,所以华华扔给奕奕一道题目.如图: 已知大半圆的半径等于两个小半圆半径之和.若给出红色部分的面积,那么大圆的半径最小是多少呢?反正奕奕是不会的,所以现在请你回答. 输入描述: 输入一个正…
LINK:牛牛与序列 (牛客div1的E题怎么这么水... 还没D难. 定义一个序列合法 当且仅当存在一个位置i满足 $a_i>a_,a_j<a_$且对于所有的位置i,$1 \leq a_i\leq k$ 人话解释:一个合法序列 每个数字都在1~k之间 且有两个相邻数字是递增关系两个相邻数字是递减关系. 发现我们枚举某两个位置递增递减再进行计数会重复 而且很难减掉重复方案.这个不能代表元容斥. 考虑总方案-不合法方案.发现不合法方案就两种不增,不降. 显然不增翻转一下就是不降 考虑求出不增的方…
题目链接:https://ac.nowcoder.com/acm/contest/375/A 分析:我写的时候竟然把它当成了DP....... 还建了个结构体DP数组,保存一二位,不知道当时脑子在抽啥... 事实上这题四重循环直接暴力就了过....... 在大佬博客里学到了一种只用三重循环的高级做法 看看最后一重循环吧,因为是从后往前的,只有满足第四个条件,就把now+1,等在前面遇到满足第3个条件的数,此时now的数目就是其后满足第四个条件数的个数,直接加到ans上面即可 #include<b…
目录 题目链接 题意 思路 代码 题目链接 传送门 题意 给你一棵树,然后把这棵树复制\(k\)次,然后再添加\(m\)条边,然后给你起点和终点,问你起点到终点的最短路. 思路 由于将树复制\(k\)遍后结点个数高达\(10^{10}\)个,因此不能直接复制跑. 我们注意到\(m\leq 50000\),那么与这\(m\)条边有关的结点最多只有\(2m\)个(记作关键点),那么我们可以考虑把这些点抠出来跑最短路,不同版本之间的点的边由于题目给的\(m\)条边因此不同版本的两结点之间的距离就是\(…
传送门 之前一直咕着的,因为一些特殊的原因把这道题更掉算了-- 有一个对值域莫队+线段树的做法,复杂度\(O(n\sqrt{n} \log n)\)然而牛客机子实在太慢了没有希望(Luogu上精细实现似乎可以过). 考虑对序列进行块大小为\(B=\sqrt{n}\)的分块.对于某一个块来说,如果我们要对这个整块进行询问,那么一次询问一定会保留这\(B\)个数按照值域排序之后的一段区间,其余都变成\(0\).也就是说本质不同的询问只有\(O(B^2)\)种. 如果可以对这\(O(B^2)\)种询问…