LOJ 2038 超能粒子炮・改 题目链接 题目 求\(\sum\limits_{i=0}^{k}\binom{n}{i}\bmod 2333\) ## 分析 用卢卡斯定理拆组合数。 \(\sum\limits_{i=0}^{k}\binom{n/p}{i/p}\binom{n\bmod p}{i\bmod p}\bmod 2333\) 观察一下发现等于, \(\binom{n/p}{0}\sum\limits_{i=0}^{ 2020-09-17 题解 #组合数学 #卢卡斯定理
BZOJ 1034 泡泡堂BNB 题目链接 田忌赛马 1. 如果最强的能赢最强的,先赢一把 2. 最弱的能赢最弱的,先赢一把 3. 否则用最弱的打最强的 12345678910111213141516171819202122232425#include <bits/stdc++.h>using namespace std;const int N = 100005;int n, a[N], b[N];int solv 2020-09-17 题解 #贪心
LOJ 6165 一道水题 题目链接 把每个数唯一分解\(n=\prod p-i^{e-i}\),显然最终答案的每个质因数指数都不小于\([1,n]\)的每个数分解的指数。 但是这样是\(\mathjaxcal{O}(n\sqrt{n})\)的。 我们只用关心每个质数最大的\(e-i\)是多少。 显然是其他数都是\(1\)的时候,不断用\(n\)除就能得到\(e-i\)的值。 话说我怎么要用\(bitset\)才能过这道 2020-09-17 题解 #唯一分解定理
P6713 [CCO2018] Geese vs. Hawks 翻译好像没太说清楚啊?QAQ ## 题意 两个人分别在看两支球队比赛, 并且只记录了自己观看一方的胜负和得分. 现在问你,是否能够从两个人的记录中选出一些合法的比赛,使得分之和最大. 合法的意思是赢了的一方得分比对方高. 注意没选的比赛也要合法.(这就是为什么第二个样例没有选\((2,3)\)的原因) 题解 并没有要求打印方案,所以有一个很好想的\(DP\)? 设\(f[i][j]\)表示考虑 2020-09-17 题解 #动态规划
P4173 残缺的字符串 更精彩内容看这个巨佬的博文 没想到字符串匹配还能这么玩 把比较两个字符串的过程形式化, 判断两个字符串相等\(a[i]-b[i]=0\) 普通的模式串匹配 若模式串与另一个串以\(x\)结尾的字串匹配, 即\(P(x)=\sum\limits_{i=0}^{m-1}(a[i]-b[x-m+i+1])=0\). 但是这样是有问题的,两个字符串只要字符种类和个数相同就被认为匹配了... 原因是会出 2020-09-17 题解 #数学 #字符串 #FFT
LOJ 2074 灯塔 题目链接 题目要求\(p-i\geq h-j+\sqrt{|i-j|}-h-i\) 即\(p-i=\max\limits_{j=1}^{n}h-j+\left\lceil\sqrt{|i-j|}\right\rceil -h-i\) 因为可以观察的到\(\left\lceil\sqrt{|i-j|}\right\rceil\)取值个数是\(\mathjaxcal{O}(\sqrt{n})\)的 2020-09-16 题解 #分块 #倍增
BZOJ 3894 文理分科 题目链接 最小割经典模型 把文科看做源点,理科为汇点。 不考虑额外收益的情况下,直接连接对应的点到源点,如\((s,u)\),或者\((u,t)\)。 考虑额外收益,用一个虚点表示一个點集。 虚点向點集每个点连一条\(inf\)的边,向源点或者汇点连权值为\(value\) 的边。 所以虚点连向点集的边不会断开,而且只有一组点集在同一个集合的时候,虚点所对应的收益边才不会断开,而另一个集合一定 2020-09-16 题解 #网络流 #最小割
P2057 Vote 善意的投票 题目链接 最小割经典模型 把投票的\(0\),\(1\)分别看作源点和汇点。 每个小朋友都和自己投票的种类连一条边。 而好朋友直接也连一条边。 如果好朋友不在一个集合,他们的边会断,反之不会。 而自己不在想投的集合,边会断,反之不会。 要求断边最小,把所有边权设为\(1\)跑一次最小割就可以了。 1234567891011121314151617181920212223242526272829 2020-09-16 题解 #网络流 #最小割
P1361 小M的作物 题目链接 看了下题解,感觉很神奇,所以记录一下。 先不考虑组合,很显然是最小割的经典模型。 所有点\(u\)都从\(s\)向它连一条边,\(u\)向\(t\)连一条边 因为最后\(s\)和\(t\)要在两个集合,所以每个点都会断一条边。 \((u,t)\)断开代表\(u\)在\(s\)的集合中,求出最小割,用总收益减去断掉的边。 现在有组合,考虑一个點集对\(A\)的贡献 假设这个點集是\(\ 2020-09-16 题解 #思维好题 #图论 #网络流
P1345 Telecowmunication 题目链接 这道题是删点 那我们想办法把它变成删边的题,就是删除某条边和删一个点效果一样 把每个点\(i\)拆成\(i+n\)和\(i\),\(i\)连入边,\(i+n\)连所有出边。 再把\(i\)和\(i+n\)连上一条边。 那么删除\(i\)和\(i+n\)间的边和删除\(i\)点效果一样 就变成了求最小割的题 123456789101112131415161718192021222324 2020-09-16 题解 #图论 #网络流 #最小割