ACM
O2H
这个作者很懒,什么都没留下…
展开
-
2018牛客网暑期ACM多校训练营(第七场)A Minimum Cost Perfect Matching
链接:https://www.nowcoder.com/acm/contest/145/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288KSpecial Judge, 64bit IO Format: %lld题目描述You have a complete bipartite graph where each p...原创 2018-08-10 16:25:39 · 214 阅读 · 0 评论 -
伸展树模板HYSBZ - 3224
题目链接 #include<cstdio>#include<iostream>using namespace std;#define maxn 100005int sz,root,ch[maxn][2],f[maxn],cnt[maxn],key[maxn],size[maxn];inline void clear(int x){ ch[x...原创 2019-01-25 16:40:57 · 177 阅读 · 0 评论 -
寒假第二周学习记录2 HDU5126 CDQ分治
题目链接大意:在一个三维空间当中,每次进行一个操作,添加一个点或者统计空间中的某一个长方体范围内的所有点就是用CDQ分治就离线的统计出每个查询的结果首先我们将每个点z坐标离散化,那么我们就可以利用树状数组统计出每个查询点之前插入的点的z坐标小于等于当前查询的点的个数。那么我们就是要先将x,y序不大于当前查询,且时序小于当前查询的点先加入的树状数组当中,这一步操作我们需要进行一个嵌套...原创 2019-01-25 16:04:31 · 192 阅读 · 0 评论 -
ACM-ICPC 2018 焦作赛区网络预赛 B. Mathematical Curse
因为有乘法和除法,乘上一个负数时,最小值就变最大值了,所以我们要维护最小和最大两个值;用dpmax[i][j]和dpmin[i][j],代表用了 j 个运算符走到 i 时的最大值和最小值。dp[n][m]就是结果了 #include<iostream>#include<cstring>using namespace std;typedef lo...原创 2018-09-16 01:04:01 · 207 阅读 · 0 评论 -
ACM-ICPC 2018 焦作赛区网络预赛 G
一开始看错题还以为10的5次方。。。。 wa了#include<iostream>using namespace std;typedef long long ll;const ll mod=1000000007;ll pow(ll n,ll m){ ll now=1,temp=n; while(m){ if(m&1){ now=now...原创 2018-09-15 19:55:43 · 253 阅读 · 0 评论 -
优先队列中重载运算符(priority_queue学习)
优先队列是从大到小排序的我们要想变成从小到大排序那么改变一下它判断小于的条件就好了重载 < 运算符(就是它判断小于的条件)当a.val > b.val时 节点a < 节点b优先队列q的排序中b在a前面,所以q就变成按val从小到大排序了 ;#include<bits/stdc++.h>using namespace std;...原创 2018-09-02 02:12:51 · 1083 阅读 · 2 评论 -
ACM-ICPC 2018 南京赛区网络预赛 Magical Girl Haze
题目链接将每个点分成K+1(0<=i<=k)个点,代表该点之前有i条权值变为0的边分层后找最短路#include <bits/stdc++.h>using namespace std;const int maxn=100005;const long long INF=1e18+5;struct node{ int to,dis; node (int...原创 2018-09-01 19:50:22 · 168 阅读 · 0 评论 -
ACM-ICPC 2018 南京赛区网络预赛 A
题目链接 (n-1)*(n-1)! = n!-(n-1)!所以公式S最后可以化简为 n!-1因为 mod n 又因为n!为n的倍数所以结果就为 n-1#include<bits/stdc++.h>using namespace std;int main(){ int t; while(~scanf("%d",&t)){ long long...原创 2018-09-01 19:29:27 · 550 阅读 · 2 评论 -
线段树+树链剖分裸题 spoj 375 Query on a tree
题目大意:在一颗数上,每条边都有一个权值,让你修改其中一条边的值或者让你找出u,v两点之间权值最大的边。 树链剖分,第一个dfs求出每个点的siz(该点拥有的子节点数),son(其儿子节点中siz最大的那个),fa(该节点的父亲节点),dep(该节点所在层数)第二个dfs就是为按重链为每一条边标记num下标和标记重链。接着就是用线段树管理这些边,记得这些边是用num下标标记的...原创 2018-08-22 00:03:24 · 116 阅读 · 0 评论 -
最大流模板(dinic)
以 POJ 1273为例//#include<bits/stdc++.h>#include<cstdio>#include<vector>#include<queue>#include<cstring>using namespace std;const int maxn=100005;const int inf=...原创 2018-08-24 13:04:38 · 173 阅读 · 0 评论 -
kmp模板
#include<bits/stdc++.h>#define maxn 100005using namespace std;int next[maxn];char a[maxn],b[maxn]; int len1,len2;//求b匹配a的起始坐标 int kmp1(){ int i=0,j=0; while(j<len1&&i<le...原创 2018-08-21 11:25:36 · 160 阅读 · 0 评论 -
线段树模板(区间和)
#include<bits/stdc++.h>using namespace std;#define MAX 110005typedef long long ll;int a[MAX];int sum[MAX<<2];int add[MAX<<2];void push(int rt){ sum[rt]=sum[rt<<1]+sum...原创 2018-08-21 11:08:14 · 119 阅读 · 0 评论 -
2018 Multi-University Training Contest 9 Rikka with Badminton
Problem DescriptionIn the last semester, Rikka joined the badminton club.There are n students in the badminton club, some of them have rackets, and some of them have balls. Formally, there are ...原创 2018-08-20 19:57:38 · 156 阅读 · 0 评论 -
2018 Multi-University Training Contest 10 Problem E. TeaTree(1005)
#include<bits/stdc++.h>using namespace std;const int N = 1e5 + 10;vector<int> V[N], G[N];set<int> ST[N];int n, a[N], ans[N];void init(){ for(int i=2; i<N; i++){ ...原创 2018-08-22 20:38:35 · 129 阅读 · 0 评论 -
2018 Multi-University Training Contest 10 Problem L.Videos(1012)
费用流#include<bits/stdc++.h>using namespace std;const int N = 500;const int inf = 0x3f3f3f3f;int T, n, m, K, W, tar;bool inq[N];int a[N], d[N], p[N];struct Movie{ int s, t, w, ...原创 2018-08-22 19:34:58 · 214 阅读 · 0 评论 -
最短路模板(dijkstra优先队列优化 和 spfa+向前星优化)
用优先队列(堆)优化的Dijkstra算法:#include<bits/stdc++.h>#define maxn 100005#define inf 0x3f3f3f3fusing namespace std;vector<pair<int,int> > e[maxn];int dis[maxn];int vis[maxn];int ...原创 2018-08-19 21:57:14 · 516 阅读 · 0 评论 -
2018 Multi-University Training Contest 5 1007:Glad You Came(线段树)
题目链接题目大意:给出n个数(a1....an)一开始为0,然后给一个公式生成3m个数,在每次操作中根据另一个公式得到 l,r和v 在al..al+1..ar中如果ai<v,ai=v; 输出最后这n个数先乘自己的下标再异或的结果。解题思路:线段树维护n个数的最小值,在每次操作中区间更新,m次操作完后异或得出结果。(记得剪枝) 代码:#include<bit...原创 2018-08-07 19:47:59 · 135 阅读 · 0 评论 -
2018 Multi-University Training Contest 5 E Everything Has Changed
Everything Has Changed Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) ...原创 2018-08-07 14:31:27 · 152 阅读 · 0 评论 -
树状数组裸题模板
题目简述:给一组长度为n的数组,对这数组有q次操作,有两种操作。①将某点加x,②输出l-r的和题目链接树状数组的原理很简单,若给定的数组为a[i],构建的树状数组为b[i],当 i = 2 时 b[2] = a[2] + b[1],当 i = 3 时 b[3] = a[3],当 i = 4 时 b[4] = a[4] + b[3] + b[2]规则就是把 i 换成二进制 ...原创 2019-05-14 13:56:34 · 170 阅读 · 0 评论