随笔分类 - 思维
POJ 3666 Making the Grade (DP)
摘要:题意:输入N, 然后输入N个数,求最小的改动这些数使之成非严格递增即可,要是非严格递减,反过来再求一下就可以了。 析:并不会做,知道是DP,但就是不会,菜。。。。d[i][j]表示前 i 个数中,最大的是 j,那么转移方程为,d[i][j] = abs(j-w[i])+min(d[i-1][k]);
阅读全文
POJ 3671 Dining Cows (DP,LIS, 暴力)
摘要:题意:给定 n 个数,让你修改最少的数,使得这是一个不下降序列。 析:和3670一思路,就是一个LIS,也可以直接暴力,因为只有两个数,所以可以枚举在哪分界,左边是1,右边是2,更新答案。 代码如下:
阅读全文
POJ 3670 Eating Together (DP,LIS)
摘要:题意:给定 n 个数,让你修改最少的数,使得它变成一个不下降或者不上升序列。 析:这个就是一个LIS,但是当时并没有看出来。。。只要求出最长LIS的长度,用总数减去就是答案。 代码如下:
阅读全文
UVaLive 7269 Snake Carpet (找规律,模拟)
摘要:题意:给定一个数字n,表示有n条蛇,然后蛇的长度是 i ,如果 i 是奇数,那么它只能拐奇数个弯,如果是偶数只能拐偶数个,1, 2除外,然后把这 n 条蛇, 放到一个w*h的矩阵里,要求正好放满,让你输出一个解,如果没有,输出0 0. 析:这个题目是找规律,先画一下前几个,画到第7个,就应该能找到规
阅读全文
HDU 4463 Outlets (最小生成树)
摘要:题意:给定n个点坐标,并且两个点已经连接,但是其他的都没有连接,但是要找出一条最短的路走过所有的点,并且路线最短。 析:这个想仔细想想,就是应该是最小生成树,把所有两点都可以连接的当作边,然后按最小生成树,写就OK了。 代码如下:
阅读全文
CodeForces 705C Thor (模拟+STL)
摘要:题意:给定三个操作,1,是x应用产生一个通知,2,是把所有x的通知读完,3,是把前x个通知读完,问你每次操作后未读的通知。 析:这个题数据有点大,但可以用STL中的队列和set来模拟这个过程用q来标记是哪个应用产生的,用set来记录是第几个通知. 代码如下:
阅读全文
CodeForces 705B Spider Man (水题)
摘要:题意:给定 n 个数,表示不同的环,然后把环拆成全是1,每次只能拆成两个,问你有多少次。 析:也不难,反正都要变成1,所以把所有的数都减1,再求和即可。 代码如下:
阅读全文
UVa 11971 Polygon (数学,转化)
摘要:题意:一根长度为n的木条,随机选k个位置将其切成k+1段,问这k+1段能组成k+1条边的多边形的概率。 析:这个题,很明显和 n 是没有任何关系的,因为无论 n 是多少那切多少段都可以,只与切多少段有关。然后我们要转化一下,不能直接做,因为不好做。 转化为一个圆上选 m+1 个点,能不能组成多边形,
阅读全文
UVa 10900 So you want to be a 2n-aire? (概率DP,数学)
摘要:题意:一 个答题赢奖金的问题,玩家初始的金额为1,给出n,表示有n道题目,t表示说答对一道题目的概率在t到1之间,每次面对一道题,可以选择结束游戏, 获得当 前奖金;回答下一道问题,答对的概率p在t到1之间,答对的话奖金翻倍,答错的话结束游戏,没有奖金,求玩家赢的奖金的期望值的最大值。 析:首先是求
阅读全文
HDU 2045 不容易系列之(3)—— LELE的RPG难题 (递推)
摘要:题意:略。 析:首先是假设前n-2个已经放好了,那么放第 n 个时,先考虑一下第 n-1 放的是什么,那么有两种情况。 如果n-1放的是和第1个一样的,那么第 n 个就可以在n-2的基础上放2个,也就是2 * f(n-2),也就是说,因为第n-1和第1个一样, 所以第 n 个有两种(不和第1个样的其
阅读全文
HDU 2050 折线分割平面 (递推)
摘要:题意:略。 析:多写几个就找到规律了,第1条是2,2条时是7个,3条时是16,4条时是29,。。。。 那么规律就出来了2 * n * n + 1 - n; 也可以递推,第n条折线的两条边都与前n-1条折线的所有边都不平行,因为他们都是相交的;第n条折线的第一条边要与前n-1条折线的2*(n-1)条边
阅读全文
HDU 5441 Travel (并查集+数学+计数)
摘要:题意:给你一个带权的无向图,然后q(q≤5000)次询问,问有多少对城市(城市对(u,v)与(v,u)算不同的城市对,而且u≠v)之间的边的长度不超过d(如果城市u到城市v途经城市w, 那么需要城市u到城市w的长度e1≤d,同时城市w到城市v的长度e2≤d)。 析:一开始的时候,题意都读错了,怎么看
阅读全文
HDU 4597 Play Game (DP,记忆化搜索,博弈)
摘要:题意:Alice和Bob玩一个游戏,有两个长度为N的正整数数字序列,每次他们两个,只能从其中一个序列,选择两端中的一个拿走。他们都希望可以拿到尽量大的数字之和, 并且他们都足够聪明,每次都选择最优策略。Alice先选择,问最终Alice拿到的数字总和是多少? 析:很明显的一个博弈题,但是用记忆化搜索
阅读全文
HDU 4599 Dice (概率DP+数学+快速幂)
摘要:题意:给定三个表达式,问你求出最小的m1,m2,满足G(m1) >= F(n), G(m2) >= G(n). 析:这个题是一个概率DP,但是并没有那么简单,运算过程很麻烦。 先分析F(n),这个用DP来推公式,d[i],表示抛 i 次连续的点数还要抛多少次才能完成。那么状态转移方程就是 d[i]
阅读全文
HDU 4497 GCD and LCM (数学,质数分解)
摘要:题意:给定G,L,分别是三个数最大公因数和最小公倍数,问你能找出多少对。 析:数学题,当时就想错了,就没找出规律,思路是这样的。 首先G和L有公因数,就是G,所以就可以用L除以G,然后只要找从1-(n=L/G),即可,那么可以进行质因数分解,假设: n = p1^t1*p2^t2*p3^t3;那么x
阅读全文
CodeForces 534C Polycarpus' Dice (数学)
摘要:题意:第一行给两个数,n 和 A,n 表示有n 个骰子,A表示 n 个骰子掷出的数的和。第二行给出n个数,表示第n个骰子所能掷出的最大的数,这些骰子都有问题, 可能或多或少的掷不出几个数,输出n个骰子掷不出的数的个数。 析:我们只要考虑两个极端就好,考由其他骰子投出的最大值和最小值,还有自身在最大值
阅读全文
CodeForces 534B Covered Path (水题)
摘要:题意:给定两个速度,一个一初速度,一个末速度,然后给定 t 秒时间,还每秒速度最多变化多少,让你求最长距离。 析:其实这个题很水的,看一遍就知道怎么做了,很明显就是先从末速度开始算起,然后倒着推。 代码如下:
阅读全文
UVa 1620 Lazy Susan (找规律)
摘要:题意:给 n 个数,每次可以把4个连续的数字翻转,问你能不能形成1-n的环状排列。 析:找一下奇偶性,写几个数试试,就会找到规律。 代码如下:
阅读全文
UVaLive 7512 November 11th (思维漏洞)
摘要:题意:给定n*m个座椅,然后有b个是坏的,要做人,并且两个人不能相邻,问你最多坐多少人,最少坐多少人。 析:这个题其实并不难,只要当时一时没想清楚,结果就一直WA,就是最少的情况时,其实一个人可以占三个座位,而不是两个,就是这一点没想清楚,其他的就简单了。 代码如下:
阅读全文
UVaLive 7503 Change (坑题。。。。。。)
摘要:题意:给定两个人民币,问你花最少钱保证能够凑出另一个价格。 析:这个题最大的坑就是在,并一定是一次就凑出来,可以多次,然后就可以想了,如果要凑的数和1有关,特判,如果是2倍数,0.01就够了,否则就是0.01. 代码如下:
阅读全文
浙公网安备 33010602011771号