头像

北冬


访客:443

离线:8个月前



北冬
8个月前
#include<bits/stdc++.h>
using namespace std;
int num[100005]={0};
int s[100005]={0};
int a[100005][2]={0};
int main(){
    int n,m,i;
    cin>>n>>m;
    for(i=1;i<=n;i++) cin>>num[i];
    for(i=1;i<=n;i++) s[i]=s[i-1]+num[i];//预处理;
    for(i=1;i<=m;i++)
        cin>>a[i][1]>>a[i][2];

    for(i=1;i<=m;i++){
        cout<<s[a[i][2]]-s[a[i][1]-1];
        cout<<endl;
    }
    //ans=a[r]-a[l-1];
    //时间复杂度为n+2m; 
    return 0;
}



北冬
8个月前
#include<bits/stdc++.h>
using namespace std;
int num[100005]={0};
int s[100005]={0};
int a[100005][2]={0};
int main(){
    int n,m,i;
    cin>>n>>m;
    for(i=1;i<=n;i++) cin>>num[i];
    for(i=1;i<=n;i++) s[i]=s[i-1]+num[i];//预处理;
    for(i=1;i<=m;i++)
        cin>>a[i][1]>>a[i][2];

    for(i=1;i<=m;i++){
        cout<<s[a[i][2]]-s[a[i][1]-1];
        cout<<endl;
    }
    //ans=a[r]-a[l-1];
    //时间复杂度为n+2m; 
    return 0;
}



北冬
8个月前
#include<bits/stdc++.h>
using namespace std;
int num[100005]={0};
int d[100005]={0};
int main(){
    int n,m,i,l,r,c;
    cin>>n>>m;
    for(i=1;i<=n;i++) cin>>num[i];
    for(i=1;i<=n;i++) d[i]=num[i]-num[i-1];
    //预处理;
     for(i=1;i<=m;i++){
        cin>>l>>r>>c;
        d[l]+=c;
        d[r+1]-=c;}//差分维护;

    int ans=0;
    for(i=1;i<=n;i++){
        ans+=d[i];
        cout<<ans<<" ";
    } //用前缀和求出每一个数; 
        return 0;
}


活动打卡代码 AcWing 99. 激光炸弹

北冬
8个月前

include[HTML_REMOVED]

using namespace std;
int a[5005][5005]={0};
int main(){
int n,r,x,y,v;
int i,j;
cin>>n>>r;
int m;
m=5000;
m;
for(i=1;i<=n;i
){
cin>>x>>y>>v;
a[x+1][y+1]+=v;
}

for(i=1;i<=m;i++)
 for(j=1;j<=m;j++)
    a[i][j]+=a[i-1][j]+a[i][j-1]-a[i-1][j-1];
    //预处理;

//枚举所有正方形,只需要枚举其中一个点;
int ans;
ans=0;
for(i=0;i<=m-r;i++) 
 for(j=0;j<=m-r;j++){
  ans=max(ans,a[i+r][j+r]-a[i+r][j]-a[i][j+r]+a[i][j]);

 }

 cout<<ans;
 return 0;}


活动打卡代码 AcWing 100. IncDec序列

北冬
9个月前

include[HTML_REMOVED]

using namespace std;
int num[100005]={0};
int d[100005]={0};
int main(){
int n,i;
cin>>n;
for(i=0;i<=n;i) cin>>num[i];
//差分数组;
for(i=1;i<=n;i
) d[i]=num[i]-num[i-1];

int zheng,fu;
zheng=0;
fu=0;
for(i=1;i<=n++){
if(d[i]>0 zheng+=d[i];
else fu+=d[i];}

cout<<max(zheng,abs(fu);
cout<<abs(zheng-fu);
return 0;}