栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 1995 Spiderman

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 1995 Spiderman

#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <map>#include <stack>#include <queue>#include <vector>#define LL long long#define INF 1e9#define EPS 1e-9using namespace std;const int maxn=1234;int ai[maxn];int dp[maxn][maxn];int li2[maxn][maxn];int T;int n;void init(){    scanf("%d",&n);    for(int i=1; i<=n; i++)scanf("%d",&ai[i]);}vector<int> V;void play(){    for(int i=0; i<=n; i++)    {        for(int j=0; j<=1000; j++)        { dp[i][j]=INF;        }    }    dp[0][0]=0;    for(int i=1; i<=n; i++)    {        for(int j=0; j<=1000; j++)        { if(dp[i-1][j]==INF)continue; int q=j+ai[i]; int p=j-ai[i]; int qn=max(dp[i-1][j],q); if(q<=1000&&qn<dp[i][q]) {     dp[i][q]=qn;     li2[i][q]=j; } int pn=max(dp[i-1][j],j); if(p>=0&&pn<dp[i][p]) {     dp[i][p]=pn;     li2[i][p]=j; }        }    }    if(dp[n][0]!=INF)    {        V.clear();        V.push_back(2);        int st=n-1;        int now=li2[n][0];        while(st>=1){ int next=li2[st][now]; int ff=now-next; if(ff>0)V.push_back(1); else V.push_back(2); st--; now=next;        }        bool first=1;        for(int i=V.size()-1;i>=0;i--){ if(V[i]==1)printf("U"); else printf("D");        }        printf("n");    }    else    {        printf("IMPOSSIBLEn");    }}int main(){    scanf("%d",&T);    while(T--)    {        init();        play();    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/371952.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号