luogu1086:花生采摘:棋盘判断问题:NOIP2004普及组T2

题目连接:该题是luogu试炼场的2-2:T4


题目大意:
1 给出一个棋盘,某些格子里有值代表花生,小狗在第0行,有体力值,体力通过以下4种操作消耗;
2 有4种操作:
1)从第0行(路边)进入第1行;
2)在棋盘内移动一格;
3)在有值的位置停留(采摘);
4)从第1行回到第0行(路边);
3 要求小狗从路边出发,体力消耗完之前,必须回到路边,采摘尽可能多的花生;


解题思路:
1 记录每棵树的坐标、花生数量;
2 对每棵树进行排序,枚举一次;
3 如果这棵树采完能走出去,采,否则游戏结束。


上代码:

//luogu1086:花生采摘
//棋盘问题+出路判断

//解题思路:
//1 记录每棵树的坐标、花生数量;
//2 对每棵树进行排序,枚举一次。
//3 如果这棵树采完能走出去,采,否则游戏结束。
 
#include
#include
using namespace std;

int nn,m,t,n=0,ans=0;
struct nod{int x,y,c;}a[1010];//记录每棵花生的信息 

bool cmd(nod x, nod y)
{
	return x.c>y.c;
} 

void pre()//读入与排序,确定采摘顺序 
{
	scanf("%d %d %d",&nn,&m,&t);
	int x;
	for(int i=1;i<=nn;i++)
	{
		for(int j=1;j<=m;j++)
		{
			scanf("%d",&x);
			if(x>0)
			{
				n++;
				a[n].x=i; a[n].y=j; a[n].c=x;
			}
		}
	}
	
	sort(a+1,a+1+n,cmd);//花生排序 
}


int main()
{
	pre();//数据准备 

	if(t

 

你可能感兴趣的:(题解,大礼包,luogu)