摘要: 一条路径耗费的 体力值 是路径上相邻格子之间 高度差绝对值 的 最大值 决定的。 请你返回从左上角走到右下角的最小 体力消耗值 思路:f[i][j]记录走到(i,j)时的最小体力消耗(注意是途中的最大消耗),可能一个点会过多次(包括终点) 注:如果单纯以abs(g[tx][ty]-g[t.x][t. 阅读全文
posted @ 2020-10-25 20:02 童年の波鞋 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 求数组中前后缀可互相包含的集合对的数量 #include<bits/stdc++.h> #define rep1(i,s,e) for(register int i=s;i<=e;i++) #define rep2(i,e,s) for(register int i=e;i>=s;i--) usin 阅读全文
posted @ 2020-10-25 18:50 童年の波鞋 阅读(109) 评论(0) 推荐(0) 编辑
摘要: N个不同的正整数,找出由这些数组成的最长的等差数列(子序列) 3 ⇐ N ⇐ 10000 这题起初被数据吓得不敢用$n^2$解法,可是不用又怎么解呢?一气之下...MLE结束 **思路:**f[i][d]表示前i个数中公差为d的最长等差数列的长度,如果在a[i]-a[j]==d,j位置和i位置形成公 阅读全文
posted @ 2020-10-25 15:49 童年の波鞋 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 一个长度为N的数组A,从A中选出若干个数,使得这些数的和是N的倍数。 2<=N<=50000;0<A[i]<=10^9 **思路:**A[i]对N取模的结果为1~N-1(共N-1个数),而A有N个数,这就说明这些模N的数中至少有两个数是一样的(抽屉原理保证了数据一定有解);然后就是分两种情况: 前缀 阅读全文
posted @ 2020-10-25 14:34 童年の波鞋 阅读(96) 评论(0) 推荐(0) 编辑