摘要:
【题意】 【分析】 这个题目也用到了平方拆边的技巧,其次这里有一个保证参与学生最多的限制 这个我们可以贪心来解决,也就是说每一个学生我们先让他选一个,剩下的只有在能带给我收益的情况下才进行增广 这样我们就得到了如下的建图方式 学习小组向T建C,3C,5C,.... S向学生连(k,0)的边 ,让学生 阅读全文
摘要:
【题意】 坐标系中,有n个建筑,给定坐标和建筑内人数和m个避难点,给定坐标和容量 定义每个人走的距离为|x1-x2|+|y1-y2|+1,问给定的方案是否是最优方案 【分析】 费用流消圈例题 我们按照给定方案建立残量网络,寻找负环进行增广即可 正常的消圈算法是不断找负环直到没有为止,但这道题目只要求 阅读全文
摘要:
【题意】 【分析】 很明显这种决策的选择我们可以用万能的网络流解决 然后呢,我们发现点数较多,需要用权值线段树合并来优化建图 那么就结束了。。。 【代码】 #include<bits/stdc++.h> using namespace std; typedef long long ll; const 阅读全文
摘要:
【题意】 每个厨师做每道菜的时间不同,每个菜有一定的需求,求所有菜被做完的等待时间之和 这个一道菜的等待时间是这个厨师开始做一道菜一直到他这道菜做完的时间,这个比较坑,开始理解错了 【分析】 首先考虑每道菜的作为第1,2,3...被做的贡献是递增的 我们可以把厨师拆点,分成做第i道菜的厨师,然后对于 阅读全文
摘要:
【题意】 【分析】 这道题目可以说集结了蛮多套路 首先就是平方拆边,平方拆边指的是当贡献是平方这种形式的时候,我们可以增量构造边,保证每次走的边递增 比如$(a+1)^2-a^2=2a+1$,那么我们建的边就是a,3a,5a.....,这样既保证了从小到大依次走,也保证了平方的形式 第二个套路就是费 阅读全文
摘要:
【题意】 【分析】 这个就是推一波式子 最后这个式子的转换比较套路 【代码】 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=1e6+5; int np[maxn],p[maxn],c 阅读全文
摘要:
【题意】 【分析】 首先我们可以简单容斥一下 设$calc(x,y)=\sum_{i=1}^{x}\sum_{j=1}^{y}[gcd(i,j)=1]$ 那么$ans=calc(b,d)-calc(a-1,d)-calc(c-1,b)+calc(a-1,c-1)$ 然后求$calc(x,y)$的套路 阅读全文
摘要:
【题意】 【分析】 设$f_i$表示循环节长度为i的字符串的个数 设$g_i$表示循环节长度为i的因数的字符串个数 容易求出$g_i=26^i$,因为所有长度为i的字符串的循环节长度一定都是i的因数 然后我们利用莫比乌斯反演可以求出$f_n=\sum_{d|n}g(d)\mu(n/d)$ 【代码】 阅读全文