国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

HDU 1176 免費餡餅(基礎dp)

2019-11-08 01:35:15
字體:
來源:轉載
供稿:網友
/*基礎dpG - 免費餡餅時間: 2017/02/20題意:在一個坐標軸上,最初處在5上,給出一些點在一些時間能得到1個餡餅,每秒能移動一格,問最大能得到的餡餅個數。題解:數塔問題1.預處理mp[i][j]表示在第i秒第j處能得到幾個餡餅dp[i][j] 表示在前i秒,人在j處能得到最大餡餅數dp[i][j] = max(dp[i-1][j-1],dp[i-1][j],dp[i-1][j+1])+mp[i][j];2.dp[i][j] 表示在從i秒開始,人在j處能得到最大餡餅數dp[i][j] = max(dp[i+1][j-1],dp[i+1][j],dp[i+1][j+1])+mp[i][j];*/#include<cstdio>#include<cstring>#include<cmath>#include<iostream>#include<algorithm>#include<queue>#include<map>using namespace std;1---------------------------------------#define N 100010#define INF 0x3f3f3f3fint mp[N][11];int dp[N][11];int main(){    int n;    while(~scanf("%d",&n),n)    {        int a,b;        memset(mp,0,sizeof(mp));        memset(dp,0,sizeof(dp));        int m = 0;        for(int i = 0; i < n; i++)        {            scanf("%d%d",&a,&b);            mp[b][a]++;            m = max(m,b);            for(int j = 0; j <= 10 ;j++)                dp[i][j] = -INF;        }        dp[0][5] = 0;        for(int i = 1; i <= m; i++)        {            for(int j = 0; j < 11; j++)            {                    dp[i][j] = dp[i-1][j]+mp[i][j];                if(j >= 1 && dp[i-1][j-1]>=0)                    dp[i][j] = max(dp[i][j],dp[i-1][j-1]+mp[i][j]);                if(j <= 9 && dp[i-1][j+1]>=0)                    dp[i][j] = max(dp[i][j],dp[i-1][j+1]+mp[i][j]);                //PRintf("%d ",dp[i][j]);            }            //puts("");        }        int maxn = 0;        for(int i = 0; i < 11; i++)            maxn = max(maxn,dp[m][i]);        printf("%d/n",maxn);    }    return 0;}2.--------------------------------------const int MOD=100000;int dp[12][MOD+10];int main(){    int n;    while(~scanf("%d",&n)&&n)    {        memset(dp,0,sizeof(dp));        int maxn=0;        while(n--)        {            int x,y;            scanf("%d%d",&x,&y);            dp[x][y]++;            if(y>maxn)                maxn=y;        }        for(int i=maxn-1;i>=0;i--)        {                dp[0][i]+=max(dp[0][i+1],dp[1][i+1]);                for(int j=1;j<11;j++)                    dp[j][i]+=max(max(dp[j][i+1],dp[j+1][i+1]),dp[j-1][i+1]);        }        printf("%d/n",dp[5][0]);    }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 楚雄市| 汤阴县| 荆州市| 黔东| 朝阳县| 鲁山县| 修水县| 司法| 桃园县| 独山县| 兴安县| 仙居县| 竹北市| 定襄县| 应用必备| 宣威市| 扎赉特旗| 加查县| 皋兰县| 乳源| 白水县| 石河子市| 安新县| 出国| 祥云县| 武冈市| 丹江口市| 鹿邑县| 德兴市| 临江市| 惠来县| 湖口县| 西安市| 昆明市| 顺平县| 大同市| 临夏市| 科技| 平乡县| 鹤庆县| 祁门县|