随笔分类 - 解题报告
摘要:题目链接:HDU-2457 题意:给出一些不合法的模式DNA串,给出一个原串,问最少需要修改多少个字符,使得原串中不包含非法串。 思路:沿着AC自动机dp,dp[i][j]表示前i个字符,当前为状态j的时候,需要修改的最少字符数。 代码:
阅读全文
摘要:题目链接:HDU-2825 题意:给出m个单词,要构造出满足包含其中大于等于k个单词的字符串,字符只包括小写字母,问长度为n的这样的串有多少个。 思路:令dp[i][j][k]表示当前已经构造了i个字符,在ac自动机上跑到结点j,且单词状态为k情况下的方案数。从dp[i][j][k]向dp[i+1]
阅读全文
摘要:题目链接:UVA-11361 题意:给定a,b,k。求在a和b之间,有多少数字满足自身是k的倍数,且该数字的各数位和也是k的倍数。 思路:典型的数位dp,需要注意的是各数位和m1的范围,否则无法记忆化,可以熟悉一下数位dp的模板。 代码: 1 #include<cstdio> 2 #include<
阅读全文
摘要:题目链接:UVA 10883 题意:给定n个数,每相邻两个数取平均数,重复这个过程直到只剩一个数。求最后的数的值。 思路:可以发现答案应该是\(\frac{\sum_{i=0}^{n-1} C_{n-1}^i * d[i]}{2^{n-1}}\)。难点在于n最大值为50000。 所以求解过程中要用l
阅读全文
摘要:题目链接:Gym - 101081K 题意:给n个箱子,每个箱子有一个重量W和一个承重R,表示它上面能放最多R-W的重量。问最多能把多少箱子堆到一堆。 思路:发现在一堆箱子里,两个箱子交换位置,对其他所有箱子没有影响。 所以我们先构造偏序关系,考虑两个箱子i和j,假设Ri<Rj。 那么我们发现假如R
阅读全文
摘要:题目链接:UVA-11038 题意为给定n和m,求n和m之间(包含)的所有数包含的0的个数。 思路是,用cal(x)表示小于等于x的数包含的0的个数。则答案为cal(n)-cal(m-1)。 再把求cal(x)转化为求\(\sum_i 在第i位为0的小于x的数的个数 \)。 要求在第i位为0的数的个
阅读全文
摘要:题目链接:HOJ-1108 题意为给定N和M,找出最小的K,使得K个N组成的数能被M整除。比如对于n=2,m=11,则k=2. 思路是抽屉原理,K个N组成的数modM的值最多只有M个。 具体看代码:
阅读全文
摘要:题意为给出一棵n个节点的树,这棵树的每条边有一个权值,这个权值只可能是0或1。 在一局游戏开始时,会确定一个节点作为根。 当一方操作时,他们需要先选择一个不为根的点,满足该点到其父亲的边权为1; 然后找出这个点到根节点的简单路径,将路径上所有边的权值翻转(即0变成1,1 变成0 )。 当一方无法操作
阅读全文
摘要:题意是黑板上有n个数\(S_i\)。每次操作可以把其中一个数减1或者将两个数合并为一个数。一个数变为0时,则不能再对其操作。 思路是发现最大的可操作次数为\( \sum S_i\)+(n - 1)。\( \sum S_i\)是把所有数消除需要的操作数。(n-1)表示我们最多可以合并(n-1)次。 同
阅读全文
摘要:题目链接:UVALive - 3668 题目大意为给定n堆石子,每次的操作是选择三个数i<j<=k,从i中拿一枚石子,在j和k中分别放入一枚石子。不能操作者输。求先手是否能赢,若可以,则输出字典序最小的第一步操作。 思路是把在每个位置上的每颗石子当成一个游戏。 用SG[i]表示在第i堆中的一颗石子的
阅读全文
摘要:题目链接:UVA-33478 题意为给定n个数,求这n个数能组成的所有不同的排列组成的数字的和。 思路:发现对于任意一个数字,其在每一位出现的次数是相同的。换言之,所有数字的每一位相加的和是相同的。 所以我们只需求出这个“和”即可。 考虑任意一位i,假设我们在i位放置x,则对应\( (n-1)! /
阅读全文
摘要:题目链接:UVA-10892 题意为给定一个数n,问有多少组不同的数对<a,b>的lcm等于n。看了AC,∑ndless的题解,直接摘抄了。 代码:
阅读全文
摘要:题目链接:POJ-3260 题意是一个人买东西,有n种纸币,面额为v[i],数量为c[i]。同时售货员也有这些纸币,数量为无限。要买价值为t的东西,希望给“钱用的纸币数和着钱用的纸币数的和”最少。 思路很显然是完全背包和多重背包各处理售货员和这位老哥。这个题给出所有v[i]<=120,这一点很有迷惑
阅读全文
摘要:题目链接:HDU-1255 题目是给定平面上若干矩形,求出被这些矩形覆盖过至少两次的区域的面积. HDU-1542的代码稍微改改即可。 代码如下:
阅读全文
摘要:题目链接:HDU-1542 题意为给定许多个矩形,求面积的并。 基本的思路是首先把所有矩形按照下边高度从下往上排序,然后依次计算每两条边(上下边)之间夹的面积大小。 如图,每条绿色的线叫做扫描线。我们想要做到的事情是每次求出两条扫描线间的面积,如图中序号。显然,假设有n个矩形,则有2n条扫描线,我们
阅读全文
摘要:原题链接为:HDU-3333 题意是给一组数,给定m个区间查询,询问这个区间中不同的数的和(即所有重复出现的数只当作一个数)。 首先这是一道数据结构的题。这道题的关键在于离线化处理后用树状数组处理。把所有询问离线之后,按照右边界排序,然后依次处理。 处理的办法是依次向右扫描,假设现在扫描到i处,则首
阅读全文

浙公网安备 33010602011771号