摘要:
[题目链接](https://share.weiyun.com/9b72b3b07a3b1d8f221bf7f1dd554985) T1 60分可以写一些特判和暴力。 100分dp,解释一下dp的做法。 我们用f[i][j]表示跳了i次,到第j层楼然后跳下去,需要的最小花费。 还需要知道一个策略,如果跳过的楼是一样的,那么以高度升序或者降序肯定比乱跳更优。 那么我们先将所有的楼按照高度升序或者... 阅读全文
摘要:
https://www.luogu.org/problem/show?pid=1314#sub 看到这个题,想到二分是不难的,但是如果就直接上二分,简单暴力地求和,就会超时。O(mnlogw) 观察题目,区间可能是重合的或者叠盖,就考虑到前缀和来优化,将m*n缩减到m+n。 最终复杂... 阅读全文
摘要:
大暴搜题; 搜索顺子,然后把剩下的牌按照四带,三带,对牌,单牌打出; 顺子有单顺,双顺,三顺。我一开始处理时把大小王分开处理了,不知啥原因不对,只有30 fen; 然后把大小王看做对牌后,就ac了。#include#include#include#include#include#in... 阅读全文
摘要:
https://www.luogu.org/problem/show?pid=1108#sub 第一问,求一个最长的下降子序列就可以了。 难点在于第二问,解决方法: 设f[i]表示到i这一位置,最长下降子序列的最大方案数; 当构成序列相同时,可以看出……呃,举个例子吧: ... 阅读全文
摘要:
评测 f[i][j]表示a中前i个字符转化为b中前j个字符最短编辑距离。结果就应是f[l1][l2] 赋初值:a串空时,对应b中j个字符时最短距离就是j(插入j个),f[0][i]=i;(i#include#include#includeusing namespace std;int... 阅读全文
摘要:
https://www.luogu.org/problem/show?pid=1026#sub 点:同一字母不能重复用做首字母。 首先,处理出数组w[i][j] ,表示从i到j有多少个单词(当以同一个字母为首字母时,越短越好)。 然后,求出d[i],表示以i开头的最短单词的结尾的位置... 阅读全文
摘要:
看到这个题,想到了二分答案。用二分的方法枚举最小距离x,和前面石块之间距离(变化)大于这个距离的石块就去掉,把去掉的石块数和m作比较,来变换x,最后找到答案; 但是,第一次写的时候,没有想到如果前面的石块被去掉,那么后面的石块在判断距离时,就会受到影响,并不是一成不变的。结果... 阅读全文
摘要:
由题目可得式子:m*t-n* t=y-x+q * l - - -> (n-m)*t+q*l=x-y令a=n-m,b=lc=x-y; a*t+b*l=c 求最小的正t令z=gcd(a,b) 先求a*t+b*q=z ① 当然如果c/z!=0就无解了 得出一组解t... 阅读全文
摘要:
https://www.luogu.org/problem/show?pid=1290#sub 这题目好像辗转相除。 每次的两个数 a , b (a>b) 分为两种情况: 一, 此时状态为: a/b>1 ,那最完美的做法是取走(a/b-1)*b,那么剩下的两个数就为(a%b+b,b... 阅读全文
摘要:
题目描述求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解。(保证有解)该方程等价于=>a* x-b* y=1 => a* x+b* y=1 (1/GCD(a,b)==0,即a,b互质)#include#include#define LL long longusi... 阅读全文