当前位置: 首页 > news >正文

Codeforces Round 1012 (Div. 2) 3.23

文章目录

  • 2025.3.23 Div2
    • B. Pushing Balls(暴力)
      • 代码
    • C. Dining Hall
      • 题意
      • 思路
      • 代码

2025.3.23 Div2

Dashboard - Codeforces Round 1012 (Div. 2) - Codeforces

B. Pushing Balls(暴力)

题意很好懂,每一行每一列从左往右,从下往上都是非递增,也就是0需要在前面。

刚开始太草率了,只开了个两重循环,感觉不对劲,果然wa了

数据范围很小,直接暴力过

代码

char a[N][N];
void solve()
{
	int n,m;
	cin>>n>>m;
	fir(i,1,n)
	fir(j,1,m)
	cin>>a[i][j];
	fir(i,2,n)
	fir(j,2,m)
	{
		int f=0,h=0;
		if(a[i][j]=='1')
		{
			fir(k,1,i)
			{
				if(a[k][j]!='1')
				f=1;
			}
			fir(k,1,j)
			{
				if(a[i][k]!='1')
				h=1;
			}
			if(f&&h)
			{
				cout<<"NO\n";
				return;
			}
		}
	}
	cout<<"YES\n";
	return;
}

C. Dining Hall

题意

题意描述有很大问题

赛时一直wa2,赛后才知道,原来题意是这样的:

t=0:

选择最近的空桌子坐下

t=1:

选择最近的空位坐下(可能是一个空桌子)

距离

需要几个方格才能到达?

注意:只能从走廊穿过,肯定不能踩着桌子过!

所以:

到达桌子的右上角需要:x+y+2

其他三个位置需要:x+y

以上就是题意解析


思路

首先:

开两重循环,将可能到达的位置用小顶堆存放起来。

数据类型为“tuple”,分别存放: 距离,x , y

具体:

每次先找到距离每张桌子最近的点,将其存在"zhuo"小顶堆里。

将这张桌上的每个点全存放在“p”小顶堆里。

最后:

用map标记已经入座的位置

根据“0/1”,分别从“zhuo”“p”小顶堆中取出位置,同时用map标记去重。

代码

#define tup tuple<int,int,int>//get<2>(p.top()),0,1,2
const int N=1e6+10;
int a[N];
void solve()
{
	int n;
	cin>>n;	 
	fir(i,1,n)
	{
		cin>>a[i];
	} 
	priority_queue<tup,vector<tup>,greater<tup> >  zhuo;
	priority_queue<tup,vector<tup>,greater<tup> >  p;
	map<tup,int> mp;
	for(int i=1;i*i<=n*300;i+=3)
	for(int j=1;j*j<=n*300;j+=3)
	{
	    zhuo.push({i+j,i,j});
	    int x=i,y=j;
        p.push({x+y,x,y});
        p.push({x+y+1,x,y+1});
        p.push({x+y+1,x+1,y});
        p.push({x+y+2+2,x+1,y+1});
	} 
	fir(i,1,n)
	{
		if(a[i]==0)
		{
			while(mp[zhuo.top()]==1)
			{
				zhuo.pop();
			}
			int x=get<1>(zhuo.top()),y=get<2>(zhuo.top());
			cout<<x<<' '<<y<<'\n';
			mp[zhuo.top()]=1;
			zhuo.pop();
		}
		 else
		 {
			 	while(mp[p.top()]==1)
				{
					p.pop();
				}
		 		int x=get<1>(p.top()),y=get<2>(p.top());
				cout<<x<<' '<<y<<'\n';
				mp[p.top()]=1;
			    p.pop();		 
		 }
	}
}

相关文章:

  • 零基础上手Python数据分析 (8):Pandas 核心数据结构 Series 和 DataFrame
  • 【博客节选】再谈Unity 的 root motion
  • 【算法】入门详解
  • asp.net mvc 向前端响应json数据。用到jquery
  • 描述@keyframes规则在 CSS 动画中的原理及作用,如何创建一个简单的动画
  • 大厂技术博客总结
  • MySQL 5.7升级8.0报异常:ONLY_FULL_GROUP_BY
  • 猿大师中间件:如何在最新Chrome浏览器Web网页内嵌本地OCX控件?
  • Docker学习笔记(十二)docker镜像没有vi怎么优雅的编辑文本
  • FAQ - VMware vSphere Web 控制台中鼠标控制不了怎么办?
  • Cursor学习总结
  • 正则表达式基本语法和Java中的简单使用
  • LiteIDE中配置golang编译生成无CMD窗口EXE的步骤
  • Mybatis——04
  • 【Python】基于OpenAI API实现PDF发票信息提取
  • Linux 基础入门操作 第十一章 图形界面设计
  • 【day2】数据结构刷题 栈
  • 【linux】线程概念与控制
  • 05STM32定时器-01定时器概述
  • C#测试基于OllamaSharp调用本地DeepSeek模型
  • 《致1999年的自己》:千禧之年的你在哪里?
  • 人民日报钟声:平等对话是解决大国间问题的正确之道
  • 罕见沙尘再度入川,官方:沙尘传输高度达到平流层,远超以往
  • 江苏省人社厅党组书记、厅长王斌接受审查调查
  • 上任后首访,德国总理与法国总统举行会晤
  • 百济首次实现季度营业利润扭亏,泽布替尼销售额近57亿元