12 2017 档案
摘要:【传送门:BZOJ1625】 简要题意: 给出n个宝石,每个宝石重w[i],价值d[i],求出选择若干个宝石使得总重≤M的情况下的最大价值 题解: 背包DP(水题) 设f[j]为总重为j时的最大价值 得到方程f[j]=max(f[j],f[j-w[i]]+d[i])(1<=i<=n,w[i]<=j<
阅读全文
摘要:【传送门:BZOJ1911】 简要题意: 有n个人,每个人都有一个战力值,将这n个人分成若干个段(每个段内的人的编号都是连续的),每个段的初始战力值为每个段内的人的战力值的总和 给出常数a,b,c,而每个段的真正战力值为ax2+bx+c(x为这个段的初始战力值),求出分成若干个段得到的所有段的最大真
阅读全文
摘要:【传送门:BZOJ1834】 简要题意: 给出n个点,m条边的有向图,给出每条边的流量c和费用w(每条边都可以扩增自己的流量,每增加1流量就需要w的花费) 求出从1到n的最大流,并且求出使最大流+k的最小花费 题解: 第一个答案用网络流直接求肯定是没问题 第二个答案就要用费用流来做 首先因为求第一个
阅读全文
摘要:【传送门:BZOJ1787】 简要题意: 给出有n个点的图,n-1条无向边,保证任意两点之间能互相到达,每条边的权值为1,给出m个询问,每个询问输入x,y,z,求出一个点使得三个点到这个点的距离和最短,输出这个点的编号和最短距离和 题解: 终于算是做了一道较大数据结构的题了 n个点,n-1条边其实就
阅读全文
摘要:【传送门:BZOJ2743】 简要题意: 给出一个长度为n的数列,总共有c种不同的数,给出m个询问,每个询问输入l,r,输出数列中l到r中出现的次数大于等于两次的数的个数 题解: BZOJ1878的改版:题解 我们还是用离线+树状数组的方法来做 一样设next[i]为第i位置上的数下一次出现的位置
阅读全文
摘要:【传送门:BZOJ1878】 简要题意: 给出一个长度为n的数列,给出m个询问,每个询问输入l,r,输出数列中l到r的不同的数的个数 题解: 看这数据范围就不能用在线来做,那就只能离线了 很显然就是树状数组 首先将询问按照l从小到大的排序排一遍 设一个数组next,next[i]表示下一个与第i个数
阅读全文
摘要:【传送门:BZOJ1044】 简要题意: 给出n个数,求出最多分成m+1段的最长段的最小值,并且求出能分成最长段最小的情况数 题解: 一道思维题(好吧,就是搞了我一晚上的题) 首先最小值我们可以用二分来搞出来,二分最小值,然后从头开始,一直累加,如果当前累加值加上a[i]超过了二分出来的值的话,就新
阅读全文
摘要:【传送门:BZOJ2434】 简要题意: 给出一个串,然后这个串有28种字符,26个小写英文字母和'B','P'两个字母 我们定义一个模式串(一开始这个串是空的) 假如当前输入的字符是小写英文字母的话,就在模式串的末尾加上这个字母 如果是'B',就把模式串的末尾给去掉 如果是'P',就把当前模式串当
阅读全文
摘要:【传送门:BZOJ1601】 简要题意: 给出n个点,点与点之间相连有代价 每个点都可以成为超级点,但是成为超级点有代价,而与超级点间接或直接相连的点也可以成为超级点 求出n个点都成为超级点的最小代价 题解: 一开始想了想,网络流???结果发现流不通 然后想到可以构造一个虚点,每个点成为超级点的代价
阅读全文
摘要:【传送门:BZOJ1433】 简要题意: 有n个人,给出一个关系图,表示人与人之间的认识关系,其中有若干个学生,每个学生在学校宿舍里都有一张床 有一次放假,有些学生要回家,有些不回家,留在宿舍,那些不回家的学生会把自己认识的人(不一定是学生)带到学校来住,每个人都只会睡在自己直接认识的人的床上,请问
阅读全文
摘要:【传送门:BZOJ2705】 简要题意: 给出一个n,输出Σgcd(i,n)(1<=i<=n) 题解: 首先数据范围惊人,然后要加long long!! 怎么做呢? 就是先求出n的所有因数 设a[i]表示n的第i个因子,f[i]为以第i个因子为最大公约数的个数 然后一般情况下f[i]应该是n/i 但
阅读全文
摘要:【传送门:BZOJ3223】 简要题意: 给出一个长度为n的序列,第i个数为i 给出多个操作,给出l,r,代表将序列中l到r的数翻转 然后输出最后的序列 题解: SPLAY,注意在翻转一个区间后,要打个翻转标记,访问到儿子区间的时候要翻转一下 参考代码:
阅读全文
摘要:【传送门:BZOJ2038】 简要题意: 给出n只袜子,每只袜子都有颜色 有多个询问,每次询问一个区间L,R,求出在这个区间内选出两只相同颜色袜子的概率,以最简分数形式输出(不用化成整数,如果概率为0,则输出0/1) 题解: 接触莫队第一题 我们先假设当前要询问的区间内第一种颜色的袜子有a只,第二种
阅读全文
摘要:【传送门:BZOJ3527】 简要题意: 给出n个数q[i],给出F[j]的定义: $$F[j]=\sum_{i<j}\frac{q[i]q[j]}{(i-j)^2}-\sum_{i>j}\frac{q[i]q[j]}{(i-j)^2}$$ 令E[i]=F[i]/q[i],求E[i] 题解: 最近刷
阅读全文
摘要:【传送门:BZOJ1877】 简要题意: 给出n个点,起点为1,终点为n,给出m条边,每条边都有费用 每个点只能走一次,请问最多有多少次机会能从起点到终点,并且求出这几次的最小费用和 题解: 一开始还担心有环,实际上没有 最小费用最大流 我们将每个点(除了源点和汇点)都拆成两个点x,y,并且x,y之
阅读全文
摘要:【传送门:BZOJ1090】 简要题意: 给出一个字符串,可以将相邻的重复的子串合并在一起,如:abaaaabba,可以合并为ab4(a)bba 注意,数字和括号均算作字符,数字有多少位就相当于有多少个字符 请问怎么合并才能使字符串的长度最小(也可以不合并) 题解: 区间DP,本来想着会T,结果应该
阅读全文
摘要:【传送门:BZOJ2565】 简要题意: 给出一个串,求出一个最长的子串,满足能够分成两个回文串 题解: 这题,果断马拉车!!(Manacher) 首先对原串进行Manacher,然后同时记录两个数组:llen,rlen llen[i]表示以第i位为开头的最长回文串的长度,rlen[i]表示以第i位
阅读全文
摘要:【传送门:BZOJ1610】 简要题意: 在一个平面直角坐标系上,给出n个点,可以选择两个点来连成一条直线,求出有多少种互不平行的直线 题解: 用斜率公式,两个点,设两个点的坐标为x1,y1,x2,y2 那么这两个点所连成的直线的斜率为(y1-y2)/(x1-x2)或(y2-y1)/(x2-x1)
阅读全文
摘要:【传送门:BZOJ4554】 简要题意: 给出n*m的矩阵,炸弹的炸弹范围是自己所在行和列(如果碰到'#'的话,就会被挡住),可以在'*'点上放炸弹,'#'表示不能放炸弹而且炸弹不能穿透它,'x'表示不能放炸弹但是炸弹可以穿透它,请问放最多炸弹使得每个炸弹都不能炸到其他炸弹 题解: 二分图匹配 因为
阅读全文
摘要:【传送门:BZOJ3174】 简要题意: 给出n个人,给出每个人的身高a[i],手长b[i],他们被困在了高为h的井里,他们可以搭人梯,人梯的长度为(假设当前人梯的人的编号为1到k的话) a[1]+a[2]+a[3]+...+a[k]+h[k],如果人梯长度大于h,则第k个人能逃走,逃走了之后就不会
阅读全文
摘要:【传送门:BZOJ3192】 简要题意: 给出两个堆,两个堆里的所有数保证没有相同的,可以将其中一个堆的堆顶移到另一个堆的堆顶,花费为1,但是如果当前要移动的数为两个堆的最大值,则不需要花费,并且将这个数删除,求出将所有数删除的最小花费 题解: 其实可以将两个堆合并成一个序列,其中第一个堆要倒着来,
阅读全文

浙公网安备 33010602011771号