随笔分类 - bzoj
摘要:f(i,j)表示当前牛的集合为i,最后一个牛为j时的方案数。f(i∪{k},k)+=f(i,j) //k∉i&&j∈iinit:f({i},i)=1 //0#includeusing namespace std;typedef long long ll;#define N 17int n,m,a...
阅读全文
摘要:考虑向一个集合里添加一个数,它们的gcd要么不变,要么变成原gcd的一个约数。因此不同的gcd只有log个。所以对于每个位置,维护一个表,存储从这个位置向前所有的不同的gcd及其初始位置,然后暴力更新答案,反正这个表不会很长。#include#include#includeusing namespa...
阅读全文
摘要:预处理cost[a][b] 表示第a天到第b天用同一条线路的成本。具体转移看代码。#include#include#include#includeusing namespace std;#define N 21typedef long long ll;#define M 401int n,m,K,d...
阅读全文
摘要:http://wenku.baidu.com/view/8f1fde586edb6f1aff001f7d.html#include#include#includeusing namespace std;typedef long long ll;#define N 1001int n,m,S,T,nn...
阅读全文
摘要:Dilworth定理,将最长反链转化为最小链覆盖。//貌似还能把最长上升子序列转化为不上升子序列的个数?floyd传递闭包,将可以重叠的最小链覆盖转化成不可重叠的最小路径覆盖。(引用:这样其实就是相当于将原图改造了一下,只要 x 能到达 y ,就直接连一条边 (x, y),这样就可以“绕过”原图的一...
阅读全文
摘要:http://dzy493941464.sinaapp.com/archives/96那个SIZE貌似必须设成R*R/Q?不知为啥,自己算的不是这个的说。本机AC,线上TLE。#include#include#include#include#includeusing namespace std;in...
阅读全文
摘要:把y坐标离散化后,按x坐标排序,把询问拆成四个点,每次询问某个点左下角的点的个数,注意处理边界和重叠的情况。#include#includeusing namespace std;#define N 500001int f,C;void R(int &x){ C=0;f=1; for(;...
阅读全文
摘要:处理数组A,A[i]表示字符串a的第i个字符排序后应去的位置,队列可。对于多次出现的字符,其在a中的顺序和在b中的顺序应该是一一对应的。#include#includeusing namespace std;#define N 1000001typedef long long ll;queueqs[...
阅读全文
摘要:http://www.cnblogs.com/proverbs/archive/2012/10/29/2745281.html(↑)这样处理之后,每次询问时,对于每种颜色,从1到其倒数第二次出现的位置都会被覆盖1次,因此询问左端点的值即可。#include#includeusing namespac...
阅读全文
摘要:#includeusing namespace std;#define N 100001int n,m,a[N];bool check(int x){ int now=0,sum=1; for(int i=1;ix||sum>m) return 0; } } retur...
阅读全文
摘要:对于二分出的答案x而言,验证答案等价于将所有边权>x的边赋成1,否则赋成0,然后判断从1到n的最短路是否#include#includeusing namespace std;#define N 1001#define M 10001int n,m,K,Xs[M],Ys[M],Zs[M];int f...
阅读全文
摘要:显然最短路长度随着v的变化是单调的,于是可以二分答案,据说spfa在网格图上表现较差。#include#include#includeusing namespace std;typedef double db;typedef long long ll;#define N 101#define INF...
阅读全文
摘要:显然只有偶数长度的串符合题意,并且如果一个串符合题意,那么从其首尾各截掉一个字符也符合题意。于是枚举中心,二分可以向左右扩展的最远距离,累计答案。#include#include#includeusing namespace std;#define N 500001typedef unsigned ...
阅读全文
摘要:http://hzwer.com/1986.html#include#include#include#includeusing namespace std;#define INF 2147483647#define N 51int n,m;char a[N][N];queueq;int S,T,nn...
阅读全文
摘要:用三角形面积什么的算算点到直线的距离之类……其实相切的情况是可行的……剩下的就跟某SDOI2015一样了。#include#include#include#include#includeusing namespace std;#define N 201#define EPS 0.000001#def...
阅读全文
摘要:二分最大的边的cap,记作Lim。把所有的边的cap设为min(Lim,cap[i])。Bob一定会把单位费用加到最大边上。#include#include#include#include#includeusing namespace std;#define EPS 0.000001#define ...
阅读全文
摘要:#includeusing namespace std;#define MOD 1004535809int a[8001],f[1001][101],n,m,x,S;int main(){ scanf("%d%d%d%d",&n,&m,&x,&S); for(int i=1;i<=S;++i) ...
阅读全文
摘要:二分Time,S->炮[i]:Time*b[i]炮[i]->机器人[i]:INF机器人[i]->T:a[i]。判断是否满流。#include#include#include#includeusing namespace std;#define N 51#define EPS 0.000001#def...
阅读全文
摘要:在考试代码的基础上稍微改改就a了……当时为什么不稍微多想想……插入/删除一个新节点时就把其dfn插入set/从set中删除。当前的答案就是dfn上相邻的两两节点的距离和,再加上首尾节点的距离。比较显然?不会证明……貌似叫“虚树”?#include#includeusing namespace std...
阅读全文
摘要:#include#include#include#includeusing namespace std;#define N 100001typedef long long ll;int v[NQ[i].t;--j) { if(vis[CH[j].x]) ...
阅读全文

浙公网安备 33010602011771号
