随笔分类 - 洛谷
摘要:Aimee 马拉车算法,以优秀复杂度求解回文子串 我认为的关键:减少重复计算 用r表示当前已知回文子串右边界,id表示其中心的位置 显然我们当下求解的i应该再id右边 如果这个i在r的左边,那么显然在id的中心中,因该有一个关于i的对称点,并且因为位置的的原因,左边点的回文是已经被算出来了的,那样可
阅读全文
摘要:#include #include #include #include using namespace std; int c[5]; int n,m; int a[10001]; int x; int dp[41][41][41][41]; int find(int i,int j,int k,in
阅读全文
摘要:Aimee 很显然的状压dp $f_{i,j}$表示在i这个集合,最后停在了j时的最小长度 转移就行了 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; int
阅读全文
摘要:Aimee 讨厌之处在于要求花费 花费可以视为上次花费+1 和次数相等 先考虑次数 \(f_i=\frac{n-i}{n}*f_{i+1}+\frac{i}{n}*f_i+1=f_{i+1}+\frac{n}{n-i}\) 那么期望呢 \(g_i=\frac{i}{n}*(g_i+f_i+1)+\f
阅读全文
摘要:Aimee 转移方程很好想$dp_{i,0/1}$表示第i个选(1)或不选(0) 其中$dp_{i,0}=max(dp_{i-1,0},dp_{i-1,1})$ 而$dp_{i,1}=max(dp[j]+sum_i-sum_j),i-j<=k$ 都有$sum_i$,那就成了$dp_{i,1}=max
阅读全文
摘要:Aimee' 这个题目还是很简单的 \(dp_i=\frac{i}{n}*dp_i+1\) 移个项就行了 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; in
阅读全文
摘要:Aimee #很水的小题目 写这个不是因为我做完了题目 而是因为考完试了 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; int n; int t; int
阅读全文
摘要:Aimee 思维难度没有 唯一的剪枝就是从0少的列开始搜索 记录下所有能放的点的坐标,按顺序搜索 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; struct
阅读全文
摘要:Aimee 很水的题目 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; int mx[5]={0,1,-1,0,0}; int my[5]={0,0,0,-1
阅读全文
摘要:Aimeee 事实上每一个数付出了等于自己的值的贡献后,就可以随便动了 那么就是让不动的数在维持不严格不下降后的和最大 (因为那些随便扔啊) #include<iostream> #include <algorithm> #include<cstdio> #include<cstring> usin
阅读全文
摘要:Aimeee 对于本蒟蒻来说,直接写dp太难了 呜呜呜呜呜呜呜呜呜呜呜呜 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> //#define int long long using namespace
阅读全文
摘要:Aimeee 本来是一个很水的单调队列题 但是我拿来练习手写队列 然后就挂了 #include<cstdio> #include<algorithm> #include<cstring> #include<iostream> using namespace std; int head,tail; i
阅读全文
摘要:Aimee 很简单的线性动态规划 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; int n; int m; int dp[10001]; int h[100
阅读全文
摘要:Aimee 记忆化搜索非常好写, 尤其是从一个朴素的搜索开始改造。 sum是要记录的,但是没必要存在状态里 直接统计一下当前节点是第几步之后的方案数 虽然说时间复杂度没有朴素的优美 但是不会MLE啊 #include<iostream> #include<cstdio> #include<cstri
阅读全文
摘要:Aimee 练手 n=int(input()) Ai=[] Ai.append(0) for i in range(1,n+1) : Aim=int(input()) Ai.append(Aim) maxx=-88888888 summ=0 fl=1 for i in range(1,n+1): i
阅读全文
摘要:Aimee 练一下py的函数 zqh=0 def pl(x): for i in range(0,zqh): if yyq[i]==x: return i def find(l,r,ll,rr): if (l>r) or (ll>rr) : return else: yx=pl(ljx[l]) fi
阅读全文
摘要:Ai 练一下手感 yyq=input() s=[int(i) for i in yyq.split()] lmq=[] hgz=[] Ai=0 for i in range(0,3001): lmq.append(0) for i in range(s[0],s[1]+1): # print(i,e
阅读全文
摘要:Aimee def fine(x) : if x==1: return 1 return fine(x-1)*2+2 n=int(input()) print(fine(n))
阅读全文
摘要:这个py的列表默认是空的 还要初始化 scz=input() s=[int(i) for i in scz.split()] yyq=[] ans=0 pl=0 for i in range (0,100001) : yyq.append(0) for i in range (1,s[0]+1):
阅读全文
摘要:py是个神奇的语言 为什么input默认读字符串 为什么range左闭右开 C++可控制性似乎比它高 也可能只是我水平不够用 强制换行和没有一对括号是挺爽的 VSC万岁 scz=input() a=[int(i) for i in scz.split()] #数组还能这么初始化真没想到msplit是
阅读全文

浙公网安备 33010602011771号