摘要:
~~在spoj上用题号找题就已经是手动二分了吧~~ 把1作为汇点,k个要入网的向t连流量为1的边,因为最小颜色数等于最大边流量,所以对于题目所给出的边(u,v),连接(u,v,c),二分一个流量c,根据最大流是否等于k来调整上下界。 cpp include include include inclu 阅读全文
摘要:
因为n很小所以从大到小枚举答案。(从小到大先排个序,因为显然胜利场次越多越容易成为strong king。然后对于每个枚举出来的ans建图。点分别表示人和比赛。s向所有人连接流量为胜利场次的边,所有比赛向t连流量为1的边来限制流量,然后对于“某一方一定要赢得比赛”,也就是当前被枚举为strong k 阅读全文
摘要:
建图:s向所有猪圈的第一个顾客连流量为这个猪圈里住的数量,然后对于之后每个来这个猪圈的顾客,由他前一个顾客向他连边权为无穷的边,然后每个顾客向t连流量为这个顾客购买上限的边。然后跑最大流 cpp include include include include include using namesp 阅读全文
摘要:
第一问快速幂板子 第二问把式子转化为\\( xy\equiv Z(mod\ P)\rightarrow xy+bP=z \\),然后扩展欧几里得 第三问BSGS板子 cpp include include include include using namespace std; long long 阅读全文
摘要:
一道几乎是板子的LCT,但是沉迷数学很久时候突然1A了这道题还是挺开心的 cpp include include using namespace std; const int N=30005; int n,q,sum[N],v[N],s[N],top; char c[20]; struct qwe 阅读全文
摘要:
首先建立矩阵,给每个格子编号,然后在4 4的格子中把能一步走到的格子置为1,然后乘n次即可,这里要用到矩阵快速幂 cpp include include using namespace std; const int mod=1e9+7; long long n,ans; struct qwe { l 阅读全文
摘要:
…我并不知道为什么事卡特兰数,反正用dp打的表就是卡特兰数,因为是两个三角所以再乘个2 卡特兰数使用\\( h(n)=\frac{C_{2n}^{n}}{n+1} \\)因为范围比较大所以组合数部分用卢卡斯定理来求。 cpp include include include include using 阅读全文
摘要:
首先题目中给出的代码打错了,少了个等于号,应该是 cpp G=0; for(i=1;i include using namespace std; const long long N=1000005,m=1000000,inv2=500000004,inv4=250000002,inv6=166666 阅读全文