洛谷题目
洛谷题目
Catmull
M.S. Candidate @ CASIA
展开
-
洛谷 【最大流】
P3376 【模板】网络最大流#include<vector>#include<cstdio>#include<algorithm>#include<cstring>#include<queue>using namespace std;const int maxn=210,maxm=5010;long long inf=1e18;int n,m,s,t;struct edge{ int to,cap,rev;};ve原创 2021-01-26 11:50:11 · 69 阅读 · 0 评论 -
洛谷 【二分】
P1873 砍树注意long long#include<iostream>#include<algorithm>using namespace std;const int maxn=1e6+10;int n,m,h[maxn],ans;bool check(int H){ long long temp=0; for(int i=1;i<=n;i++){ if(h[i]>H) temp+=h[i]-H; } if(temp>=m) re原创 2020-06-27 21:23:59 · 144 阅读 · 0 评论 -
洛谷 【图论2】最短路
P3371 【模板】单源最短路径(弱化版)Floyd算法 O(n3)O(n^3)O(n3)#include<iostream>#include<algorithm>using namespace std;const int N=1e4+10,inf=2147483647;int n,m,s,dis[N][N];int main(){ cin>>n>>m>>s; for(int i=1;i<=n;i++){ for(int原创 2020-06-27 10:25:50 · 100 阅读 · 0 评论 -
洛谷 【图论1】基础树上问题
题单链接P5836 [USACO19DEC]Milk Visits S并查集。合并的条件是:相邻的节点并且颜色相同才合并。判断是否高兴的条件是,(1)端点所处的并查集不同或者(2)并查集相同,端点的奶牛种类符合预期。#include<iostream>#include<algorithm>using namespace std;const int maxn=1e5+10;int n,m,par[maxn],x,y;char c[maxn],z;void init原创 2020-06-25 20:43:33 · 229 阅读 · 0 评论 -
洛谷 【动态规划4】树与图上的动态规划
P1352 没有上司的舞会#include<iostream>#include<algorithm>#include<cstring>using namespace std;const int maxN=6010;int n,w[maxN],head[maxN],f[maxN][2],root,l,k,tot;bool isroot[maxN];struct Edge{ int u,v,next;}e[maxN]; void add(int u,in原创 2020-06-23 19:02:18 · 201 阅读 · 0 评论 -
洛谷 【动态规划3】区间与环形动态规划
提单链接P1220 关路灯参考《算法竞赛入门经典(Second Edition) P293 UVa1336(Second\ Edition)\ P293 \ UVa1336(Second Edition) P293 UVa1336》在所有任意时刻,已关的灯一定是一个连续的区间f[i][j][k]f[i][j][k]f[i][j][k]表示关上了灯[i,j][i,j][i,j],且当前位置在kkk,k=0k=0k=0表示在左端点i,k=1k原创 2020-06-14 21:48:03 · 277 阅读 · 1 评论 -
洛谷 【动态规划2】线性状态动态规划
题单链接P1020 导弹拦截【最长上升子序列LIS】分别求最长不上升子序列、最长上升子序列O(n2)O(n^2)O(n2)算法#include<iostream>#include<algorithm>using namespace std;int arr[100010],n,dp[100010],lds,cnt,f[100010],lis;int ldsfind(int x){ int ans=0; for(int i=1;i<x;i++){ if(原创 2020-06-07 22:11:34 · 234 阅读 · 0 评论 -
洛谷 【动态规划1】动态规划的引入
题单P1216 数字三角形 Number Triangles代码#include<iostream>#include<algorithm>using namespace std;int r;int arr[1010][1010],dp[1010][1010];int main(){ cin>>r; //输入 for(int i=0;i<r;i++){ for(int j=0;j<=i;j++){ cin>>arr[原创 2020-06-06 21:54:58 · 327 阅读 · 0 评论