- 博客(269)
- 收藏
- 关注
原创 【线段树上二分】swust2020新生赛【苍天阻我寻你,此情坚贞如一】
题目题目链接思路睡醒再来代码//#pragma GCC optimize("-Ofast","-funroll-all-loops")#include<bits/stdc++.h>#define int long long#define lowbit(x) (x &(-x))#define endl '\n'#define ls x<<1#define rs x<<1|1using namespace std;const int INF=
2021-03-24 01:11:31 126
原创 【prim】牛客2021寒假训练营第六场H
题目添加链接描述代码#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<cctype>#include<ctime>#include<iostream>#include<string>#include<map>#include<queue>#include<sta
2021-03-06 17:37:45 58
原创 [前缀和+二分]D. Cleaning the Phone
题目http://codeforces.com/contest/1475/problem/D代码#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<cctype>#include<ctime>#include<iostream>#include<string>#include<map>
2021-02-01 00:42:31 353
原创 [素数筛+最大独立子集] Lightoj1356 Prime Independence
题目题目思路题目要求一个数组内有多少对数互质或者除数不为质数。可以反过来,找有多少对数的除数为质数即可。先预处理每个数的质因子个数。两个质因子个数为奇数和两个质因子个数为偶数的数都不会产生除数为质数的情况。所以可以建立一个二分图,一边的除数质因子个数为奇数,一边为偶数。如果它们除数为质数就相连,求他们的最大匹配。那么最后的答案就是n-最大匹配数代码#include<cstdio>#include<cstring>#include<cmath>#inc
2021-01-24 00:52:40 127
原创 [dinic求最大匹配]
题目hdu2063思路将最大流改成二分图最大匹配,加个源点、汇点,把所有流量调为1即可。代码#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<cctype>#include<ctime>#include<iostream>#include<string>#include<map>
2021-01-24 00:40:13 135
原创 [匈牙利算法板子] hdu 2063
题目题目链接板子#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<cctype>#include<ctime>#include<iostream>#include<string>#include<map>#include<queue>#include<stack
2021-01-23 14:02:52 91
原创 [欧拉函数] LightOJ Bi-shoe and Phi-shoe
题目题目链接输入nnn个数,找出质因子的个数大于等于这些数的数,输出他们最小值的和。思路欧拉函数是求小子本身的质因子个数,算出欧拉函数找出满足的最小值即可代码#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<cctype>#include<ctime>#include<iostream>#include
2021-01-21 23:53:25 156 1
原创 2021-01-21
题目题目链接:一个无向图,有nnn个点,mmm条边。为1到xxx的边权。即减去最大的www,加上两倍最小值。分层最短路。dis[v][0]dis[v][0]dis[v][0]表示初始状态,什么都没做dis[v][1]dis[v][1]dis[v][1]表示已经做了减的操作dis[v][2]dis[v][2]dis[v][2]表示做了加的操作dis[v][3]dis[v][3]dis[v][3]表示减加都做了答案就是min(dis[v][0],dis[v][3])min(dis[v][0],d
2021-01-21 19:00:09 93
原创 [线段树区间修改] cf D. Cleaning
题目题目链接:思路数组去的情况可以写为:a[1],a[2]−a[1],a[3]−a[2]+a[1],a[4]−a[3]+a[2]−a[1]a[1],a[2]-a[1],a[3]-a[2]+a[1],a[4]-a[3]+a[2]-a[1]a[1],a[2]−a[1],a[3]−a[2]+a[1],a[4]−a[3]+a[2]−a[1]可以发现,奇数下标在奇数位为正,偶数位为负偶数下标在奇数位为负,偶数位为正每次调换a[i]、a[i+1]a[i]、a[i+1]a[i]、a[i+1]只用修改a[i]、
2021-01-21 17:14:30 109 2
原创 [分层最短路板子] 洛谷 P4568
题目题目链接:https://www.luogu.com.cn/problem/P4568代码#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<cctype>#include<ctime>#include<iostream>#include<string>#include<map>
2021-01-19 19:01:44 75
原创 [cf] 1473 D. Program
题目给一组长为nnn的数列,输入mmm个修改l、rl、rl、r,每次计算除开l、rl、rl、r中的数,其他数的最大前缀和-最小前缀和+1题目链接:http://codeforces.com/contest/1473/problem/D思路preprepre数组记录前缀和pmax、pminpmax、pminpmax、pmin分别记录前缀最大最小umax、uminumax、uminumax、umin分别记录从i开始后缀最大最小除开l、rl、rl、r的最大值为max(pmax[l−1],pre[l−
2021-01-19 16:27:00 193
原创 [凸包面积板子]
#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<cctype>#include<ctime>#include<iostream>#include<string>#include<map>#include<queue>#include<stack>#inclu
2020-11-20 22:12:47 109
原创 [除数函数+除法分块]
题目题目思路这个大佬写的很好!大概就是枚举111~nnn的因子。因子为iii时,有⌊n/i⌋\lfloor n/i \rfloor⌊n/i⌋个数会用它做因子。代码#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<cctype>#include<ctime>#include<iostream>#inclu
2020-11-19 00:41:47 318
原创 快排板子
#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<cctype>#include<ctime>#include<iostream>#include<string>#include<map>#include<queue>#include<stack>#inclu
2020-11-16 21:30:59 204
原创 cf 1447 A Add candies
题意nnn个数分别为1、2、3....n1、2、3....n1、2、3....n,现在有一种操作,第jjj次操作能让除开被操作数的其他所有数都加上jjj。如果要最后nnn个数相等,输出需要几次操作,与每次被操作的数的下标。题目链接思路要让所有的数相等,那么让相等时所有的数都等于111到nnn的和,对于第一个数 他已经有一个111,那么就对除开它本身的所有数加上111,对第二个数,它现在是2+12+12+1,其他的数少了一个222,那么就对除开它本身的所有数加上222…以此类推,加到最后都是111到n
2020-11-16 12:23:18 260
原创 [高斯消元板子题]luogup3389
题目链接板子#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<cctype>#include<ctime>#include<iostream>#include<string>#include<map>#include<queue>#include<stack>
2020-11-06 15:41:20 134
原创 2020-11-05
题目CF1445D思路代码#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<cctype>#include<ctime>#include<iostream>#include<string>#include<map>#include<queue>#include<
2020-11-05 16:44:44 77
原创 [状压dp] poweroj 2911: 送外卖的小鸽鸽Mannix
题目题目链接:https://www.oj.swust.edu.cn/problem/show/2911一个人要从0开始给k个地方送外卖最后回到起始点 求怎么送路程最短思路先处理图,把每个点之间的距离都用dij跑出来存下。最后用状压dp,dp[i][j]dp[i][j]dp[i][j]表示用状态iii到达jjj的最小路径代码#include<cstdio>#include<cstring>#include<cmath>#include<cstdl
2020-10-29 15:32:40 140
原创 [差分] 2020 威海 H Message Bomb
题目有nnn个群,mmm个人,sss个操作,输入sss个t、x、yt、x、yt、x、yt=1t=1t=1时xxx加入群组yyyt=2t=2t=2时xxx退出群组yyyt=1t=1t=1时xxx在群组yyy发言求每个人收到的总发言数思路用setsetset来存每个人加入的组数 st[x],insert(y)st[x],insert (y)st[x],insert(y)代表xxx加入yyy组,用a[x]a[x]a[x]存xxx当前收到的发言,b[y]b[y]b[y]存yyy这个群里的发言。加入时
2020-10-29 15:18:26 98
原创 2020 ccpc威海A
题目有一座桥,桥的两边有nnn个老人,一共2n2n2n个老人,我们要把所有的老人带到对面,让他们休息xxx分钟后再回来,过桥的时间为ttt,求需要的最少时间思路设先把所有老人都对换了。这时候有两种选择,第一种是直接在现在这里选择第一个来到这里的老人背回去,需要多消耗的时间是max(x−(2∗n∗t−2∗t),0LL)max(x-(2*n*t-2*t),0LL)max(x−(2∗n∗t−2∗t),0LL)第二种是过桥到对面去背老人回来,需要多消耗的时间是max(x−2∗n∗t)+t,t)max(x
2020-10-29 14:30:54 184 1
原创 [唯一分解+分组dp] 2020ccpc威海 L
题目一个钟表有n个指针,每一个指针有t个刻度每个刻度。所有制真的刻度不能超过d,求所有指针合起来的不同方向最多有多少种。思路每个指针的不同方向种类即他们的lcmlcmlcm题意转换为:求MAX(lcm(t1,t2,t3,t4,...,tn))MAX(lcm(t_1,t_2,t_3,t_4,...,t_n))MAX(lcm(t1,t2,t3,t4,...,tn))t1+t2+t3+t4+...+tn<=bt_1+t_2+t_3+t_4+...+t_n<=bt1+t2+t3
2020-10-29 14:15:52 175
原创 cf D. Minimal Height Tree
题目题目链接:http://codeforces.com/contest/1437/problem/D思路连续上升的a[i]a[i]a[i]放到同一根节点下代码#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<cctype>#include<ctime>#include<iostream>#include
2020-10-29 00:17:20 222
原创 [dp] cf 1437C. Chef Monocarp
题目http://codeforces.com/contest/1437/problem/C思路dp[i][j]dp[i][j]dp[i][j]表示第iii分钟前拿了jjj个盘子的最小代价递推式:dp[i][j]=min(dp[i−1][j],dp[i−1][j−1]+abs(a[j]−i))dp[i][j]=min(dp[i-1][j],dp[i-1][j-1]+abs(a[j]-i))dp[i][j]=min(dp[i−1][j],dp[i−1][j−1]+abs(a[j]−i))代码#in
2020-10-28 23:55:44 164
原创 [大数分解板子] 2020ccpc 威海 D
题目应该之后会放gym的吧 大致是求n(n<=1e18)的质因子的积代码#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<cctype>#include<ctime>#include<iostream>#include<string>#include<map>#include
2020-10-28 23:35:24 176
原创 [网络流求最大流板子]
代码#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<cctype>#include<ctime>#include<iostream>#include<string>#include<map>#include<queue>#include<stack>#in
2020-10-17 01:02:18 122
原创 [思维]cf 1417D
题目思路先把所有的东西都转移到位置1(i=1i=1i=1)上,再由1分发给每一位代码#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<cctype>#include<ctime>#include<iostream>#include<string>#include<map>#inc
2020-10-17 00:40:38 79
原创 [ST表板子]luogu P3865
题目题目链接:https://www.luogu.com.cn/problem/P3865代码#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<cctype>#include<ctime>#include<iostream>#include<string>#include<map>
2020-10-16 17:15:37 67
原创 [并查集板子] luogu P3367 【模板】并查集
题目题目链接:https://www.luogu.com.cn/problem/P5520代码#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<cctype>#include<ctime>#include<iostream>#include<string>#include<map>
2020-10-16 00:59:07 92
原创 [组合数] luogu 5520
题目题目链接:https://www.luogu.com.cn/problem/P5520思路可以把第一个当成单独的树,从第二个树开始每棵树斗鱼一个空位置绑定。那么现在还剩下n-m+1个格子。因为最后的答案是有序的 所以求得是排列数,即An−m+1mA_{n-m+1}^mAn−m+1m代码#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<
2020-10-16 00:46:47 93
原创 [组合数] luogu P2822 组合数问题
题目题目链接:https://www.luogu.com.cn/problem/P2822v思路根据公式Cji=Cj−1i+Cj−1i−1C_j^i=C_{j-1}^i+C_{j-1}^{i-1}Cji=Cj−1i+Cj−1i−1,C00=C11=C10=1C_0^0=C_1^1=C_1^0=1C00=C11=C10=1可以递推求出组合数 预处理存下n,mn,mn,m对应答案代码#include<cstdio>#include<cstring>#incl
2020-10-16 00:00:03 275
原创 [贪心] cf1400 B. RPG Protagonist
题目题目链接:http://codeforces.com/contest/1400/problem/B思路枚举s、ws、ws、w中小的数即可代码#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<cctype>#include<ctime>#include<iostream>#include<stri
2020-10-15 09:33:37 159
原创 [dij] cf1430D
题目思路离散化一下 对x\y相等的点连边代码#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<cctype>#include<ctime>#include<iostream>#include<string>#include<map>#include<queue>#i
2020-10-15 00:29:15 159
原创 [背包dp+容斥定理] luogu 1450 硬币购物
题目题目链接:https://www.luogu.com.cn/problem/P1450思路如果只询问次数很少 可以完全背包不过这个询问次数很多要超时那么就预处理1—1e51—1e51—1e5的背包的值每次带了d[i]枚硬币 那么d[i]+1之后的硬币就不行s−c[i]∗(d[i]+1)s-c[i]*(d[i]+1)s−c[i]∗(d[i]+1)就是第i个硬币能取的最大钱钱dp[s−c[i]∗(d[i]+1)]dp[s-c[i]*(d[i]+1)]dp[s−c[i]∗(d[i]+1)]就
2020-10-14 23:28:20 125 1
原创 [错排] luogu 4071
题目思路错排:给定n元素集合X,它的每一个元素都有一个特定的位置,而现在要求求出集合X的排列中没有一个元素在它指定位置上的排列的数目.递推公式:D1=0 D2=1D_1=0 \ D_2=1D1=0 D2=1Di=(i−1)∗(Di−1−Di−2)D_i=(i-1)*(D_{i-1}-D_{i-2})Di=(i−1)∗(Di−1−Di−2)这道题要保证mmm个数等于它的下标,即n−mn-mn−m个数不等于下标 答案为Cmn∗D(n−m)C_m^n*D(n-m)
2020-10-14 22:19:54 86
原创 luogu 5560
题目题目大意:一棵树有n个结点,每个点的值分别是i2−1i^2-1i2−1,每条边的权值是gcd(i2−1,j2−1)gcd(i^2-1,j^2-1)gcd(i2−1,j2−1) 求树边总权值的最小值题目链接:https://www.luogu.com.cn/problem/P5560思路暴力打表可以发现 只有4 10需要特判 其他都是n−1n-1n−1代码#include<cstdio>#include<cstring>#include<cmath>
2020-09-04 11:46:56 799
原创 [欧拉函数] 仪仗队 2158
题目题目链接:https://www.luogu.com.cn/problem/P2158思路gcd(x,y)=1的就计入考虑 我们可以寻找gcd(x,y)!=1的 用f[i]记录n-1*n-1里面有多少个公约数为i的数 再减去f[i *k] (k>=2)的值 思想与欧拉定理一致 最后加上x=0y=0的两种情况代码#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib&
2020-09-03 00:50:59 105
原创 [excrt] luogu 4777
题目题目链接:https://www.luogu.com.cn/problem/P4777代码#include<bits/stdc++.h>#define int long longusing namespace std;const int INF = 0x3f3f3f3f;int a[100010],b[100010];int exgcd(int a,int b,int &x,int &y){ if(b==0){ x=1; y=0; return
2020-08-26 14:50:59 290
原创 [中国剩余定理+快速乘]
题目题目连接:https://www.luogu.com.cn/problem/solution/P3868思路模板题注意快速乘不是提速的 而是减小数据范围的,因为这道题最大的时候会达到10^32 所以要用快速乘代码#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<cctype>#include<ctime>#in
2020-08-24 00:45:21 140 1
原创 [cf] 1401 D.Maximum Distributed Tree
题目题目链接:https://codeforces.ml/contest/1401/problem/D思路计算每个边的经过次数,然后把最大的p分配给次数最多的即可。不过要讨论 m>n-1 的时候还有如果要sort千万千万千万别取模代码#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<cctype>#incl
2020-08-23 01:13:28 391
原创 [逆元] luogu 4942
题目题目链接:https://www.luogu.com.cn/problem/P4942思路这道题最后的ans的形式为ans=l∗10a+(l−1)∗10b+.....+r∗100ans=l*10^a+(l-1)*10^b+.....+r*10^0ans=l∗10a+(l−1)∗10b+.....+r∗100,10%1=910\%1=910%1=9因此变为ans=l+l−1+l−2+...+rans=l+l-1+l-2+...+rans=l+l−1+l−2+...+r用等差数列即可代码#inc
2020-08-21 17:29:47 259
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人