题目链接:https://zhixincode.com/contest/22/problem/I?problem_id=314 样例输入 1 5 9 31 5 3 2 41 1 52 1 51 1 11 2 21 3 31 4 41 5 53 3 51 1 4 样例输出 1 151325413 题解: dls出的题真好qwq! 我们先考虑partition的两种操作,若将所有小于等于 $x$ 的数字看成 $0$,将所有大于 $x$ 的数字看成 $1$,那么原序列就变成了一个 $01$ 序列. 那…
目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog @ Problem:传送门  原题目描述在最下面.  对给定的式子算解.  \(0\leq k\leq n+m,c_k=(\sum_{i+j=k}i\times j\times \sigma_{a_i,b_j}) mod\;998244353\),其中\(当且仅当a=b时,\sigma_{a_i,b_j}=1.\) Solution:  我们发现只有当\(a_i\)和\(b_j\)相…
2020 CCPC Wannafly Winter Camp Day1 C. 染色图 定义一张无向图 G=⟨V,E⟩ 是 k 可染色的当且仅当存在函数 f:V↦{1,2,⋯,k} 满足对于 G 中的任何一条边 (u,v),都有 f(u)≠f(v). 定义函数 g(n,k) 的值为所有包含 n 个点的无自环.无重边的 k 可染色无向图中的边数最大值.举例来说,g(3,1)=0,g(3,2)=2,g(3,3)=3. 现在给出三个整数 n,l,r,你需要求解:\((\sum_{i=l}^rg(n,i)…
目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog @ Problem:传送门  Portal  原题目描述在最下面.  简单的说,每个点是一个矩阵,区间赋值和区间求积. Solution: \(div2\)版本就\(O(n*m*9)\)暴力更新暴力矩阵乘法求答案就行了,代码挺短的,有需要的话去另一篇博客里有代码. \(div1\)题解就上面这个,相信大家看完应该都能\(ac\). 本题只有两种操作,区间赋值和区间求和(矩阵的积).很…
Day 1, Div 2, Prob. B - 吃豆豆 题目大意 wls有一个\(n\)行\(m\)列的棋盘,对于第\(i\)行第\(j\)列的格子,每过\(T[i][j]\)秒会在上面出现一个糖果,糖果只存在一秒,下一秒就会消失. 假如wls第\(k\)秒在第\(i\)行第\(j\)列的格子上,满足\(T[i][j]|k\),则wls会得到一个糖果. wls每一秒只可以上下左右移动一格或停在原地. 请问wls从指定的\(S(xs,ys)​\)出发到达指定的\(T(xt,yt)​\),并且在路上…
#include<bits/stdc++.h> #define forn(i, n) for (int i = 0; i < int(n); i++) #define fore(i, s, t) for (int i = s; i < (int)t; i++) #define fi first #define se second #define all(x) x.begin(),x.end() #define pf2(x,y) printf("%d %d\n",…
题目链接:K小数查询 题意:给你一个长度为$n$序列$A$,有$m$个操作,操作分为两种: 输入$x,y,c$,表示对$i\in[x,y] $,令$A_{i}=min(A_{i},c)$ 输入$x,y,k$,表示询问区间$[x,y]$中的第$k$小数 思路:数据范围不是很大,可以分块来做,记录每个块已经更新过的最小值$imin[]$,询问时二分答案,然后求出$[x,y]$区间中小于等于$mid$的数的个数$cnt$,通过判断$cnt$与$k$的大小来改变$l,r$即可 #include <ios…
题目传送门 sol:先通过AC自动机构建字典,用$dp[i]$表示长串前$i$位的最小代价,若有一个单词$s$是长串的前$i$项的后缀,那么可以用$dp[i - len(s)] + val(s)$转移到$dp[i]$. AC自动机 #include <bits/stdc++.h> using namespace std; typedef long long LL; typedef pair<int, int> PII; ; const LL INF = 0x3f3f3f3f3f3f…
题目传送门 sol:二分答案$K$,算大于$K$的乘积有多少个.关键在于怎么算这个个数,官方题解上给出的复杂度是$O(nlogn)$,那么计算个数的复杂度是$O(n)$的.感觉写着有点困难,自己写了一个复杂度是$O(nlog^{2}n)$,也够AC了.有正有负,控制边界有点难度. 二分答案 #include <bits/stdc++.h> using namespace std; typedef long long LL; typedef pair<int, int> PII; ;…
给定一个全排列,对于它的每一个子序列 \(s[1..p]\),对于每一个 \(i \in [1,p-1]\),给 \(s[i],s[i+1]\) 间的每一个值对应的桶 \(+1\),求最终每个桶的值. Solution 对于一对 \((i,j), i<j, p[i]<p[j]\),其对 \(k \in (p[i],p[j])\) 有 \(2^{(i-1)+(n-j)}\) 的贡献 于是我们得到了 \(O(n^2 \log n)\) 暴力 考虑枚举左侧的 \(i\),它会与右侧 \(p[j]&g…