每日做题
文章平均质量分 63
ACM
呃呃...
这个作者很懒,什么都没留下…
展开
-
HDU 7075 Unfair contest
题目大意:有两个长度为n−1n-1n−1的序列{a},{b}\{a\},\{b\}{a},{b},决定ana_nan与bnb_nbn,使得两个序列去掉sss个最高分以及ttt个最高分之后剩下的序列总和suma>sumbsuma>sumbsuma>sumb,输出an−bna_n-b_nan−bn的最小差值解题思路:先将两个序列从小到大排序,然后可以发现序列的[t+1,n−s][t+1,n-s][t+1,n−s]的贡献并不会因为插入一个值而受影响,总和分别设为:sasasa和s原创 2021-08-19 11:04:14 · 102 阅读 · 0 评论 -
2021杭电9 G
题目大意:对一个双端队列一共有四种操作:从左边添加一个元素从右边添加一个元素将队列中元素为xxx的从队列中直接删除询问队列中的中位数是什么,中位数位置是⌈m+12⌉\left \lceil \frac{m+1}{2} \right \rceil⌈2m+1⌉询问q≤1e7q\le 1e7q≤1e7解题思路:因为每添加一个元素或者删除一个元素,中位数的位置仅仅只是向左移或右移一位,所以可以用链表来动态维护中位数的位置对于删除操作,可以先将链表上的该位置标记,但不删除,直到中位数会经过该原创 2021-08-19 08:54:15 · 43 阅读 · 0 评论 -
2021牛客暑期多校训练营9 G (树上概率dp 对于存在不合法的情况dp启示)
题目大意:有一棵树,树上每个点都有一个球,每秒钟每个球都会向其父亲结点移动。除了跟结点之外,其余每个结点有p的概率为存储点,当球移到存储点则该球从树中删除。另外同一秒钟一个点上不能有一个球以上,即使是存储点也一样,如果出现则整棵树不合法解题思路:首先能够知道的是,如果整颗树是合法的,那么每个结点的子结点最多只有一个不是存储点那么设置score[u]score[u]score[u]为当前结点能够得到的分数,则状态转移为:score[u]=pq∗∑vuson(score[v]+1)score[u]=p原创 2021-08-15 16:03:26 · 189 阅读 · 4 评论 -
[AH2017/HNOI2017]大佬 暴力BFS+双指针
题目大意:洛谷解题思路:五种操作中只有一种与自己的自信值有关,而其他四种的操作在第i天操作或第j天操作都一样(假设只操作依次),即跟天数无关所以可以先通过dpdpdp来求出自己最大的存活天数,再在天数上面做操作设dp[i][j]dp[i][j]dp[i][j]为第iii天jjj自信的最大存活天数,则可以通过O(n2)O(n^2)O(n2)即可求醉最大存活天数问题就转换为:给你n天,能否怼死大佬而怼大佬只与天数和嘲讽值有关,那么先直接BFS+Map判重枚举出所有状态按照嘲讽值从大到小排序就行原创 2021-08-15 11:31:37 · 43 阅读 · 0 评论 -
NOI2009 诗人小G 决策单调性优化
题目大意:洛谷解题思路:设dp[i]为前i个句子产生的最小代价,很容易就能写出转移方程式:dpi=min{dpj+∣si−sj−1−L∣p},si=i+∑j=1ilenj,j∈[0,i−1]dp_i=min\{dp_j+|s_i-s_j-1-L|^p\} ,s_i=i+\sum_{j=1}^{i}len_j,j\in[0,i-1]dpi=min{dpj+∣si−sj−1−L∣p},si=i+∑j=1ilenj,j∈[0,i−1]然后暴力打表发现转移具有单调性,接下来方法同[POI20原创 2021-08-15 11:11:31 · 67 阅读 · 0 评论 -
[IOI2000]邮局 决策单调优化dp
题目大意:在一维坐标轴上,有VVV个村庄,在坐标轴上选择放置PPP个邮局,计算每个村庄和最近的邮局之间所有距离的最小可能总和。1≤P≤300,P≤V≤3000,1≤村庄位置≤100001 \le P \le 300, P \le V \le 3000, 1 \le 村庄位置 \le 100001≤P≤300,P≤V≤3000,1≤村庄位置≤10000解题思路:设dp[i][j]dp[i][j]dp[i][j]表示前iii个村庄放jjj个邮局的最小距离总和,w(i,j)w(i,j)w(i,j)表示村原创 2021-08-15 10:20:59 · 77 阅读 · 0 评论 -
[POI2011]Lightning Conductor 决策优化
题目大意:给定一个长度为nnn的序列{an}\{a_n\}{an},对于每个i∈[1,n]i \in [1,n]i∈[1,n],求出一个最小的非负整数ppp,是的 ∀j∈[1,n]\forall j \in [1,n]∀j∈[1,n],都有aj≤ai+p−∣i−j∣a_j \le a_i+p-\sqrt{|i-j|}aj≤ai+p−∣i−j∣1≤n≤5e5,0≤ai≤1e91 \le n \le 5e5, 0 \le a_i \le 1e91≤n≤5e5,0≤ai≤1e9解题思路:式子可原创 2021-08-15 10:02:09 · 128 阅读 · 0 评论 -
P6302 [NOI2019] 回家路线 加强版(斜率优化dp)
题目大意:给定nnn个点,从111走到nnn;其中有mmm条路径,第i条路径从xix_ixi到yiy_iyi,时间从pip_ipi到qiq_iqi,每次等车t的时间会增加At2+Bt+CAt^2+Bt+CAt2+Bt+C的花费,最后花费加上到达时间即为最终花费,使最终花费最小。解题思路:可能可以实现但太麻烦了的想法:设dp[i][j]dp[i][j]dp[i][j]为到达第i个点j时刻的最小花费,然后dpdpdp方程自然而然可以通过相连的边来转移,但是因为这样子空间时间都超了,时间可以用斜原创 2021-08-08 15:47:28 · 108 阅读 · 0 评论 -
2021牛客暑期多校训练营5 B(思维)
题目大意:有nnn个盒子,每个盒子有个球,球的颜色为白色或者黑色,可以花费wiw_iwi来知晓第iii个盒子里球的颜色,还能花费ccc来知晓剩下未开的盒子有多少个黑球,能够知晓所有球最小期望花费.解题思路:有两种策略,要么直接全部打开,要么慢慢猜猜的策略: 将wiw_iwi升序排序,先花ccc的代价,剩下的就相当于一个随机01序列从前往后开,开到一个后缀全是同色的为止(因为已经知晓有多少个黑球,每次猜测之后,可根据剩余未知晓球数来判断是否后缀全是同色)对于第i个位置,花费wiw_iwi的概原创 2021-08-05 16:36:13 · 45 阅读 · 0 评论 -
2021牛客暑期多校训练营5 D(简单DP)
题目大意:有两个字符串(len<=5000len<=5000len<=5000),询问有多少对子序列满足下列条件:长度相同∃i∈{1,2,...,∣a∣},Aai<Bbi,∀j∈{1,2,...,i−1},Aaj=Bbj\exist i \in \{1,2,...,|a|\}, A_{ai}<B_{bi}, \forall j \in \{1,2,...,i-1\},A_{aj}=B_{bj}∃i∈{1,2,...,∣a∣},Aai<Bbi,∀j∈{1,2,.原创 2021-08-05 14:55:56 · 74 阅读 · 0 评论 -
2021牛客暑期多校训练营5 J(二分图最大权匹配KM)
题目大意:n(n≤300)n(n\le300)n(n≤300)个点在三维坐标系,获取某个点的代价为原点到该点的距离平方,未被获取的点每经过ttt秒,纵坐标会增加t∗vit*v_it∗vi解题思路:nnn才300,直接建立二分图,一边是时间(0~n-1),一边是点,边权即为代价,跑KM即可AC代码:#include <bits/stdc++.h>#define ft first#define sd second#define IOS ios::sync_with_stdio(原创 2021-08-05 13:47:11 · 120 阅读 · 0 评论 -
洛谷P4852单调队列优化动态规划
题目大意:解题思路:题目所要求的是欧气之和最大,则等价于欧气损失最小,而欧气损失当且仅当在连抽时会有损失,所以我们设一个bbb数组,b[i]=∑ii+c−1a[i]b[i]=\sum_{i}^{i+c-1}a[i]b[i]=∑ii+c−1a[i],即代表如果连抽的开头选iii,那么损失就为b[i]b[i]b[i]再观察题目条件,要求不能连续单抽d次,所以每相邻的连抽间隔(即前一次的最后与后一次的开头)不能超过d,而且每次连抽之间不能互相影响题目通过上述条件就转换为:选择 nnn 个 bib_i原创 2021-08-05 10:54:31 · 65 阅读 · 0 评论 -
Codeforces Round #722 (Div. 1)_C(贪心+树状数组)
Codeforces Round #722 (Div. 1)题目大意:有两棵根节点都为1的树tree1和tree2,询问最多有几个点满足以下条件:这几个点在tree1的1~x的一条链上任意两个点在tree2都不互为公共祖先解题思路:题目的输入保证了某一结点u的祖先的编号一定比u小所以我们对一颗树dfs,1~x时出现有x的祖先y所覆盖的子树与x的覆盖子树出现冲突时,那么显然选取x覆盖的子树(小)比选取y覆盖的子树(大)更加优秀所以思路非常显然了,对tree2求出每个节点覆盖的区间(dfs原创 2021-06-04 13:48:07 · 112 阅读 · 0 评论 -
2014ACM-ICPC,Asia Mudanjiang Regional Contest_G(扩展欧几里得+计算几何)
2014ACM-ICPC,Asia Mudanjiang Regional Contest_G题目大意:给出一个圆和两个整点,询问有多少个整点满足下列条件:在园内,且三个整点构成三角形的面积的两倍为给定整数S解题思路:这道题其实非常容易能通过叉乘转换成两条直线有多少个整点处在园内的问题。向量v1 = (x2-x1,y2-y1),v2 = (x-x1,y-y1) |v1 叉乘 v2| = |s||(x2 - x1) * (y - y1) - (y2 - y1) * (x - x1)|原创 2021-06-01 20:12:21 · 92 阅读 · 0 评论 -
Codeforces Round #722 (Div. 1)_B(线性dp)
Codeforces Round #722 (Div. 1)_B题目大意:2n2n2n个在xxx轴,第iii个点所在的位置为x=ix=ix=i。从2n2n2n个点选出nnn个区间(每个点都要被选),如果满足任意两个区间满足以下任意一种情况:大的区间完全包含小区间两个区间有相同长度则说明是好的区间序列,问:有多少个好的区间序列,答案对998244353取模。解题思路:设dp[i]dp[i]dp[i],为2i2i2i个点的总方案。引理:定义x为匹配1的点。当p(x<p<=2n)原创 2021-05-29 20:07:40 · 87 阅读 · 0 评论 -
2018_icpc_jiaozuo_H(后缀数组+单调栈)
H. Can You Solve the Harder Problem?题目大意:长度为n(≤2e5\le 2e5≤2e5)的序列,求每个不同字串的最大值的总和。解题思路:不同子串其实非常容易联想到后缀数组(可是我没想到…)暴力遍历后缀:到这里暴力遍历每个后缀《可 以》得到答案,注意,对于每个后缀,固定了左端点,右端点要从它与上一名(后缀数组排序的名次)的最长公共前缀的下一个位置开始遍历,这样才不会重复计算但是这样子时间复杂度最坏为:O(n2)O(n^2)O(n2)仍然会超时,所以考虑怎原创 2021-05-26 12:19:11 · 107 阅读 · 0 评论 -
2018_icpc_jiaozuo_B(思维)
B. Ultraman vs. Aodzilla and Bodzilla题目大意:两只怪兽A和B,血量分别为hpa,hpb,攻击力分别为atka,atkb。英雄每一轮只能对一只怪兽进行攻击,第i次攻击伤害为i。怪兽每一轮比英雄先攻击,伤害为存活怪兽伤害总和。求出英雄最小受到的伤害,并且输出英雄攻击字典序。解题思路:非常显而易见的一个思路就是肯定要先把其中一只怪兽打死,然后集中攻击剩下的怪兽那么我们一只打A再打B,或者一直打B再打A不就行了 (这样子铁错了) 1 5 5 5 5正确原创 2021-05-25 20:57:49 · 150 阅读 · 1 评论 -
2018ICPC-Jiaozuo D(计算几何)
D. Keiichi Tsuchiya the Drift King题目大意:给出宽为a,长为b的车,有一半径为r,角度为d的拐弯弯道,求出最小宽度且车的右上角始终为车与圆的相切点。解题思路:临界情况如下图,此时θ=arctan(b/(a+r))\theta=arctan(b/(a+r))θ=arctan(b/(a+r)),所以当所需转过的角度大于θ\thetaθ时,答案始终为:sqrt((a+r)2+b2)−rsqrt((a+r)^2+b^2)-rsqrt((a+r)2+b2)−r当原创 2021-05-25 11:27:57 · 110 阅读 · 0 评论 -
第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(上海)
这里写目录标题I Sky Garden题目大意:解题思路:AC代码:I Sky Garden题目大意:nnn个以原点为圆心的同心圆,mmm条直线经过原点,平分同心圆,直线与直线/圆之间有交点,求这些交点之间最短距离的总和解题思路:因为数据量很小,所以可以考虑枚举两个同心圆之间对于答案的贡献那么现在问题就来到了如何处理两个同心圆关于mmm条直线之间交点的距离和这里以n=2n=2n=2,m=3m=3m=3来举例首先每个圆上的点与OOO相连之间的距离为:2∗m∗(r1+r2)2 * m * (r原创 2020-12-15 23:39:37 · 778 阅读 · 0 评论 -
Bzoj2693. jzptab (莫比乌斯反演)
题目大意:题目链接(来源)解题思路∑i=1n∑j=1mlcm(i,j)\sum_{i=1}^n\sum_{j=1}^mlcm(i,j)∑i=1n∑j=1mlcm(i,j)=∑i=1n∑j=1m∑d=1nijd[gcd(i,j)==d]=\sum_{i=1}^n\sum_{j=1}^m\sum_{d=1}^n\frac {ij}{d}[gcd(i,j)==d]=∑i=1n∑j=1m∑d=1ndij[gcd(i,j)==d]=∑d=1n∑i=1m∑j=1nijd[gcd(i,j)==d原创 2020-12-09 11:02:24 · 90 阅读 · 0 评论 -
BZOJ 3601 一个人的数论 (莫比乌斯反演+伯努利数)
题目大意:(来源)解题思路:∑i=1n[gcd(i,n)==1]∗id\sum_{i=1}^{n}[gcd(i,n)==1]*i^d∑i=1n[gcd(i,n)==1]∗id=∑i=1nε(gcd(i,n))∗id=\sum_{i=1}^n\varepsilon (gcd(i,n))*i^d=∑i=1nε(gcd(i,n))∗id=∑i=1nid∑g∣i,g∣nμ(g)=\sum_{i=1}^ni^d\sum_{g|i,g|n}\mu(g)=∑i=1nid∑g∣i,g∣nμ(g)=∑g原创 2020-12-07 17:44:43 · 85 阅读 · 0 评论 -
Bzoj 2813 奇妙的Fibonacci (线性筛)
题目大意:题目链接(来源)解题思路:在做这道题之前,首先要知道Fgcd(i,j)=gcd(Fi,Fj)(j>i)(0)F_{gcd(i,j)}=gcd(F_i,F_j)(j>i)(0)Fgcd(i,j)=gcd(Fi,Fj)(j>i)(0)证明如下:先证明Fn=Fk∗Fn−k+1+Fn−k(1)F_n=F_k*F_{n-k+1}+F_{n-k}(1)Fn=Fk∗Fn−k+1+Fn−k(1) Fn=Fn−1+Fn−2F_n=F_{n-1}+F_{n-2}Fn原创 2020-12-07 16:48:20 · 137 阅读 · 4 评论 -
Bzoj 2440. [中山市选2011]完全平方数
题目大意:题目链接给定kkk,找寻一个集合MMM中第kkk个数是什么,该集合不含完全平方数(不考虑1)以及其倍数解题思路:将NNN以内每个质数都列举出来集合为PPP根据容斥公式:设AiA_iAi代表第i个质数pip_ipi,pi2p_i^2pi2的一切与正整数乘积的集合∣A1∩A2∩...∩Am∣|A_1\cap A_2 \cap ... \cap A_m|∣A1∩A2∩...∩Am∣就代表这些质数所表示的平方的乘积的集合的个数所以集合∣M∣=N−∣A1∩A2∩...∩Am∣|原创 2020-11-29 16:48:30 · 87 阅读 · 0 评论 -
Bzoj 3529. [Sdoi2014]数表(莫比乌斯反演)
题目大意:题目链接有一张 n×m 的数表,其第 i 行第 j 列(1 <= i <= n, 1 <= j <= m)的数值为能同时整除 i 和 j 的所有自然数之和。给定 a , 计算数表中不大于 a 的数之和。多组询问题目思路:写题时看的是这篇博客:BZOJ 3529 SDOI2014 数表 莫比乌斯反演+树状数组令F[i]F[i]F[i]为iii的约数和,num[i]num[i]num[i]为最大公约数为iii的个数如果不看aaa的限制,其实这道题,计算的仅仅是an原创 2020-11-29 15:07:27 · 92 阅读 · 0 评论 -
Bzoj 2820. YY的GCD (莫比乌斯反演)
题目大意:题目链接给定N,M问有多少对gcd(i,j)gcd(i,j)gcd(i,j)为质数1≤i≤N,1≤j≤M1\le i \le N,1 \le j \le M1≤i≤N,1≤j≤M解题思路:通过枚举质数p,来找有多少对使gcd(i,j)==pgcd(i,j)==pgcd(i,j)==p由P2522 [HAOI2011]Problem b,式子可变换为∑p∑d=1μ(d)⌊npd⌋⌊mpd⌋\sum_p\sum_{d=1}\mu(d)\left \lfloor \frac n{pd} \ri原创 2020-11-29 13:54:49 · 60 阅读 · 0 评论 -
P2522 [HAOI2011]Problem b (莫比乌斯反演)
题目大意:题目链接nnn个询问,给定a,b,c,d,ka,b,c,d,ka,b,c,d,k,询问∑x=ab∑x=cd[gcd(x,y)==k]\sum_{x=a}^{b}\sum_{x=c}^{d}[gcd(x,y)==k]∑x=ab∑x=cd[gcd(x,y)==k]解题思路:∑x=ab∑x=cd[gcd(x,y)==k]=∑x=1b∑x=1d[gcd(x,y)==k]−∑x=1a−1∑x=1d[gcd(x,y)==k]−∑x=1b∑x=1d−1[gcd(x,y)==k]+∑x=1a−1∑x=原创 2020-11-29 13:23:39 · 86 阅读 · 0 评论 -
P2261 [CQOI2007]余数求和 (数论分块)
题目大意:题目链接对给定的n和k,求G(n,k)=∑i=1nk mod iG(n,k)=\sum_{i=1}^{n}k\ mod \ iG(n,k)=∑i=1nk mod i解题思路:数论分块模板题式子转换为:G(n,k)=nk−∑i=1n⌊ki⌋∗iG(n,k)=nk-\sum_{i=1}^{n}\left \lfloor \frac{k}{i} \right \rfloor * iG(n,k)=nk−∑i=1n⌊ik⌋∗iAC代码:#inclu原创 2020-11-29 12:42:16 · 130 阅读 · 0 评论 -
AtCoder Grand Contest 001
A BBQ Easy题目大意:史努克在参加一个BBQ派对, 他要准备N组食物, 他有2N的食材, 需要两两组成一个食物, 食物的价值是两食材中较小的那个。 问最大总价值是多少解题思路:将其从小到大排序之后,计算奇数位置的和即可AC代码:#include <bits/stdc++.h>using namespace std;const int maxn = 1e3 + 10;int a[maxn];int n;int main() { cin >> n;原创 2020-11-25 22:33:47 · 130 阅读 · 0 评论 -
F. Escape Through Leaf 李超线段树+线段树合并
题目大意:(来源:洛谷)解题思路很容易能写出dp方程dp[u]=min(dp[v]+a[u]∗b[v])dp[u] = min(dp[v] + a[u]*b[v])dp[u]=min(dp[v]+a[u]∗b[v])可以把b[v]当成直线的k,dp[v]当成b,那么其实就是多条直线,找值最小的那条直线进行赋值对于这道题有个很优秀的数据结构:李超线段树(涨知识了)但是还有一点需要添加的是,因为只能从当前子树中找,所以要合并线段树(又涨知识了)哦,对了还顺便学了动态开点线段树AC代码:#in原创 2020-11-06 18:28:27 · 426 阅读 · 0 评论 -
45届ICPC模拟赛 E Eat Walnuts(区间dp)
题意:n个数,每次去掉一个数的代价,是该数前后与其之和询问最后剩余两数的最小代价之和解题思路:一开始就想到是区间dp了,但是脑残没有枚举中间状态另外dp[i][j]应该是保留i,j端点的[i,j]区间的最小值,而不应该仅仅代表是[i,j]区间的最小值有了定义dp方程就很显然了dp[i][j]=min(dp[i][k]+dp[k][j]+(a[i]+a[k]+a[j])*(a[i]+a[k]+a[j]))AC代码:#include <bits/stdc++.h>#define原创 2020-11-01 11:17:24 · 114 阅读 · 0 评论 -
10.28 CF464 C Substitutes in Number(dp)
题意:一个只含有数字的字符串n次操作,每种操作将其中一种数字转换一个只含有数字的字符串(可以为空)经过n此操作,将这个字符串转换为整数对1e9+7取模解题思路:这道题做法很精妙呀首先观察题意,可以发现它只包含数字字符,而数字字符只有十个,所以很有可能跟这个有关对每种数字,考虑其能贡献的位数与价值,初始所有数字其价值就为本身,位数是10为什么是10呢?res = 0;res *= 位数(初始情况为10,对于把一个字符串转换为数字的基本方法)res += 价值然后要从后往前考虑操作方案原创 2020-10-28 23:31:03 · 118 阅读 · 0 评论 -
10.28 hdu1828 Picture(扫描线求周长)
题意:求所有矩形重叠之后的并周长解题思路:扫描线模板题(但我还是wa了好多发)我的思路是横着扫一遍,竖着扫一遍即可注意:对边排序时,y坐标相同,入线排在出线的前面 因为如果两个矩形的出线和入线重合,如果先出线后入线,会导致多算(因为这条入线本该被立即消掉)(我就是因为这个甚至怀疑模板问题…)AC代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long原创 2020-10-28 23:01:34 · 81 阅读 · 0 评论 -
[JOISC 2014 Day4] 两个人的星座(极角排序)
[JOISC 2014 Day4] 两个人的星座题意:平面上有n(6 <= n <= 3000)个点,有三种颜色,求不相交的三色三角形对数。解题思路:如果两个三角形相交或者内含,则一定不存在内公切线枚举每一个点为原点O,以该点建立极坐标系,并从小到大排序,并统计在该直线上方以及下方的各种点的个数再循环取每个点P为边界(斜率从小到大),公切线上就有两个点O, P,然后分别枚举在内公切线上方以及下方的三角形,利用乘法原理因为同一对三角形,同一条公切线会枚举两次,一对不相交的三角形存在两原创 2021-02-05 11:10:06 · 304 阅读 · 0 评论 -
ACM-做题状况
日拱一卒原创 2020-10-19 22:47:40 · 236 阅读 · 0 评论 -
10.26 Bzoj1818 [Cqoi2010]内部白点(树状数组+扫描线)
题意无限大正方形网格里有n个黑色的顶点,所有其他顶点都是白色的(网格的顶点即坐标为整数的点,又称整点)。每秒钟,所有内部白点同时变黑,直到不存在内部白点为止。你的任务是统计最后网格中的黑点个数。 内部白点的定义:一个白色的整点P(x,y)是内部白点当且仅当P在水平线的左边和右边各至少有一个黑点(即存在x1 < x < x2使得(x1,y)和(x2,y)都是黑点),且在竖直线的上边和下边各至少有一个黑点(即存在y1 < y < y2使得(x,y1)和(x,y2)都是黑点)。解题思路原创 2020-10-26 19:48:37 · 103 阅读 · 0 评论 -
10.25 Codeforces Round #679 (Div. 2) C. Perform Easily (双指针)
题意:有一个大小为6的数组a以及一个大小为n的数组b,b中任意一个元素与a中所有元素差值个数为6个,询问:b中每个元素取一个差值,使差值最大值-差值最小值的值最小注:∀i,j,bj>ai\forall i, j,bj > ai∀i,j,bj>ai解题思路:将所有差值排序,利用双指针,满足区间种类数为n个即统计答案AC代码#include <bits/stdc++.h>#define inf 0x3f3f3f3fusing namespace std;const原创 2020-10-26 20:04:07 · 242 阅读 · 0 评论 -
10.24 2020ICPC·小米 网络选拔赛热身赛 A
10.24 2020ICPC·小米 网络选拔赛热身赛 A题意:询问子序列有n个AB,m个BA,问这样的序列有多少种?解题思路:(我队友写的,我加些自己的理解)AC代码:#include <bits/stdc++.h>#define endl '\n'#define IOS std::ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)#define FILE freopen(".//data_generator//in.txt","r原创 2020-10-26 20:08:12 · 114 阅读 · 0 评论 -
10.23 Bzoj 4568. [Scoi2016]幸运数字 (树上线性基+倍增)
10.23 Bzoj 4568. [Scoi2016]幸运数字题意:树上每个结点都有值,询问两点之间路径上的点,取任意点,使其异或和是最大的在这条路径上所有的异或和解题思路:树上线性基,利用倍增来实现注意:c[i][j]代表i节点上的2^(j - 1)路径上的线性基,因为这是节点上的倍增,而不是以边为递增AC代码:#include <bits/stdc++.h>using namespace std;const int maxn = 2e4 + 10;const int m原创 2020-10-26 20:07:32 · 116 阅读 · 0 评论 -
10.22Bzoj4361 Isn(离散+树状数组迭代+容斥)
Bzoj4361 Isn题意:给出一个长度为n的序列A(A1,A2…AN)。如果序列A不是非降的,你必须从中删去一个数,这一操作,直到A非降为止。求有多少种不同的操作方案,答案模10^9+7。注意呀,是到非降即停,而不是求有多少种非降的序列解题思路可以发现非常类似CF597C的这道题,区别在于,CF这道题是求严格增与多少种序列我们可以把Bzoj这题往CF上靠,只要排序之后,然后记录编号,再重新赋值,根据顺序对位置为编号重新赋值,既实现了离散化,又转换了问题,求变成严格增的方案 for原创 2020-10-26 20:14:22 · 106 阅读 · 0 评论 -
10.21 Bzoj 2819 Nim (树链剖分)
Bzoj 2819 Nim题意:一棵大小为n(<=500000)的树,每个结点都有一个值,m次操作,1.询问u到v结点最短路上节点的异或值,如果不为0,输出Yes,否在输出No;2。更新某个节点的值解题思路:树上对于点的多次修改+链的多次询问1.可以直接用树剖来处理,因为树剖就是处理链上问题2.可以用dfs序,求树状数组(可是我不会dfs序…)AC代码:#include <bits/stdc++.h>#define endl '\n'#define IOS std::i原创 2020-10-26 20:12:49 · 146 阅读 · 0 评论