![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
2020牛客 算法竞赛入门班课后习题集
RunningBeef
这个人很帅,所以……
展开
-
借教室 二分答案 + 差分 + 前缀和
链接:https://ac.nowcoder.com/acm/problem/16564来源:牛客网在大学期间,经常需要租借教室。大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。面对海量租借教室的信息,我们自然希望编程解决这个问题。我们需要处理接下来n天的借教室信息,其中第i天学校有ri个教室可供租借。共有m份订单,每份订单用三个正整数描述,分别为dj, sj, tj,表示某租借者需要从第sj天到第tj天租借教室(包括原创 2021-02-23 18:18:36 · 226 阅读 · 0 评论 -
逆序对 牛客每日一题
链接:https://ac.nowcoder.com/acm/problem/14731来源:牛客网求所有长度为n的01串中满足如下条件的二元组个数:设第i位和第j位分别位ai和aj(i<j),则ai=1,aj=0。答案对1e9+7取模。思路数据范围 n < 10^18,暴力肯定不太可能,应该考虑推公式根据题意,一个字符串所有满足题意的二元组个数为所有0位的前面的1的数量的和,或者每一个1位后面0的数量求和。这里说一下第一种对于所有可能的01串的前i-1位,1的个数有原创 2021-02-21 18:29:49 · 417 阅读 · 0 评论 -
邬澄瑶的公约数
不能先对所有底数求ans = gcd(ans,xi),再求每个xi^pi有多少个ans,这样得到的答案是错误的。例如样例输入28 42 3输出64结果自己那样做输出16就是没考虑ans = gcd(ans,xi)后xi/ans剩下的数,p次方后可以得到ans,比如 x =8,p = 2, x /4 = 2;2^2 = 4;正确的方法是,x = abc……x^p = a^p * b^p * c^p……;所以只要记录每个质因数的最小底数Pmin就可以得到an...原创 2021-02-20 00:04:25 · 181 阅读 · 0 评论 -
逆序数 cdq分治 归并排序
题目链接思路利用归并排序,每次merge()就能消除多个逆序对,把每次消除的逆序对数量加起来,就得到总共的逆序对总数#include <bits/stdc++.h>typedef long long ll;using namespace std;ll num[100020];ll num2[100020];ll ans;ll n;void read(ll &x){ char c; ll flag = 1; while((c = get.原创 2021-02-18 12:30:42 · 121 阅读 · 0 评论 -
第k小数 快排变种
题目链接手写快排,每次排序判断基准m,的位置,如果m > k ,第k小数就在[l ,m-1],如果m < k,第k小数就在[m + 1,r] ,否则m == k,num[m]就是第k小数。数据量偏大需要自己写个快读,不然可能读入数据过程就超限了代码#include <bits/stdc++.h>using namespace std;typedef long long ll;ll num[6000000];ll T,n,k;void read(ll.原创 2021-02-18 09:12:32 · 119 阅读 · 0 评论 -
装备合成 三分
题目链接牛牛有x件材料a和y件材料b,用2件材料a和3件材料{b}b可以合成一件装备,用4件材料a和1件材料b也可以合成一件装备。牛牛想要最大化合成的装备的数量,于是牛牛找来了你帮忙。三分算法学习链接转至(https://www.cnblogs.com/techflow/p/12131376.html)很多题解都是用的三分,但没有说明为什么可以用3分,也就是没有证明答案是一个凸函数,或者凹函数证明设:以2a,3b方式合成的装备有m件 以4a,b方式合成的装备有n件m取.原创 2021-02-17 19:10:32 · 300 阅读 · 0 评论