摘要:
对于第x个数, 下一轮它会到位置p.当xN/2, p = x*2%(N+1)所以p = x*2%(N+1)设一开始的位置为t, 那么t*2M%(N+1)=L, 只需把2M除过来, 即L乘上2M的乘法逆元即为答案.--------------------------------------------... 阅读全文
摘要:
题意保证了是一个置换群.根据burnside引理, 答案为Σc(f) / (M+1). c(f)表示置换f的不动点数, 而题目限制了颜色的数量, 所以还得满足题目, 用背包dp来计算.dp(x,i,j,k) = dp(x,i-cntx,j,k)+dp(x,i,j-cntx,k)+dp(x,i,j,k... 阅读全文
摘要:
弦图最小染色...先用MCS求出完美消除序列然后再暴力染色...-------------------------------------------------------------------------------------#includeusing namespace std;const... 阅读全文
摘要:
dp(i,j)表示1~i的排列中, 以1~j为开头且开头是下降的合法方案数这种数列具有对称性, 即对于一个满足题意且开头是上升的n的排列{an}, 令bn = n-an+1, 那么{bn}就是一个满足题意且开头是下降的序列dp(i,j) = dp(i,j-1) + dp(i-1,i-j+1). 前一... 阅读全文
摘要:
第一场BC...感觉还是多参加点比赛吧...第一题水题各种乱搞就可以过第二题依旧水题..记个前缀和就行了..虽说是2道水题..然而我T1提交时就过了20min, T2还RE了一发..第二次提交就已经48min了...然后rank就被甩了几条街..第三题感觉直接考虑每个区间的贡献应该可以..然后再减掉... 阅读全文
摘要:
按题意用priority_queue模拟即可----------------------------------------------------------------------#includeusing namespace std;const int maxn = 1009;const in... 阅读全文
摘要:
dp(i,j)表示1~i的全部排列中逆序对数为j的个数.从1~i-1的全部排列中加入i, 那么可以产生的逆序对数为0~i-1, 所以dp(i,j) = Σ dp(i-1,k) (j-i+1 ≤ k ≤ j) 用前缀和优化就可以做到O(N2)了-----------------------------... 阅读全文
摘要:
S->每个奇数,每个偶数->T各连一条边, 容量为这个数字.然后不能同时选的两个数连容量为+oo的边. 总数-最大流即是答案.因为满足a2+b2=c2的a,b一定是一奇一偶或者两个偶数, 2偶不满足gcd=1, 所以两个数不能同时选一定是一奇一偶.--------------------------... 阅读全文
摘要:
按A从小到大排序然后用栈解决.--------------------------------------------------------------------#includeusing namespace std;typedef long long ll;const int maxn = 5... 阅读全文
摘要:
可并堆水题---------------------------------------------------------#includeusing namespace std;const int maxn = 1000009;struct Node { Node *l, *r, *ch; int... 阅读全文