关闭

codeforces 390d Inna and Sweet Matrix

412人阅读 评论(0) 收藏 举报
分类:

题目链接

题意:

给出n*m的空网格,以及k颗糖果,第一格是(1,1),从(1,1)出发,每次只能走相邻的网格,将糖果放到网格上,一旦放上就不可以移动,每放置一颗糖果需要走的距离就是从(1,1)到(i,j)的距离,即i+j-1

求放置k颗糖果所要走的最小距离

输出最小距离以及路径

注意:如果这个网格上已经有糖果放着了,就不能走过去,相当于存在一个障碍


解题思路:

从(1,1)走到对角线上的任意一点的最小距离是一样的


每次输出时,一条对角线从上往下输出,这样顺序就不会乱


#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
#define ll __int64
struct node
{
	int x,y;
}a[2505];
bool cmp(node a,node b)
{
	return a.x+a.y<b.x+b.y;
}
int main()
{
	int n,m,k;
	scanf("%d%d%d",&n,&m,&k);
	int p=1;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			a[p].x=i;
			a[p].y=j;
			p++;
		}
	}
	sort(a+1,a+n*m+1,cmp);
//	for(int i=1;i<=n*m;i++)
//	{
//		cout<<a[i].x<<" "<<a[i].y<<endl;
//	}
	int sum=0;
	for(int i=1;i<=k;i++)
	{
		sum+=(a[i].x+a[i].y-1);
	}
	printf("%d\n",sum);
	for(int i=k;i>=1;i--)
	{
		for(int j=1;j<=a[i].x;j++)
		{
			printf("(%d,1) ",j);
		}
		for(int l=2;l<=a[i].y;l++)
		{
			printf("(%d,%d) ",a[i].x,l);
		}
		cout<<endl;
	}
	return 0;
}


0
0
查看评论

CF 390D:Inna and Sweet Matrix

这题也不好解释。大意是一个n*m的矩阵,I有k枚糖果,每一枚糖果都会逐一放在(i , j)的格子上,且I从(1,1)到这个格子必须存在一条没有糖果覆盖的路径,否则无法放置。求I放完所有糖果后所需的最小步数,并打印出放每枚糖果的路径。   简单的bfs就行了。 #include...
  • u013898034
  • u013898034
  • 2014-03-07 01:21
  • 523

Codeforces 390D Inna and Sweet Matrix(贪心)

题目链接:Codeforces 390D Inna and Sweet Matrix 题目大意:给出n,m和k,表示在n*m的空地上放k个糖果,每次从(1,1)的位置开始移动,要求步数最少,并给出路径,位置上如果放了糖果就不能再移动过。 题目大意:移动的步数为横坐标和纵坐标的和-...
  • u011328934
  • u011328934
  • 2014-02-13 19:07
  • 1044

Codeforces 390E Inna and Large Sweet Matrix(树状数组)

题目链接:Codeforces 390E Inna and Large Sweet Matrix 题目大意:给出n,m和w,表示在一个n*m的图上进行操作,0表示添加操作,在点(x1,y1)和(x2,y2)之间的所有格子上添加value个糖果;1表示查询操作,查询(x1,y1)和(x2,y...
  • u011328934
  • u011328934
  • 2014-02-13 21:06
  • 1424

CodeForces 390E Inna and Large Sweet Matrix

题意: 在n*m的空间内执行2种操作  每次令一个矩形内所有元素增加v  或  查询一个矩形内的数字的和减去它四个角方向的矩形内数字的和 (操作2看下图 +的部分减去-的部分) - - - -0000000- - - - - - - -0000000- - - -...
  • u013351160
  • u013351160
  • 2014-02-14 16:11
  • 596

Codeforces #229 D2D: Inna and Sweet Matrix

题目:http://codeforces.com/contest/390/problem/D 用BFS做的。 代码: #include #include #include #include #include #include #include #include #includ...
  • xuzhezhaozhao
  • xuzhezhaozhao
  • 2014-02-13 19:20
  • 976

Codeforces 390 E. Inna and Large Sweet Matrix

主要是树状数组的改段求段操作。。。 E. Inna and Large Sweet Matrix time limit per test 1 second memory limit per test 512 megabytes input ...
  • u012797220
  • u012797220
  • 2014-02-13 13:38
  • 1451

CodeForces 374 D. Inna and Sequence

题意:
  • u012891242
  • u012891242
  • 2014-10-27 21:45
  • 545

CF 390E - Inna and Large Sweet Matrix(TODO)

题目链接:Click here~~ 题意: 给一个长度为 n 的 {0,1} 序列 {an},w 次询问,每次询问关于区间 [l,r] 和定值 k,在首项为 l + k-1 且公差为 k 的项上全变为1,而其他项全变为0 所需的步数。每次只能对一个元素进行改变。 思路: 由于...
  • dgq8211
  • dgq8211
  • 2014-10-28 09:08
  • 1554

Codeforces 390E Inna and Large Sweet Matrix 树状数组改段求段

题目链接:点击打开链接 题意:给定n*m的二维平面 w个操作 1、0 (x1,y1) (x2,y2) value for i : x1 to x2 for j : y1 to y2  mp[i][j] += value; 2、1 (x1, y1) (x2 y2) ans1 = 纵坐标在 y...
  • qq574857122
  • qq574857122
  • 2015-07-07 14:09
  • 640

Codeforces 400E Inna and Binary Logic(位运算+暴力)

题目链接:Codeforces 400E Inna and Binary Logic 题目大意:给出n和m,表示有n个数,m次修改,然后给出n个数的值a1[i],通过a1数组可以推断出a2数组,长的为a1的长度减一,接着a3、a4直到an(长度为1),ai[k] = ai-1[k] & ...
  • u011328934
  • u011328934
  • 2014-03-07 13:23
  • 1268
    个人资料
    • 访问:68806次
    • 积分:2370
    • 等级:
    • 排名:第18581名
    • 原创:172篇
    • 转载:4篇
    • 译文:0篇
    • 评论:9条
    最新评论