- 博客(144)
- 资源 (1)
- 收藏
- 关注
原创 牛客假日团队赛8 Telephone Lines
题目的大意就是从1到n的路选择k条将权值设置为0,然后找出最大的权值为花费的价值二分枚举+ 最短路ac代码如下#include <bits/stdc++.h> typedef long long ll;typedef long long ld; using namespace std; const ll maxn = 1e5 + 7;...
2019-08-02 00:40:05
294
原创 ACM-ICPC 2018 南京赛区网络预赛 L. Magical Girl Haze(分层最短路)
参考大佬博客 :https://blog.youkuaiyun.com/godjing007/article/details/97683174题意大致如下 给你一个图你可以将k条边的权值变成0,求最短路ac代码如下#include <bits/stdc++.h> typedef long long ll;typedef long long ld; using namespa...
2019-08-01 23:58:50
222
原创 最小支配集
最小支配集,最大独立集,最小点覆盖参考博客https://www.cnblogs.com/Ash-ly/p/5775934.html最小支配集:选出一些点让这些点与剩下的点都有边且选出的点最少首先我们先深度优先搜素一下将所有点标记一下顺序然后我们将点的父亲标记记录一下最后反向贪心选择点,如果这个点没有被标记,我们就将他父亲加进点集里面标记这个点 ,父节点,父节点的父节点(至于为什么反...
2019-08-01 18:44:32
3121
1
原创 51nod 1202 子序列个数
题目链接https://www.51nod.com/Challenge/Problem.html#!#problemId=1202思路:我们一个串的子序列个数 如果不考虑重复 显而易得是2的n次方(包含空集)那么我们的dp递推公式就很好推了当这个数字原来没有出现的时候 dp[i] = dp[i - 1] * 2;当这个原来出现的时候我门序要减去多加的部分就是原来以这个数字结尾...
2019-06-03 20:34:07
187
原创 牛客 虚无的后缀
题目链接https://ac.nowcoder.com/acm/contest/911/H很可爱的一道题思路:先把所有的数都算上,然后减去n - k个数思路很简单,但是实现的时候总是容易进入误区代码如下#include <bits/stdc++.h>#define gcd __gcd#define endl '\n'typedef long long ll...
2019-06-03 19:51:46
194
原创 51nod 1021 石子归并
题目链接https://www.51nod.com/Challenge/Problem.html#!#problemId=1021这道题是一道经典的区间dp题,我们用dp[i][j]表示i到j的区间最小合并然后地推公式dp[j][i] = min(dp[j][i],dp[j][k] + dp[k + 1][i] + sum[i] - sum[j - 1]);代码如下#includ...
2019-06-02 00:06:23
160
原创 51nod 2487 小b和环
题目链接:https://www.51nod.com/Challenge/Problem.html#!#problemId=2487公式推一下,233分为两个dp一个是选a[1]不选a[n]和a[2];另外一个是不选a[1],注意特判n == 1的情况代码如下#include <bits/stdc++.h>#define endl '\n'typed...
2019-06-01 19:52:43
238
原创 扫描线
扫描线是一种用来处理矩形相交的面积问题的算法渐近时间复杂度约为O(nlogn) O(nlogn)O(nlogn)参考博客:https://blog.youkuaiyun.com/niiick/article/details/81985889练习题目(POJ - 1151 Atlantis)题目链接:http://poj.org/problem?id=1151扫描线能将一个二维的转成一维...
2019-05-04 01:04:23
148
原创 区间中位数(有序表or树状数组)
题目链接:http://47.93.252.151/problem.php?id=1157有序表直接删除第一个数输出中间就行树状数组维护的是一个和加上一个二分(多看书 lydnb 感谢lyd给我灵感2333)有序表代码:#include <bits/stdc++.h> typedef int ll; using namespace std; cons...
2019-05-03 23:24:09
2414
1
原创 一个简单的整数问题2
题目链接:https://www.acwing.com/problem/content/description/244/对于区间的修改和区间求和(树状数组和线段树)树状数组在区间求和的时候需要维护两个数组,两个数组都是差分至于怎么区间求和我们先假设所有的都加上了某一个区间和然后减去那些多加上的代码实现线段树区间求和我们需要用到延迟标记让时间复杂度降到logn树状数组代码...
2019-05-03 00:35:25
230
原创 区间最大公约数
题目链接:https://www.acwing.com/problem/content/description/247/可以用常数小的树状数组来求和,用线段树单点修改2333这个题需要用到更相减损术gcd(a,b) == gcd(a,b- a),数学归纳法可以推广gcd(a,b,c) == gcd(a,b - a,c -b)这样我们可以维护一个b数组等于a[i] - a[i - 1...
2019-05-01 20:09:52
1092
原创 SPOJ GSS3: Can you answer these queries III
维护一个左区间和右区间,然后合并题目链接https://www.acwing.com/problem/content/description/246/#include <bits/stdc++.h>#define endl '\n'using namespace std;typedef long long ll;typedef long double ld;c...
2019-04-29 20:02:53
247
1
原创 The Preliminary Contest for ICPC China Nanchang National Invitational(Max answer)
题目链接https://nanti.jisuanke.com/t/38228倍增nb#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef long double ld;const ll maxn = 5e5 + 10;const ll mod = 1e9 + 7;...
2019-04-22 18:19:23
247
原创 hash乱搞大法好!
参考博客https://www.cnblogs.com/henry-1202/p/8868414.htmlhash可以解决很多有趣的问题例如kmp,ac自动机,马拉车,后缀数组等等一个很大的质数ull mod = 212370440130137957ll;基础练习hash题目链接https://www.acwing.com/problem/content/description...
2019-04-17 22:25:33
268
1
原创 ACM-ICPC 2018 焦作赛区网络预赛_J_ Participate in E-sports_
https://nanti.jisuanke.com/t/A2020% javapackage test;import java.math.BigDecimal;import java.math.BigInteger;import java.util.Scanner;public class Main { public static boolean judge(BigIn...
2019-04-16 14:57:31
179
原创 poj 2442 Sequence
题目链接http://poj.org/problem?id=2442stl实在是tql借助两个数组的想法,如果当前最小值是a[1] + b[1],那么下一个最小值就会是a[2] + a[1],a[1] + a[2]中的用堆维护一下就好 耶耶耶#include <iostream>#include <algorithm>#include <q...
2019-04-10 21:16:26
149
原创 字典树模板
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; const int maxn = 1e6 + 100; const ll mod = 1e9 + 7;ll tire[maxn][27],cnt = 0,wet[maxn]...
2019-04-10 16:33:21
154
原创 后缀数组板子
学习后缀数组参考这两个博客https://www.cnblogs.com/Sparks-Pion/p/9558888.htmlhttps://www.cnblogs.com/GDOI2018/p/10292378.html看不懂没关系,背个板子天下无敌 23333#include <bits/stdc++.h>using namespace std;const in...
2019-04-10 00:53:41
200
原创 基数排序
基数排序相当于把一些数放进桶里,有多少位就有多少个桶蒟蒻自己写的垃圾代码,希望大佬多多指教 #include <bits/stdc++.h> using namespace std; typedef long long ll;typedef long double ld; const ll maxn = 1e5 + 5;const ll mod = 1e9...
2019-04-03 15:30:19
220
1
原创 2480 小b补数组
题目链接https://www.51nod.com/Challenge/Problem.html#!#problemId=2480思路:多重背包的优化是二进制,所以这个题也可以用到二进制,通过加上一个数从而让这个到达区间更远AC代码如下#include <bits/stdc++.h> using namespace std; typedef long long ...
2019-03-31 13:44:18
241
2
原创 1163 最高的奖励
题目链接:https://www.51nod.com/Challenge/Problem.html#!#problemId=1163十分有意思的一道经典贪心思路:我们按照结束时间来进行排序,如果当前时间大于用过的时间就将这个奖励加入其中,如果大于我们就将其中做过的最小的奖励替换掉(时间复杂度(o(nlogn)#include <bits/stdc++.h> using...
2019-03-22 18:53:29
241
原创 51nod 1391 01串
题目链接https://www.51nod.com/Challenge/Problem.html#!#problemId=1391发散思维(Why and Zjp tql %Zjp and Why)相信每个人看了这道题都会有思路:从当前位置向左找最大匹配位置,从当前位置从后找最大匹配位置(原谅我太垃圾只能想出o(n^2)的算法)我们可以把0当成-1,把1当成1,这样求下前缀和...
2019-03-20 17:04:10
230
原创 快读__int128
128在c++库里面有定义但是没有定义他的读入读出所以需要自己写个快读(在dev可编译成功,codeblock不行)用128写的快速幂#include <bits/stdc++.h> using namespace std; typedef __int128 ll;typedef long double ld; const ll maxn = 1e5 + 5...
2019-03-19 00:31:48
477
原创 树状数组
想出树状数组的大佬真是个天才将需要求和的数组分布在叶子节点上,A1 - A8在这里我们引进一个知识点 lowbit 他求的是x的二进制最低位的1后面跟了几个0的长度的2次幂举个例子 1000001000,这个二进制最低位的1跟了3个0,那么他的lowbit就等于2的3次幂开一个C数组 将他里面的值等于C[i] = A[i - lowbit(i) + 1] + A[i -...
2019-03-16 15:06:13
166
1
原创 蓝桥杯_ 历届试题 分考场(%zjp)
当我写这篇博客的时候我就想模一下zjp %zjp % zjp %zjp,因为模大佬才会变强,重要的大佬模三遍 历届试题 分考场 时间限制:1.0s 内存限制:256.0MB问题描述 n个人参加某项特殊考试。 为了公平,要求任何两个认识的人不能分在同一个考场。 求是少需要分几个考场才能满足条件。输入格式 第一行,一个整数n(1<n&l...
2019-03-12 22:36:35
199
1
原创 解决快速幂中longlong相乘%mod爆的问题
可以用快速乘时间为log的级别#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef long double ld;const ll maxn = 1e5 + 5;//const ll mod = 998244353;ll mul(ll a,ll b,ll mod){...
2019-03-11 23:31:08
1002
原创 关于tarjan的个人理解(强连通分量,缩点,割点,割边)
对于强连通分量的求法可以参考这个博客https://blog.youkuaiyun.com/qq_34374664/article/details/77488976很多大佬已经对tarjan的手动模拟描述的很清楚了,作为一个蒟蒻我就不再做过多解释tarjan算法基于dfs的搜图首先对于dfs搜图请参考以下代码void dfs(ll u){ for(int i = 0; i < a[...
2019-03-11 21:06:16
317
1
原创 【51nod】1109 01组成的N的倍数
题目链接http://www.51nod.com/Challenge/Problem.html#!#problemId=1109思路广搜,首先将1入队列,然后后面就是 + 0 或者 + 1;将余数标记,因为余数相同就不会是最小的(这步相当于剪枝)#pragma GCC optimize(2)#include <iostream>#include <qu...
2019-03-09 00:07:36
174
原创 【模板】二分图最大匹配
二分图最大匹配就是一个暴力的dfs(个人认为)思想是先匹配,一旦有一个人匹配不了就将他能匹配的那个人的对象(搞掉)让他去找另外一个人,当找不到在回来找到了两者都有对象练习题 :https://www.51nod.com/Challenge/Problem.html#!#problemId=2006练习题ac代码#include <bits/stdc++.h>u...
2019-03-08 12:40:46
167
原创 康拓展开和康拓逆展开【模板】
康拓展开参考网站:https://www.cnblogs.com/Howe-Young/p/4348777.html康拓展开在我个人开来就是找出所有没出现的数中比当前位置要小的数的个数然后将个数 * 阶乘举个例子1 3 2 4 比1小的有0 个 0 * 3!比3小的有两个但是1已经出现过了所有只有一个 1 * 2!再看2比2小的有一个但是出现过了所以0 * 1! 最后在加...
2019-03-08 00:10:00
305
原创 算法训练 旅行家的预算(贪心和双端队列)
题目链接:http://lx.lanqiao.cn/problem.page?gpid=T75//本题的思路就是每次假装在加油点把油全部加上,到最后在把油还了#include <bits/stdc++.h>typedef long double ld;typedef long long ll;using namespace std;const ld pi = ac...
2019-03-03 14:28:33
317
原创 【模板】求两个球的并集
牛客数据真是毒瘤Orz#include <bits/stdc++.h> typedef long double ld;typedef long long ll; using namespace std;const ld pi = acos(-1.0);const ll maxn = 1e6 * 2 + 1e5 + 5; ld sum;int main(){...
2019-03-03 00:21:17
187
原创 欧拉函数
欧拉函数能求出不大于n且与n互质的数的个数直接求法#pragma GCC optimize(2)#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef long double ld;const ll maxn = 5e6 + 7;const ll mod = 1e9 +...
2019-02-04 18:23:25
188
原创 高斯消元的运用
题目链接 :https://ac.nowcoder.com/acm/contest/31因为数的范围是3000那么运用高斯消元消完以后最多还有15个数#include <iostream>typedef long long ll;using namespace std;const ll maxn = 1e5 + 7;ll a[maxn];ll b[maxn];...
2019-02-04 18:18:25
326
原创 poj 3169 Layout (差分约束)
题目链接: http://poj.org/problem?id=3169思路:差分约束在队伍中的顺序必须和编号相同,所以对于任意I号奶牛,1<=I<N,在距离上应该满足:dis[I+1] - dis[I] >= 0对于每个好感的描述(i,j,k),假设i<=j,体现到距离上的要求就是:dis[j] - dis[I] <= k对于每个反感的描述(i,...
2018-12-05 17:01:17
201
原创 spfa和堆优化的dij和prim
1 spfa虽然已经死了,可是他还有一个作用就是判断负环和正环(如果在一个点跑了大于n次那么这个图就存在负环)正环跑最长路,负环跑最短路/*I am nothing but I must be everything.*/#include <map>#include <cmath>#include <stack>#include <queu...
2018-12-04 20:09:12
697
原创 poj 3276(差分思想)
思路:用一个数组前标记和后标记优化中间的遍历,前标记+1后标记-1,这样就能判断是否反转/*I am nothing but I must be everything.*/#include <map>#include <queue>#include <vector>#include <cstdio>#include <c...
2018-11-23 23:17:58
361
原创 堆排序
无聊写个堆排序2333都说堆排序是最不稳定的排序,可我觉得他好稳定(一直是nlogn时间复杂度 这样的排序才靠的住 偷笑)#include <bits/stdc++.h>#define maxn 200005typedef long long ll;using namespace std;ll a[maxn],n;void adjust(ll i,ll le...
2018-11-16 14:07:41
151
原创 堆模板
#include <iostream>#include <cstdio>#include <queue>#include <utility>#define maxn 1000005typedef long long ll;using namespace std;ll head[maxn];ll len = 0,now;voi...
2018-11-06 20:45:51
147
原创 牛可乐发红包脱单ACM赛$ C 区区区间间间(单调栈)
链接:https://ac.nowcoder.com/acm/contest/223/C来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K64bit IO Format: %lld题目描述给出长度为n的序列a,其中第i个元素为,定义区间(l,r)的价值为请你计算出输入描述:第一行输入数据组数T对于每...
2018-11-04 15:21:16
317
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人