LOJ P10015 扩散 题解】的更多相关文章

每日一题 day49 打卡 Analysis 用dis数组记录每两个点之间的时间,再用一个传递闭包来维护最小的时间就好了 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define int long long #define maxn 50+10 #define rep(i,s,e) for(register i…
第一部分 基础算法 第 1 章 贪心算法 1):「一本通 1.1 例 1」活动安排:按照结束时间排序,然后扫一遍就可以了. 2):「一本通 1.1 例 2」种树:首先要尽量的往区间重叠的部分种树,先按照右端点排序,每次贪心的从区间的最右边种,然后检查下一个区间是否缺少,缺的话就在最右边继续补. 3):「一本通 1.1 例 3」喷水装置:这题可以发现每个装置所能覆盖的区间是一个矩形,所以这题就变成了给了一堆线段,选出最少线段覆盖整个区间,按照右端点排序然后贪心就可以了. 4):「一本通 1.1 例…
题意 先讲一下一种容易陷入误区错误思路 要使时间最小,就去找相对于每个点的最短曼哈顿距离,然后取最大值,时间就是(maxn+1)/2. 代码 #include<cstring> #include<algorithm> #include<cmath> #include<cstdio> #include<iostream> #define ll long long #define MX 55 using namespace std; int d[MX…
每日一题 day58 打卡 Analysis 这道题搜索的想法非常巧妙,从两端向中间找,这样可以保证仅仅对于head或tail而言,需要用到的前缀和与后缀和是单调递增的,这样排个序就解决了. 值得一提的是,在搜索时开两个变量记录前缀与后缀和,以便计算. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define int long long #define…
每日一题 day38 打卡 Analysis 这道题运用的是三分,就是说具有一定的单调性,找最大最小值,然后和二分基本类似,就是说特性就是说当前两个点比较,较优的点和最优点在相对了较差点的同侧,就是说那边差就把范围定到那里去 注意:要注意精度问题,一般定到1e-9或1e-11 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define int long l…
每日一题 day35 打卡 Analysis 先将不符合条件的区间去掉(即半径小于W,不然宽度无法符合),将符合条件的按区间存入节点中.区间的左边界是x-sqrt(r*r-W*W/4.0),要计算x轴的最小长度,而不是x-r.然后将区间按照左边界从小到大排序,依次找到能够覆盖L点的最大右端点. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include&…
每日一题 day50 打卡 Analysis 用初中学的相似推一波式子,再用三分一搞就好了. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define int long long #define rep(i,s,e) for(register int i=s;i<=e;++i) #define dwn(i,s,e) for(register int…
因为有大佬写的比我更长更具体,所以我也就写写总结一下了 引入: 众所周知,很多图中有个东西名叫环. 对于这个东西很多算法都很头疼.(suchas 迪杰斯特拉) 更深层:环属于强联通分量(strongly connected components): 定义:如果有向图G的每两个顶点都强连通,称G是一个强连通图.有向图的极大强连通子图,称为强连通分量. 例如:(画画技艺高超到自闭) 红圈内部即为强联通分量. 对于这个东西,其他算法更难搞: 那么我们为了把这个东西合为一个,或者找出属于一个强联通分量的…
题面 k==1时,快速幂就好了: k==2时,exgcd就好了,但要注意取模范围的控制: k==3时,BSGS可以解决高次同余方程: 然后就可以开心的A掉了,但要注意特殊情况的特判 #include <bits/stdc++.h> using namespace std; long long KSM(long long a,long long b,long long p) { ; while(b){ ) res=res*a%p; a=a*a%p; b/=; } return res%p; }…
[网络流24题]最长k可重线段集(费用流) 题面 Cogs的数据有问题 Loj 洛谷 题解 这道题和最长k可重区间集没有区别 只不过费用额外计算一下 但是,还是有一点要注意的地方 这里可以是一条垂直的直线 所以,首先把所有的x轴全部乘2 如果两个相等就把右端点+1 否则左端点+1 这样就可以解决垂直于x轴的问题了 #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #…