随笔分类 - CodeForces
摘要:1 #include <iostream> 2 #include <queue> 3 #include <stack> 4 #include <cstdio> 5 #include <vector> 6 #include <map> 7 #include <set> 8 #include <bits
阅读全文
摘要:题意:一个b位的数Y,每一位的数可以从题目给的n个数里面选,问有多少种方案使得Y mod x == k? 思路:数位dp,另dp[i][k]表示前i位模x结果为k的方案数,则转移方程为:dp[i][(k*10+j)%x]+=dp[i-1][k]*num[j](0<=j<=9),num[j]为题目所给
阅读全文
摘要:题意:n个人,每个人ci的金币,每天最富有的人都会给最贫穷的人1金币,问k天后最富有人和最贫穷的人差了多少金币。 思路:不妨把穷人和富人放在两个时空中step1: 假设富人不用掏钱,每天给最穷的人1枚金币。求出最穷的人金币数:xstep2: 假设穷人得不到钱,每天富人有1枚金币不翼而飞。求出最富的人
阅读全文
摘要:题意:给定一个小写字母组成的字符串和每个小写字母最多存在长度为a[i]的子串中,输出满足条件的分割方案数,并输出所有方案中最长子串的长度和最少的分割次数。 思路:另dp[i]表示在第i个字符后面有一个横杠的方案数,从第i个往前枚举前一个横杠的位置j,设从i到合法的j的子串长度为l,则l=min(l,
阅读全文
摘要:题意:给定一颗n节点的树以及每个节点的权值,另dis(u,v)表示节点u到v路径上的异或和,求不大于i的节点与i组成的有序对的距离的和(1<=i<=n)。 思路:位运算的话大多可以想到按位拆分,统计每一位对答案的贡献,因为每一位的运算都是独立的。所以按位枚举,假设当前是第b位,则dp[x][0]表示
阅读全文
摘要:题意:一个n边形,给定一个数字k,从顶点1开始每次隔k个点连一条线,每次输出这个n边形被分割成多少块区域。 思路:本次解题的关键是明确,每次新连一条线L,则增加的分割区域个数等于L穿过的线的条数+1。这样的话我们用树状数组维护,便于查询和更新信息。如果点u和点v之间连一条线,则a[u]++,a[u+
阅读全文
摘要:题意:给定一个01串,一个有效的n切割定义如下:一个横杠代表一次切割,第一条横杠前面的01串不算,最后一条横杠后面的01串不算,将两个横杠中的01串转化成十进制数字,假设这些数字的最大值是MAX且这些数字囊括了1-MAX的所有数字,则称为一次有效切割。求2~n+1次有效切割的切法。 思路: 由于题目
阅读全文
摘要:题意:给你一个集合,让你找到一个最大的子集,使得子集里面的元素的gcd!=1,输出子集的元素的个数。 思路:先将集合里面的元素哈希,再线性筛。 PS:明明以前做过类似的题的,结果又忘了,卡了好久最后打表过的。 1 #include <iostream> 2 #include <queue> 3 #i
阅读全文
摘要:题意:喜马拉雅山地区有有m种小精灵和n个道馆,每个道馆里面有g[i]个小精灵。这个地方存在一个训练营,能够进化小精灵,进化的条件限制是:f(x)=y当且仅当x在每个道馆中的数量等于y,求可以满足条件的进化方案数。 思路:根据题意来,如果能将所有的小精灵分成若干个集合x1,x2,...,xk,使得每个
阅读全文
摘要:题意:给定n个点,m条边,以及起点s,终点t,问你图中是否存在s->t的最短路为L,其中权值为0的可以任意修改。 思路:对给定的边分为2类,权重不为0的直接扔进去建图,权重为0的边先存起来。接着跑一遍堆优化的dij,如果dis[t]小于L,那么无论怎么修改权重0的边都没有办法凑出最短路L; 如果di
阅读全文
摘要:D. Fix a Tree time limit per test 2 seconds memory limit per test 256 megabytes A tree is an undirected connected graph without cycles. Let's consider
阅读全文

浙公网安备 33010602011771号