A - Chips
Gerald plays the following game. He has a checkered field of size n × n cells, where m various cells are banned. Before the game, he has to put a few chips on some border (but not corner) board cells. Then for n - 1 minutes, Gerald every minute moves each chip into an adjacent cell. He moves each chip from its original edge to the opposite edge. Gerald loses in this game in each of the three cases:
- At least one of the chips at least once fell to the banned cell.
 - At least once two chips were on the same cell.
 - At least once two chips swapped in a minute (for example, if you stand two chips on two opposite border cells of a row with even length, this situation happens in the middle of the row).
 
In that case he loses and earns 0 points. When nothing like that happened, he wins and earns the number of points equal to the number of chips he managed to put on the board. Help Gerald earn the most points.
Input
The first line contains two space-separated integers n and m (2 ≤ n ≤ 1000, 0 ≤ m ≤ 105) — the size of the field and the number of banned cells. Next m lines each contain two space-separated integers. Specifically, the i-th of these lines contains numbers xi and yi (1 ≤ xi, yi ≤ n) — the coordinates of the i-th banned cell. All given cells are distinct.
Consider the field rows numbered from top to bottom from 1 to n, and the columns — from left to right from 1 to n.
Output
Print a single integer — the maximum points Gerald can earn in this game.
Example
3 1
2 2
0
3 0
1
4 3
3 1
3 2
3 3
1
Note
In the first test the answer equals zero as we can't put chips into the corner cells.
In the second sample we can place one chip into either cell (1, 2), or cell (3, 2), or cell (2, 1), or cell (2, 3). We cannot place two chips.
In the third sample we can only place one chip into either cell (2, 1), or cell (2, 4).
关键是读懂题,大致的题意就是:一个n*n的矩阵四角和中间不能放东西,只能放在其他的边缘部分,刚开始有一些位置已经给定,挪动的过程中不能经过这些位置,要求在n-1步内,把物品从一侧移动到另一侧,且移动的过程中不能有重叠现象(应该是多个物品可以同时移动),问最多有多少这样的位置?
AC代码:
#include<stdio.h> int main()
{
int n, m, x, y;
int ans = ;
bool cell_row[], cell_column[]; scanf("%d%d", &n, &m); int med = (n+)/; for(int i = ; i <= n; i++)
{
cell_column[i] = false;
cell_row[i] = false;
} for(int i = ; i <= m; i++)
{
scanf("%d%d", &x, &y);
cell_column[x] = true;
cell_row[y] = true;
} for(int i = ; i < n; i++)
{
if(!cell_row[i])
ans++;
} for(int i = ; i < n; i++)
{
if(n % == )
{
if(!cell_column[i])
ans++;
}
else if(n % != )
{
if(!cell_column[i] && (cell_row[i] == true || i != med))//如果中间行为true,但是中间列为false也可以
ans++;
}
} printf("%d\n", ans); return ;
}
A - Chips的更多相关文章
- 【UVALive - 5131】Chips Challenge(上下界循环费用流)
		
Description A prominent microprocessor company has enlisted your help to lay out some interchangeabl ...
 - Codeforces Round #194 (Div. 2) D. Chips
		
D. Chips time limit per test:1 second memory limit per test:256 megabytes input:standard input outpu ...
 - Codeforces Round #194 (Div. 1) B. Chips 水题
		
B. Chips Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/333/problem/B D ...
 - [2011WorldFinal]Chips Challenge[流量平衡]
		
Chips Challenge Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...
 - Chips CodeForces - 333B
		
Chips CodeForces - 333B 题意:有一个n*n的棋盘,其中有m个格子被禁止.在游戏开始前要将一些芯片(?)放到四条边上(但不能是角上).游戏开始后,每次操作将每一个芯片移动到它四周 ...
 - [译]Cookies Without Chocolate Chips
		
Cookies Without Chocolate Chips In the HTTP sense, a cookie is a name with an associated value. A se ...
 - Angular Material 学习笔记 Chips
		
依据 material guidelines, chips 可以用来做 filter https://material.io/design/components/chips.html#filter-c ...
 - LeetCode.1217-交换芯片(Play with Chips)
		
这是小川的第次更新,第篇原创 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第270题(顺位题号是1217).There are some chips, and the i-th ch ...
 - 【leetcode】1217. Play with Chips
		
题目如下: There are some chips, and the i-th chip is at position chips[i]. You can perform any of the tw ...
 
随机推荐
- thinkphp <volist>标签中 <if> 判断的写法
			
thinkphp <volist>标签中 <if> 判断的写法 <volist name="data" id="vo"> & ...
 - 图解缓存淘汰算法一之LRU
			
1.概念分析 LRU(Least Recently Used),即最近最少使用.怎么理解这个概念呢?我一开始见到这个概念的时候,以为"最近","最少"都是修饰使 ...
 - Profile配置
			
Profile是Spring用来针对不同环境对不同的配置提供支持的,全局Profile配置使用application-{profile}.properties application.properti ...
 - Hibernate面试总结
			
SSH原理总结 Hibernate工作原理及为什么要用: 原理: hibernate,通过对jdbc进行封装,对 java类和 关系数据库进行mapping,实现了对关系数据库的面向对象方式的操作,改 ...
 - _tprintf(), printf(),wprintf() 与控制字符 %s 和 %S(Unicoe与GB2312))
			
_tprintf() 是 printf() 和 wprintf() 的通用类型:如果定义了 _unicode,那么 _tprintf() 就会转换为 wprintf(),否则为 printf() . ...
 - vue中父子组件传递信息实现
			
为了能够在父子组件中实现双向控制,需要以下的步骤: 第一步:子组件中挖坑 (1)在需要父组件填充具体内容的地方挖坑,方式为 <slot name="message">& ...
 - LAMP  3.1 mysql的root密码重置
			
给mysql设置密码 /usr/local/mysql/bin/mysql -uroot 可以直接登录mysql 设置密码 /usr/local/mysql/bin/mysqladmin -uroot ...
 - DAY10-MYSQL库操作
			
一 系统数据库 information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限信息.字符信息等performance_schema: MyS ...
 - ==, equals, hashcode的理解
			
一.java对象的比较 等号(==): 对比对象实例的内存地址(也即对象实例的ID),来判断是否是同一对象实例:又可以说是判断对象实例是否物理相等: equals(): 对比两个对象实例是否相等. 当 ...
 - yii2常用excel操作库
			
yii2使用较多的excel操作库 1."phpoffice/phpexcel" https://github.com/PHPOffice/PHPExcel/archive/1.8 ...