青岛oj集训10】的更多相关文章

源码地址为:https://github.com/QingdaoU/OnlineJudge 可参考的文档为:https://github.com/QingdaoU/OnlineJudgeDeploy/tree/2.0 我的虚拟机上之前没有安装任何东西,就是依靠下面命令完成搭建青岛OJ 一.安装所依赖的环境 sudo apt-get update && sudo apt-get install -y vim python-pip curl git sudo apt-get install d…
传送门 题意: 求最小的\(x\),满足\(\frac{x(x+1)}{2}\% n=0,n\leq 10^{12}\). 多组数据,\(T\leq 100\). 思路: 直接考虑模运算似乎涉及到二次剩余什么的,但比较复杂. 注意到比较特殊的就是,最后结果为\(0\),那么我们就考虑将问题转化为整除. 所以式子等价于\(n|\frac{x(x+1)}{2}\)即\(2n|x(x+1)\). 注意到\(n\)的范围,那么我们能\((O\sqrt{n})\)来枚举\(p,q\),满足\(pq=2n\…
考试的时候推出来了,但是忘了 $exgcd$ 咋求,成功爆蛋~ 这里给出一个求最小正整数解的模板: ll solve(ll A,ll B,ll C) { ll x,y,g,b,ans; gcd = exgcd(A,B,x,y); if(C%gcd!=0) return -1; x*=C/gcd,B/=gcd; if(B<0) B=-B; ans=x%B; if(ans<=0) ans+=B; return ans; } 大概就是这样. 说一下题: 可以将题目转化成求 $\frac{ans(an…
题目 分析 对于\[\sum_{i=1}^{n}\lfloor\dfrac{T-B_i}{A_i}\rfloor\] 我们考虑拆开处理,得到 \[\sum_{i=1}^{n}(\lfloor\dfrac{T}{A_i}\rfloor-\lfloor\dfrac{B_i}{A_i}\rfloor)-[T\%A_i<B_i\%A_i]\] 因为\(A_i<=1000\),那么我们可以 对于每个模数\(mo=A_i\) 设S[mo][j],记录B数组中模mo后为j的个数,并且对于S[mo]求一个前缀…
题目 给出一个长度为n的序列a[] 给出q组询问,每组询问形如\(<x,y>\),求a序列的所有区间中,数字x的出现次数与数字y的出现次数相同的区间有多少个. 分析 我们可以维护一个前缀和sum,遇到x时加1,遇到y减1. 那么对于区间[l,r],如果sum[r]-sum[l-1]=0,则这个区间合法. 我们可以用桶来求出\(<x,y>\)的合法区间个数. 于是我们\(O(N^3)\)预处理每一个\(<x,y>\): 但是这显然会超时. 因为只有有x和y时位置才是有用的…
题目描述 Description 有一个n个点A+B条边的无向连通图,有一变量x,每条边的权值都是一个关于x的简单多项式,其中有A条边的权值是k+x,另外B条边的权值是k-x,如果只保留权值形如k+x的边,那么这个图仍是一个连通图,如果只保留权值形如k-x的边,这个图也依然是一个连通图. 给出q组询问,每组询问给出x的值,问此时这个无向连通图的最小生成树权值是多少. Input 第一行四个数n,A,B和q 接下来A行,每行三个整数u,v,k,表示u和v之间有一条权值为k+x的无向边 接下来B行,…
题目 题目大意 给你\(X+Y+Z\)个三元组\((x_i,y_i,z_i)\). 然后选\(X\)个\(x_i\),选\(Y\)个\(y_i\),选\(Z\)个\(z_i\). 每个三元组只能选择其中一个. 问最大的和. 思考历程 想不到贪心-- 于是只能\(DP\)了-- \(DP\)就不用说了吧-- 正解 首先考虑\(X=0\)的情况: 按照\(z-y\)排个序,前面\(Z\)个选择\(z\),后面\(Y\)个选择\(y\). 这就是一个可撤销贪心的思路,可以看成先全部选\(y\),然后选…
前篇 Contest 6 A 两个数,第 \(i\) 轮从较大数(如果相等就是第一个)里减去 \(i\) ,问操作不能进行时两数分别为多少. 首先把大数减到和小数差不多,然后我们会发现接下来两数会轮流减,所以剩下的部分两数各减去的都是奇偶性相同的数.这样的话对两个阶段分别二分答案即可. B 已知数列 \(\{a_n\}\) 的每个数乘上权重 \(\{c_n\}(\sum c_i=1)\) 后的和(设为 \(f(a,c)\) ),求数列 \(\{b_i\}\) 乘上权重之后的和(设为 \(f(b,…
题目 有 \(X+Y+Z\) 个三元组 \((x[i],y[i],z[i])\),请你从每个三元组中挑数,并满足以下条件: 1.每个三元组中可以且仅可以选择一个数(即 \(x[i],y[i],z[i]\) 中的一个) 2.选择 \(x[i]\) 的三元组个数恰好为 \(X\) 3.选择 \(y[i]\) 的三元组个数恰好为 \(Y\) 4.选择 \(z[i]\) 的三元组个数恰好为 \(Z\) 问选出的数的和最大是多少 问选出的数的和最大是多少 数据规模 对于10%的数据满足,\(1<=X+Y+…
题目 城市中有一条长度为 \(n\) 的道路,每隔 \(1\) 的长度有一个公交车站,编号从 \(0\) 到 \(n\),学校在 \(0\) 号车站的位置.其中每个公交车站(除了 \(n\) 号车站)有两个属性 \(c_i\) 和 \(v_i\),代表从这个公交车站出发的公交车的性质.\(c_i\) 代表这个从i出发的公交车,相邻两个停靠站之间的距离.\(v_i\) 表示每坐 \(1\) 站的花费. 注意,一辆公交车出发后会向 \(n\) 号车站的方向行进.同时,一名乘客只能从起点站上车,但可以…