无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

挑戰(zhàn)程序設(shè)計競賽:抽簽-T數(shù)和(排序,二分查找,記憶化搜索)

2023-02-15 16:53 作者:信奧賽USACO鄭老師  | 我要投稿

//和書上答案不同,本解的n可以大一點,但m必須小。復(fù)雜度為O(n*m)。方法對幾個數(shù)字和是通用的。

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

const int dim=4;

int k[1000];

int f[1000][1000][dim];

stack<int> si;

int solve(int n,int m,int dim,int level){

cout<<n<<" "<<m<<" "<<dim<<" "<<level<<endl;

level++;

if(f[n][m][dim]!=-1){

return f[n][m][dim];

}

if(n>=2 && m>=0 && dim>=0){

if(solve(n-1,m,dim,level)>=0){

f[n][m][dim]=1;

return 1;

}

}

if(n>=1 && m>=k[n] && dim>=1){

si.push(k[n]);

if(solve(n,m-k[n],dim-1,level)>=0){//放回口袋(數(shù)字可重用)

? ? ? ?//if(solve(n-1,m-k[n],dim-1,level)>=0){//不放回口袋(數(shù)字不可重用)

f[n][m][dim]=0;

return 0;

}

si.pop();

}

f[n][m][dim]=-2;

return -2;

}

int main(){

int n,m;

cin>>n>>m;

memset(f,-1,sizeof(f));

f[1][0][0]=0;

for(int i=1;i<=n;i++){

cin>>k[i];

}

if(solve(n,m,dim,0)>=0){

cout<<"Yes"<<endl;

}else{

cout<<"No"<<endl;

}

while(si.size()>0){

cout<<si.top()<<" ";

si.pop();

}

cout<<endl;

return 0;

}


挑戰(zhàn)程序設(shè)計競賽:抽簽-T數(shù)和(排序,二分查找,記憶化搜索)的評論 (共 條)

分享到微博請遵守國家法律
苏尼特右旗| 郓城县| 德州市| 竹北市| 英吉沙县| 腾冲县| 永新县| 横山县| 上林县| 普兰县| 海南省| 兰西县| 高雄市| 新绛县| 腾冲县| 都匀市| 杭州市| 庆阳市| 监利县| 闻喜县| 崇明县| 白朗县| 嘉义市| 丰台区| 应城市| 迭部县| 五家渠市| 龙山县| 镶黄旗| 象州县| 高清| 大田县| 丹棱县| 陵水| 古田县| 甘孜县| 通州区| 庄浪县| 古蔺县| 六枝特区| 秀山|