9 条题解

  • 1
    @ 2024-4-15 21:40:55
    #include<bits/stdc++.h>
    using namespace std;
    long long cf[100001],n,m,a[100001],x,y,z,ans;
    int main(){
    cin>>n>>m;
    cin>>a[1];
    for(int i=2;i<=m;i++){
    cin>>a[i];
    if(a[i]>a[i-1]){
    cf[a[i-1]]++;
    cf[a[i]]--;
    }else{
    cf[a[i-1]]--;
    cf[a[i]]++;
    }
    }
    for(int i=1;i<n;i++){
    a[i]=a[i-1]+cf[i];
    cin>>x>>y>>z;
    ans+=min(a[i]*x,z+y*a[i]);
    }
    cout<<ans;
    return 0;
    
    • 0
      @ 2026-4-5 12:47:58
      #include<bits/stdc++.h>
      using namespace std;
      int p[100005],a[100005],b[100005],c[100005];
      long long sum,ans[100005];
      int main(){
      	int n,m;
      	cin>>n>>m;
      	for(int i=1;i<=m;i++){
      		cin>>p[i];
      	}
      	for(int i=1;i<n;i++){
      		cin>>a[i]>>b[i]>>c[i];
      	}
      	for(int i=1;i<=m-1;i++){
      		ans[min(p[i],p[i+1])]++;
      		ans[max(p[i],p[i+1])]--;
      	}
      	for(int i=1;i<=n;i++){
      		ans[i]+=ans[i-1];
      	}
      	for(int i=1;i<n;i++){
      		sum+=min(a[i]*ans[i],(b[i]*ans[i]+c[i]));
      	}
      	cout<<sum<<endl;
      	return 0; 
      }
      
      
      • 0
        @ 2025-7-29 19:18:17

        #include #include #include using namespace std;

        int main() { ios::sync_with_stdio(false); cin.tie(0);

        int N, M;
        cin >> N >> M;
        
        vector<int> P(M);
        for (int i = 0; i < M; i++) {
            cin >> P[i];
        }
        
        vector<int> A(N - 1), B(N - 1), C(N - 1);
        for (int i = 0; i < N - 1; i++) {
            cin >> A[i] >> B[i] >> C[i];
        }
        
        // 统计每段铁路被经过的次数
        vector<int> count(N - 1, 0);
        for (int i = 1; i < M; i++) {
            int start = min(P[i - 1], P[i]) - 1;
            int end = max(P[i - 1], P[i]) - 1;
            for (int j = start; j < end; j++) {
                count[j]++;
            }
        }
        
        long long total = 0;
        for (int i = 0; i < N - 1; i++) {
            long long ticket_cost = (long long)count[i] * A[i];
            long long ic_cost = C[i] + (long long)count[i] * B[i];
            total += min(ticket_cost, ic_cost);
        }
        
        cout << total << endl;
        
        return 0;
        

        }

        • 0
          @ 2024-4-15 21:41:14

          #include <bits/stdc++.h> using namespace std; long long cf[100000],n,m,a[100000],x,y,z,ans; int main(){ cin>>n>>m; cin>>a[1]; for(long long i=2;i<=m;i++){ cin>>a[i]; if(a[i]>a[i-1]){ cf[a[i-1]]++; cf[a[i]]--; } else { cf[a[i-1]]--; cf[a[i]]++; } } for(long long i=1;i<n;i++){ a[i]=a[i-1]+cf[i]; cin>>x>>y>>z; ans+=min(a[i]x,z+ya[i]); } cout<<ans; return 0; }

          • 0
            @ 2024-4-15 21:36:35
            #include<bits/stdc++.h>
            using namespace std;
            long long cf[100000],n,m,x,y,z,a[100000],ans=0; 
            int main(){
            	cin>>n>>m;
            	cin>>a[1];
            	for(long long i=2;i<=m;i++){
            		cin>>a[i];
            		if(a[i]>a[i-1]){
            			cf[a[i-1]]++;
            			cf[a[i]]--;
            		}else{
            			cf[a[i-1]]--;
            			cf[a[i]]++;
            		}
            	}
            	for(long long i=1;i<n;i++){
            		a[i]=a[i-1]+cf[i];
            		cin>>x>>y>>z;
            		ans+=min(a[i]*x,z+y*a[i]);
            	} 
            	cout<<ans;
            
            	return 0;
            }
            
            
            
            • 0
              @ 2024-3-16 17:11:10

              #include <bits/stdc++.h> using namespace std; int main() { cout << "I don't know"; return 0; }

              • 0
                @ 2024-3-16 17:09:37

                啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

                • 0
                  @ 2023-12-5 23:20:07

                  image

                  • -1
                    @ 2024-4-15 21:38:46

                    ''' #include<bits/stdc++.h> using namespace std; long long cf[100001],n,m,a[100001],x,y,z,ans;

                    int main(){ cin>>n>>m; cin>>a[1]; for(int i=2;i<=m;i++){ cin>>a[i]; if(a[i]>a[i-1]){ cf[a[i-1]]++; cf[a[i]]--; }else{ cf[a[i-1]]--; cf[a[i]]++; } } for(int i=1;i<n;i++){ a[i]=a[i-1]+cf[i]; cin>>x>>y>>z; ans+=min(a[i]x,z+ya[i]); } cout<<ans; return 0; } '''

                    • 1

                    信息

                    ID
                    2627
                    时间
                    1000ms
                    内存
                    256MiB
                    难度
                    6
                    标签
                    (无)
                    递交数
                    357
                    已通过
                    104
                    上传者