답안 #626492

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
626492 2022-08-11T13:31:20 Z Sasha008 메기 농장 (IOI22_fish) C++17
컴파일 오류
0 ms 0 KB
#include<bits/stdc++.h>
//#include "prison.h"
#pragma GCC optimize ("O3")
using namespace std;
#define el "\n"
#define se " "
#define ll long long
#define ld long double
#define ff first
#define ss second
#define pb push_back
const ll INF=1e18,ch=1e18;
ll a,b,c,d,n,COST,t,last,ab,ba,n1,n2,fl1,fl2,o1,o2,flag,flag1,flag2,g,m,m1,m2,i,j,lr,f,k,l,r,y,o,p,mx=-ch,mx1=-ch,mx2=-ch,q,q1,q2,q3,q4,mn=ch,mn1=ch,mn2=ch,f1,f2,f3,pos,ans,sum,sz=1,MOD=1e9+7,zero=0,a1,b1,c1,val,sum1,cur,res,ans1,res1,kk,kkk,cnt,cnt1,fl;
pair < ll , pair < ll , ll > > A[300005];
ll B[4][300005];
ll max_weights(int N, int M, vector<int> X, vector<int> Y, vector<int> W)
{
    n=N;k=M;
    for(i=1;i<=k;i++)
    {
        A[i].ff=X[i-1]+1;
        A[i].ss.ff=Y[i-1]+1;
        if (A[i].ss.ff==1) flag++;
        A[i].ss.ss=W[i-1];
        if (A[i].ff%2!=0) q1++;
        if (A[i].ff<=2) q2++;
    }
    if (q1==k)
    {
        for(i=1;i<=k;i++)
        {
            f+=A[i].ss.ss;
        }
        return f;
    }
    else if (q2==k)
    {
        for(i=1;i<=k;i++)
        {
            B[A[i].ff][A[i].ss.ff]=A[i].ss.ss;
        }
        for(i=1;i<=300001;i++)
        {
            f+=max(B[1][i],B[2][i]);
        }
        return f;
    }
    else if (flag==k)
    {
        ll dp[300005][3]={0};
        ll C[300005]={0};
        for(i=1;i<=k;i++)
        {
            C[A[i].ff]=A[i].ss.ss;
        }
        dp[1][0]=0;
        dp[1][1]=C[2];
        for(i=2;i<=n;i++)
        {
            dp[i][0]=max(dp[i-1][0],dp[i-1][1]);
            dp[i][1]=max({dp[i-1][1]-C[i],dp[i-2][1],dp[i-2][0]+C[i-1]})+C[i+1];
        }
        return max(dp[n][0],dp[n][1]);
    }
    else
    {
        ll dp[3005][3005][3]={0};
        ll C[3005][3005]={0};
        for(i=1;i<=k;i++)
        {
            C[A[i].ss.ff][A[i].ff]=A[i].ss.ss;
        }
        for(q=1;q<=n;q++)
        {
            dp[q][1][0]=0;
            dp[q][1][1]=C[q][2];
            for(i=2;i<=n;i++)
            {
                dp[q][i][0]=max(dp[q][i-1][0],dp[q][i-1][1]);
                dp[q][i][1]=max({dp[q][i-1][1]-C[q][i],dp[q][i-2][1],dp[q][i-2][0]+C[q][i-1]})+C[q][i+1];
            }
            f+=max(dp[n][0],dp[n][1]);
        }
        return f;
    }
}

//int main()
//{
//    ios_base::sync_with_stdio(0);
//    cin.tie(0);
//    cout.tie(0);
//    cin>>n>>a>>b;
//    vector < vector < int > > v=devise_strategy(a,b);
//}

Compilation message

fish.cpp: In function 'long long int max_weights(int, int, std::vector<int>, std::vector<int>, std::vector<int>)':
fish.cpp:82:37: error: invalid conversion from 'const long long int*' to 'long long int' [-fpermissive]
   82 |             f+=max(dp[n][0],dp[n][1]);
      |                                     ^
      |                                     |
      |                                     const long long int*