1 solutions

  • 0
    @ 2025-5-30 13:14:09
    /*//18pts最开始很快打了个0/1背包的草稿,发现如果有的花美丽值负数那就计算不进去最优解。
    //那么考虑两种做法1dp初始化为极小值,解决最优解为负/含有负数的情况 2dp每轮循环第一项保证花必选
    #include<iostream>
    using namespace std;
    const int maxn = 1E2+10;
    int f, v, b[maxn][maxn], dp[maxn][maxn];
    void dfs(int i, int j){
    	if(i<1||j<1)	
    		return;
    	if(dp[i][j]==dp[i][j-1]){
    		dfs(i, j-1);
    	}else{
    		dfs(i-1, j-1);
    		cout<<j<<" ";
    	}
    }
    int main(){
    	cin>>f>>v;
    	for(int i=1;i<=f;i++){
    		for(int j=1; j<=v; j++){
    			cin>>b[i][j];
    		}
    	}
    	for(int i=1;i<=f;i++){
    		for(int j=1; j<=v; j++){
    			dp[i][j]=max(dp[i][j-1], dp[i-1][j-1]+b[i][j]);//但这样写可能出现有花摆不上的情况
    //			 cout<<dp[i][j]<<" ";
    		}
    //		 cout<<endl;
    	}
    	cout<<dp[f][v]<<endl;
    	dfs(f,v);
    	return 0;
    }
    */ 
    #include<iostream>
    #include<deque> 
    using namespace std;
    const int maxn = 1E2+10;
    int f, v, b[maxn][maxn], dp[maxn][maxn];
    //void dfs(int i, int j){//递归写法 输出方案(状态转移关键点) 
    //	if(i<1||j<1)	return;//别忘了递归终止! 
    //	if(dp[i][j]==dp[i][j-1]){
    //		dfs(i, j-1);//第i束花没摆在第j瓶,递归查找j-1瓶 
    //	}else{
    //		dfs(i-1, j-1);//确认第i束花要摆在第j瓶
    //		cout<<j<<" ";
    //	}
    //}
    void dfs(int i, int j){//迭代写法
    	deque<int> st;
    	while(i&&j){
    		if(dp[i][j]==dp[i][j-1]){
    			j--;
    		}else{
    			st.push_front(j);
    			i--,j--;
    		}
    	}
    	while(!st.empty()){
    		cout<<st.front()<<" ";
    		st.pop_front();
    	}
    }
    int main(){
    	cin>>f>>v;
    	for(int i=1;i<=f;i++){
    		for(int j=1; j<=v; j++){
    			cin>>b[i][j];
    		}
    	}
    	for(int i=1;i<=f;i++){//前i束花 
    		dp[i][i]=dp[i-1][i-1]+b[i][i];//先初始化 第i束花在第i个瓶子,后面以此为基准求最优解,保证第i束花一定要摆 
    		for(int j=i+1; j<=v; j++){//第i束花在第j个瓶子 
    			dp[i][j]=max(dp[i][j-1], dp[i-1][j-1]+b[i][j]);
    		}
    	}
    	cout<<dp[f][v]<<endl;
    	dfs(f,v);
    	return 0;
    }
    
    
    • 1

    Information

    ID
    822
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    3
    Tags
    # Submissions
    11
    Accepted
    4
    Uploaded By