2 条题解

  • 0
    @ 2025-3-23 15:42:19
    #include<bits/stdc++.h>
    using namespace std;
    inline int read()
    {
    	int x = 0, f = 1;
    	char c = getchar();
    	while (c < '0' || c > '9')
    	{
    		if (c == '-') f = -1;
    		c = getchar();
    	}
    	while (c >= '0' && c <= '9')
    	{
    		x = x * 10 + c - '0';
    		c = getchar();
    	}
    	return x * f;
    }
    int a[6000000];
    int arr[6000000];
    int main() {
    	int n,q,min1=100000000;
    	n=read();
    	q=read();
    	for(int i=1; i<=n; i++) {
    		a[i]=read();
    		arr[i]=a[i]-a[i-1];
    	}
    	for(int i=1; i<=q; i++) {
    		int x,y,z;
    		x=read();
    		y=read();
    		z=read();
    		arr[x]+=z;
    		arr[y+1]-=z;
    
    	}
    	for(int i=1; i<=n; i++) {
    		arr[i]+=arr[i-1];
    		min1=min(arr[i],min1);
    	}
    	cout<<min1;
    	return 0;
    }
    
    
    • 0

      本题在快读的情况下1,3依旧过不了,选用C++14(O2) 即可。

      #include<bits/stdc++.h>
      using namespace std;
      int d[5000001];
      int a[5000001];
      inline int read()
      {
      int x = 0, f = 1;
      char c = getchar();
      while (c < '0' || c > '9')
      {
      if (c == '-') f = -1;
      c = getchar();
      }
      while (c >= '0' && c <= '9')
      {
      x = x * 10 + c - '0';
      c = getchar();
      }
      return x*f;
      }
      int main()
      {
      int n,p,x,y,z,i,mink;
      n=read();p=read();
      for(i=1;i<=n;i++)
      {
      a[i]=read();
      }
      for(i=1;i<=n;i++)
      {
      	d[i]=a[i]-a[i-1];
      }
      for(i=0;i<p;i++)
      {
      	x=read();
      	y=read();
      	z=read();
      	d[x]+=z;
      	d[y+1]-=z;
      }
      mink=100000;
      for(i=1;i<=n;i++)
      {
      	a[i]=a[i-1]+d[i];
      	mink=min(mink,a[i]);
      }
      cout<<mink;
      return 0;
      }
      
      • 1

      信息

      ID
      810
      时间
      1000ms
      内存
      256MiB
      难度
      8
      标签
      递交数
      55
      已通过
      10
      上传者