2 条题解

  • 0
    @ 2025-4-8 19:13:00
    #include<bits/stdc++.h>
    using namespace std;
    #define int long long
    const int inf=1e7+10;
    int n,dp[inf],a[inf],b[inf];
    signed main(){
    	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    	cin>>n;
    	for(int i=1;i<=n;i++)cin>>a[i]>>b[i];
    	for(int i=n;i>=1;i--){
    		dp[i]=max(dp[i+1],dp[i+b[i]+1]+a[i]);
    		//cout<<i<<":"<<dp[i]<<endl; 
    	}
    	cout<<dp[1];
    	return 0;
    }
    
    • 0
      @ 2024-4-8 19:00:42
      n = int(input())
      ls = [0]*(n+5)
      for i in range(n):
          a,b = map(int,input().split())
          ls[i] = [a,b]
      
      dp = [0]*(n+5)
      
      for i in range(n-1,-1,-1):
          dp[i] = dp[i+1]
          c = i + ls[i][1]+1
          dp[i] = max(dp[i],ls[i][0]+(dp[c] if c<n else 0 ))
      
      print(max(dp))
      
      • 1

      信息

      ID
      127
      时间
      1000ms
      内存
      256MiB
      难度
      7
      标签
      递交数
      646
      已通过
      135
      上传者