摘要:
题意 给出$n$个字符串$s_1,s_2,\dots,s_n$,定义$f(s,t)$为字符串$s$和字符串$t$的最长公共前后缀(字符串$s$的前缀,字符串$t$的后缀)。 让你计算 \[ \sum_{i=1}^{n} \sum_{j=1}^{n} f(s_i,s_j)^2~(mod~9982443 阅读全文
摘要:
typedef unsigned long long ull; struct My_Hash { ull base=131; ull p[N],ha[N]; void Insert(char s[]) { int len=strlen(s+1); p[0]=1,ha[0]=0; for(int i= 阅读全文
摘要:
题意 给一个大小为$n$的全排列$A$和一个整数$k$,让你找出一个置换排列$P$,使得${1,2,\dots,n}$对$P$做$k$次置换后为$A$。 分析 把$A$的所有环求出来,设这些环的大小为$r_1,r_2,\dots,r_c$。因为$k$是大质数,所以可以对每个$i$求一个$inv_i= 阅读全文
摘要:
题意 $k$盏灯,每盏灯有两种颜色R,B。有$n$个人,每个人猜三盏灯的颜色,让你求这$k$盏灯的颜色,使每个人都至少猜对两盏灯的颜色。 分析 转化成$two-sat$问题,对于每个人若猜错其中一盏灯,那么另外两盏灯的颜色必须猜对,建边,跑$tarjan$,输出答案。 Code #include<a 阅读全文
摘要:
题意 字符串$S$的能量$P(S)$定义为 \[ P(S)=\sum_{i=1}^{n}N_i\times V_i \] $N_i$是满足$S_i=S_j$的下标$j(i<j\le n)$的个数,$V_i$是字符$S_i$的$ASCII$码。 给一个长度为$n$的字符串$s$和一个整数$k$,你可以 阅读全文
摘要:
题意 给一个$n$个点$m$条边的无向图$G=(V,E)\(,让你找最多有多少个回力镖,回力镖是一个三元组\)(u,v,w)\(表示边\)(u,v)\subseteq E$且边$(v,w)\subseteq E$,每个边只能存在于一个回力镖中。 分析 dfs深搜,回溯过程中将当前结点$u$的前向边两 阅读全文
摘要:
题意 给一个$n\times n$的空棋盘,棋盘的第$k$列是一个特殊的列,有$m$次操作,每次增加一个棋子或者移走一个棋子,如果能使用以下规则将所有棋子移动到第$k$列,那么这个棋盘是好的。 在格子$(x,y)\(位置的棋子,能移动到\)(x,y+1),(x+1,y+1),(x-1,y+1)$; 阅读全文
摘要:
题意 李的店里有$n$种美食,第$i$种美食有$a_i$个,李有$m$个朋友,第$i$个朋友喜欢第$x_i$和第$y_i$个两种不同的美食,每个朋友来到店会吃两种他喜欢的美食各一个,如果其中一种美食不够了就只吃另一种美食,李想让你帮他安排朋友到店的先后顺序,使他的每个朋友都至少吃到一种美食。 分析 阅读全文
摘要:
题意 给一个$n$个点的环,每个点是一个容量为$a[i]$的空水池,给$n$个水桶,第$i$个桶里有$b[i]$升水,第$i$个桶只能给第$i$和第$i+1$个水池加水,特殊的,第$n$个桶只能给第$n$个和第$1$个水池加水,问是否能将所有水池加满。 分析 二分$b[1]$给$a[1]$加了多少水 阅读全文
摘要:
题意 给定一个$n$个点的树,每个点有个初始颜色$c_i$,有$m$次询问,询问有两种: \(U~x_k~y_k\),将第$x_k$个点的颜色改为$y_k$。 \(Q~y_k\),找到一个边数最少的子图,使得这个子图包括所有颜色为$y_k$的点,输出这个子图的边数。 分析 对每种颜色的点用一个set 阅读全文