【杭电5480】Conturbatio象棋--车

 Conturbatio
Time Limit:3000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u

Description

There are many rook on a chessboard, a rook can attack the row and column it belongs, including its own place. 

There are also many queries, each query gives a rectangle on the chess board, and asks whether every grid in the rectangle will be attacked by any rook? 

Input

The first line of the input is a integer  , meaning that there are   test cases. 

Every test cases begin with four integers 
 is the number of Rook,   is the number of queries. 

Then   lines follow, each contain two integers   describing the coordinate of Rook. 

Then   lines follow, each contain four integers   describing the left-down and right-up coordinates of query. 






Output

For every query output "Yes" or "No" as mentioned above.

Sample Input

2
2 2 1 2
1 1
1 1 1 2
2 1 2 2
2 2 2 1
1 1
1 2
2 1 2 2

Sample Output

Yes
No
Yes
题意:有一个n*m的棋盘 K个车,车可以攻击它所在的一列或一行,包括自己所在位置,有Q个查询,
      输入K行(x,y)表示车的坐标,然后输入Q行,每行4个数x1 y1 x2 y2分别表示矩形的左下角坐标和右上角坐                 标,判断矩形内的人能否被全部攻击,是的话输出yes,不是输出no
题解:标记车的行列坐标,表示可以攻击,如果能攻击所有的行或者能攻击所有的列,那么矩形被攻陷

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include<cstdio>
#include<cstring>
int main()
{
	int t;
	int hang[100010],lie[100010];
	scanf("%d",&t);
	while(t--)
	{
		int n,m,k,q;
		scanf("%d%d%d%d",&n,&m,&k,&q);
		memset(hang,0,sizeof(hang));
		memset(lie,0,sizeof(lie)); 
		int x,y;
		for(int i=1;i<=k;i++)
		{
			scanf("%d%d",&x,&y);
			hang[x]=1;
			lie[y]=1;//标记车的行列坐标 
		}
		for(int i=1;i<=n;i++)
		{
			hang[i]+=hang[i-1];//累加和 算出所有车能攻击多少行 
			lie[i]+=lie[i-1];//能攻击的列数 
		 } 
		 int x1,x2,y1,y2;
		 for(int i=1;i<=q;i++)
		 {
		 	scanf("%d%d%d%d",&x1,&y1,&x2,&y2); 
		 	if(x2-x1+1==hang[x2]-hang[x1-1]||y2-y1+1==lie[y2]-lie[y1-1])
               //如果所给矩形行数==车能攻击的行数 或者矩形列数==车能攻击的列数,那么没有幸存者 

		 	printf("Yes\n");                                   

		 	else
		 	printf("No\n");
		  } 
	}
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程名称: JAVA课程设计 题 目: "网络象棋"游戏的设计与开发 系 名: 信息工程系 专业班级: 软件工程 姓 名: 学 号: 指导教师: 2012年 6 月 18 日 课程设计任务书 学生姓名: 专业班级: 指导教师: 工作单位: 信息工程系 设计题目:"网络象棋"游戏的设计与开发 初始条件: 《网络象棋》,网络版的棋类游戏。 要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 使用JAVA开发一个网络版的象棋游戏。该游戏包括网络功能,棋盘功能和辅助功能。 本系统使用JAVA SWING技术和事件处理机制进行棋盘界面的设计,开发和功能实现, 使用Socket网络编程和多线程技术进行多客户端之间的对战。 系统总体架构如下: 系统功能点说明如下: "编号 "功能名 "功能描述 " "1 "网络功能 "通过网络通信,实现多客户端对战 " "2 "棋盘功能 "绘制棋盘 "绘制棋盘与棋子 " " " "下棋功能 "点击棋子,可以走动 " " " "下棋规则 "设计相应算法,控制不同棋子的走法 " "3 "辅助功能 "悔棋 "通过记录走棋步骤,实现悔棋 " " " "截屏 "关键步骤,实现截屏 " " " "录制 "可以录制每一步下棋的视频 " "4 "系统打包 "系统打包,制作安装程序 " 设计报告撰写格式要求: 一、课程设计说明书(或报告书)正文内容 【设计题目】例如:"即时通"网络通信系统的设计与开发 【开发环境】硬件环境:微机系列,内存在1G以上,软件环境:Microsoft Windows XP 【开发工具】 NetBeans IDE 【完成时间】 2012.6 .4-----2012.6.15 【需求分析】分析阐述要实现的系统应具有什么样的功能。 【系统总体设计方案】 在明确了所要解决的问题后,很自然地就要提出自己解决问题的思路和方案。让读者了 解方案的总体设计和关键技术。 要阐述自己的设计方案,说明为什么要选择或设计这样的方案。 具体包括:系统总的设计思路,体系结构, 总体架构, 功能模块图; 各功能模块所要达到的设计目标的简单介绍; 设计的数据字典(数据库、表的结构); 使用的设计软硬件环境和开发技术和平台等。 【系统详细设计】 在这部分中,要将整个开发工作的内容进行详细的介绍。 一般按照功能模块分成几部分来介绍。每部分应包括文字叙述、界面图片、关键实现技 术(操作或代码)等几个方面综合说明问题。 【系统调试和测试】 调试:介绍设计过程中遇到的问题和解决方法。 测试:介绍如何测试系统,测试中发现的问题和解决方案。 【结束语】 这部分篇幅不大,对整个设计中做的工作、获得的成果、心得体会等做一个简单小结。 【参考文献】罗列在设计过程中查阅的文献名称 注意:参考文献罗列的格式为 资料编号 作者姓名 文献或期刊名称 出版社名称,文献的出版时间或期刊的期号 例如:文献 [1] 吕凤翥,马皓. Java语言程序设计(第2版)[M].北京:清华大学出版社,2010 期刊 [2] 石振国. 用JSP实现对Web数据库的访问[J]. 计算机应用,2010(05):5-8. 二、课程设计说明书(或报告书)正文的书写格式简介 1. 正文标题层次 正文题序层次是文章结构的框架,一般采用社会通用的论文书写形式。即章条序码 统一用阿拉伯数字表示,题序层次可以分为若干级,各级号码之间加小圆点,末尾 一级的后面不加小圆点,层次分级一般不超过四级为宜,示例如下: "第一级(章)" 1 " 2 " 3 " …… " "第二级(条)"1.1 "2.1 "3.1 " …… " " "1.2… "2.2 … "3.2 … " " "第三级(条)"1.1.1 "2.1.1 "3.1.1 " …… " " "1.1.2 … "2.1.2 … "3.1.2 … " " " "1.2.1 "2.2.1 "3.2.1 " " " "1.2.2… "2.2.2… "3.2.2… " " 二、表格 每个表格应有自己的表序与表题,表序与表题间空一格。 例如:表1.1 XXXX ,且表题与表序应写在表格的上方正中处。 三、插图 插图图面要整齐、美观,插图应与正文呼应,不能脱节。每幅插图应有图序与图题, 图序编号要连续,图序与图题间空一格且要放在插图下方居中处。 四、公式 公式应另起一行写在稿纸的中央。 时间安排: "日期 "任务 "课程内容 " "6.18-19 "棋盘界面的绘制 "Eclipse/NetBeans使用 " " " "Swing技术 " "6.19-20 "实现棋子的走动 "事件代理 " "6.20-21 "棋子规则实现 " Socket,Thread,JavaOO " " " " JAVA数据结构 " "6.25 "辅助功能

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值