zoukankan      html  css  js  c++  java
  • 题解 P1004 【方格取数】

    关于 P1004 的题解

    几个月没有来博客写题解 找借口不写题 了,40多道题已经腐烂在U盘中。

    o( ̄▽ ̄)ブ

    一开始看到题目,我的心情是苦闷mengbi的,我太弱啦,不还这种题的!

    但si,这帅气的题目范围终究奠定了这道题水题的地位。

    终于,我靠着不懈的毅力,以及强大的dalao题解团 得以AC了这道题,爽!!!

    下面看看蒟蒻是如何连抄带做出这道题的吧?

    (¬︿̫̿¬☆)

    ( ̄_, ̄ )

    壹.

    模拟方式~~

    很好理解,假设有两个小人从起点一起走,至于在那里走,很好想的吗:


        scanf("%d",&n);
    	while(x>0&&y>0&&v>0)
    	{
    		scanf("%d%d%d",&x,&y,&v);
    		map[x][y]=v;
    	}
    

    嗯~ o( ̄▽ ̄)o,这个,好像 map 不可以用

    氟铀碳钾

    待会儿用 mmp


    贰.

    开始走。

    两人位置分别为(i,j),(k,l) 。

    两人的位置递推式应为:


    f[i][j][k][l]=
    max(
    f[i-1][j][k-1][l],
    f[i][j-1][k][l-1],
    f[i][j-1][k-1][l],
    f[i-1][j][k][l-1])
    +mmp[i][j]+mmp[k][l];
    

    p.s:十分温馨的提示:没有草稿纸的去死呦(_)


    叁.

    两个人碰到一起开始吵架怎么办?

    到一起算了两次怎么办?

    一位 dalao yjxyjx 说:““既然加了两遍,那就减去一遍啊”——楼下大佬&icydalao”。

    说的好。

    献上完整的代码:


    #include<bits/stdc++.h>
    
    using namespace std;
    
    int n;
    int x=1,y=1,v=1;
    int mmp[15][15];
    int f[15][15][15][15];
    int mex(int a,int b,int c,int d)
    {
    	if(b>a)a=b;
    	if(c>a)a=c;
    	if(d>a)a=d;
    	return a;
    }
    int main()
    {
    	scanf("%d",&n);
    	while(x>0&&y>0&&v>0)
    	{
    		scanf("%d%d%d",&x,&y,&v);
    		mmp[x][y]=v;
    	}
    	for(register int i=1;i<=n;i++)
    	{
    		for(register int j=1;j<=n;j++)
    		{
    			for(register int k=1;k<=n;k++)
    			{
    				for(register int l=1;l<=n;l++)
    				{
    					f[i][j][k][l]=mex(f[i-1][j][k-1][l],f[i][j-1][k][l-1],f[i][j-1][k-1][l],f[i-1][j][k][l-1])+mmp[i][j]+mmp[k][l];
    					if((i==k)&&(j==l))
    					{
                            f[i][j][k][l]-=(mmp[i][j]);
                        }
    				}
    			}
    		}
    	}
    	printf("%d",f[n][n][n][n]);
    	return 0;
    }
    

    关于 mex ,你懂的( ̄▽ ̄)"~~~


    就这样,谢谢!!!

  • 相关阅读:
    poj 2892 && 3468
    hdu 2444
    反素数
    poj 2406 && 1961
    Java定时器Timer的使用
    Linux环境下如何生成core文件
    Java异步CompletableFuture的使用
    Java中线程池的使用
    Linux系统添加应用服务进程的守护进程
    C++通过Webbrowser调用JavaScript
  • 原文地址:https://www.cnblogs.com/XSZCaesar/p/10274672.html
Copyright © 2011-2022 走看看