前缀和与差分
cc 提升ing 变优秀ing
有需要搜广推nlp实习生的部门吗?
展开
-
leetcode:995. K 连续位的最小翻转次数(困难,贪心,差分)
题目:分析:在洛谷上应该做过。但是依然没有想出来,看到贪心标签才想起来当时是只管后面,不管前面。 虽然不清楚为啥,仅仅是感觉。这次细细看看题解。本来想直接进行模拟,ok,然后想到了差分。class Solution {public: int minKBitFlips(vector<int>& v, int K) { vector<int> v2(v.size()+2,0); int k=0; int i原创 2021-02-18 11:20:30 · 111 阅读 · 1 评论 -
leetcode:面试题 16.10. 生存人数(差分,中等)
题目:分析:不错,很快就想到了差分。代码:class Solution {public: int maxAliveYear(vector<int>& birth, vector<int>& death) { map<int,int> m; int min_=2000,max_=1000; for(int i=0;i<birth.size();i++) {原创 2020-12-28 15:32:58 · 160 阅读 · 0 评论 -
洛谷:P3397 地毯(普及- ,前缀和)
题目:分析:为什么要用前缀和呢?因为我每次都遍历一下,不如想方设法从起点记录一下个数,最后才去遍历呢。傻了傻了,换成二维的自己就不会了?还不就是多个一维的吗?一定要对区间求个数敏感。代码:#include<bits/stdc++.h>using namespace std;int A[1005][1005];int B[1005][1005];int m,n;int main(){ cin>>m>>n; memset(A,0,sizeof原创 2020-10-14 22:12:25 · 268 阅读 · 0 评论 -
洛谷:P2882 [USACO07MAR]Face The Right Way G(提高+/省选-,差分)
题目:分析:刚开始还以为是同一个方向即可,然而是固定的方向。固定方向的贪心就很明确了,第一个不同方向的进行反转。当一定长度进行反转时,差分,统计之前的反转次数即可,不需要进行实际的反转。代码:...原创 2020-09-17 21:06:50 · 135 阅读 · 0 评论 -
洛谷:P2004 领地选择(前缀和,)
题目:分析:自己想的比较复杂,相同大小之间进行dp,当看到题解先计算从1,1,开始的矩形,突然就想到了在leetcode上做过,再结合图像,很容易发现dp。代码:#include<bits/stdc++.h>using namespace std;int A[1001][1001];long long A1[1001][1001];//从(0,0)开始 int a,b,c;//行 列 方形大小 //自己想的比较复杂,相同大小之间进行dp,//当看到题解先计算从1,1,原创 2020-09-11 18:27:03 · 321 阅读 · 0 评论 -
洛谷:P3406 海底高铁(前缀和与差分,普及/提高- )
题目:分析:首先统计经过每一站的数量,结果T了:#include<bits/stdc++.h>using namespace std;int A[100005];//乘车费 int B[100005];//优惠后的 int C[100005];//工本费 int D[100005];//怎么走 int cnt[100005];int m,n;//站 路程 int main(){ cin>>m>>n; for(int i=0;i<n原创 2020-09-11 13:06:44 · 299 阅读 · 0 评论 -
洛谷:P1115 最大子段和(前缀和与差分,最基础dp)
题目:代码:#include<bits/stdc++.h>using namespace std;int A[200005];//以i结尾的最大和。 int B[200005];int m;int main(){ cin>>m; for(int i=0;i<m;i++) cin>>B[i]; A[0]=B[0]; for(int i=1;i<m;i++) { if(A[i-1]<0) A[i]=B[i]; else A原创 2020-09-10 23:38:22 · 255 阅读 · 0 评论