10 2014 档案
摘要:d[x][0]表示x点向下走且回到x点的最少代价d[x][1]表示x点向下走但不回到x点的最少代价d[x][2]表示x点向下走的最长路d[x][3]表示x点向下走的次长路u[x][0]表示x点向上走且回到x点的最少代价u[x][1]表示x点向上走但不回到x点的最少代价一遍树形DP即可ans[i]=m...
阅读全文
摘要:设f[i][j]表示以i为根的子树,i与父亲之间的边染成j的最小代价DP的过程中转移时相当于求一个最小权匹配,用费用流即可感觉复杂度飞起来了…#includeconst int inf=~0U>>2,N=30000,M=1000110,MAXN=160;int n,x,y,i,j;int u[M],...
阅读全文
摘要:将所有炸弹按坐标排序x#include#define N 100010#define M 1700010typedef long long ll;struct P{ll x,r;int id;}a[N];inline bool cmp(P a,P b){return a.xb)a=b;}inline...
阅读全文
摘要:RE了几十发,实在没办法了…只好向管理员要数据,然后发现数据规模与题目描述不符…建立Trie并求出DFS序,同时根据DFS序确定字典序然后每次询问相当于询问子树第k小,用主席树维护,注意压缩内存时间复杂度,L为所有串长度之和#include#includeconst in...
阅读全文
摘要:旋转坐标系后转化为正方形,,,两根扫描线从左往右扫f[i]表示y坐标下边界为i时的价值和每次加入/删除一个点等价于一段区间加减然后查询全局最大值线段树维护扫描线之间的点#include#includeconst int E=10000...
阅读全文
摘要:终于把省选时的遗憾补上了…对于构造立方体:首先BFS构出底层,然后再逐层构造立方体对于计算:爆搜即可。#include#includeconst int N=75,M=343010;char ch[N];int n,m,i,j,k,tmp,q[M],t,l,r;int cnt[M],...
阅读全文
摘要:f[i]表示以i为结尾的LIS长度对于所有f[i]=1的,由S向i连边对于所有f[i]=maxf的,由i向T连边对于j#includetypedef long long ll;const int N=1410,BIT=12;const ll MOD=(1LLMOD)c.ex[i-1]++,c.ex[...
阅读全文