ACM_棋棋棋棋棋(规律题)
棋棋棋棋棋
Time Limit: 2000/1000ms (Java/Others)
Problem Description:
在遥远的K次元空间,一年一度的GDUFE-GAME又开始了。每年的GDUFE-GAME都会有很多有趣的小游戏吸引学生参加,但是由于时间和参与人数有限制,导致很少有学生能参与所有的游戏,于是智力(障)超群的QWER下定决心要尽可能多参与到不同的游戏中。为了实现这个小目标,QWER要尽快通过进场必玩的棋盘游戏。
这个棋盘游戏的规则是这样子的:在一个n行n列的黑白相间棋盘上放棋子,要求放下去的棋子的相邻位置不能再放棋子,也就是说,如果有棋子放在(i, j)位置,那么(i-1, j), (i, j-1), (i, j+1), (i+1, j)这四个位置都不能放棋子,显然对于每个棋盘最多能放的棋子数是确定的,当棋盘上棋子达到上限即通过游戏。
这个问题难不倒QWER,但是为了尽快通过游戏,QWER想一次性拿起所有的棋子放完,但是他该拿多少呢......
Input:
第一行是一个整数 T,代表总共有 T 个测试实例。
每个测试实例包含一个整数 n (1 ≤ n ≤ 65535),代表棋盘大小为 n 行 n 列。
Output:
对于每个测试实例,输出一个整数,代表QWER应该一次性拿起多少棋子。(答案保证在int范围内)
Sample Input:
2
1
2
Sample Output:
1
2
解题思路:这是一道找规律的题目,比较简单,容易推导。假设a[i]存放当前棋盘(按规则)最多能容纳的棋子数,则规律如下:
a[1]=1;
a[2]=2;
a[3]=5(-->3+a[2]);
a[4]=8(-->4*2);
a[5]=13(-->5+a[4]);
a[6]=18(-->3*6);
...
很容易发现,当i是奇数时,a[i]=i+a[i-1];当i是偶数时,a[i]=i*k;(当i=2时,k=1;之后每遇到偶数递增1,再执行a[i]=i*k即可)。
AC代码:
#include <bits/stdc++.h>
using namespace std;
int a[],k=;
int main()
{
a[]=,a[]=;
for(int i=;i<;++i){
if(i%)a[i]=i+a[i-];
else{
++k;
a[i]=k*i;
}
}
int T,n;
cin>>T;
while(T--){
cin>>n;
cout<<a[n]<<endl;
}
return ;
}
ACM_棋棋棋棋棋(规律题)的更多相关文章
- CJOJ 1087 【NOIP2010】乌龟棋 / Luogu 1541 乌龟棋(动态规划)
CJOJ 1087 [NOIP2010]乌龟棋 / Luogu 1541 乌龟棋(动态规划) Description 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行N个格子,每个 ...
- ACM_送气球(规律题)
送气球 Time Limit: 2000/1000ms (Java/Others) Problem Description: 为了奖励近段时间辛苦刷题的ACMer,会长决定给正在机房刷题的他们送气球. ...
- LightOJ1010---Knights in Chessboard (规律题)
Given an m x n chessboard where you want to place chess knights. You have to find the number of maxi ...
- Codeforces - 规律题 [占坑]
发现自己容易被卡水题,需要强行苟一下规律题 CF上并没有对应的tag,所以本题集大部分对应百毒搜索按顺序刷 本题集侧重于找规律的过程(不然做这些垃圾题有什么用) Codeforces - 1008C ...
- hdoj--1005--Number Sequence(规律题)
Number Sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 洛谷 P1876 开灯(思维,枚举,规律题)
P1876 开灯 题目背景 该题的题目是不是感到很眼熟呢? 事实上,如果你懂的方法,该题的代码简直不能再短. 但是如果你不懂得呢?那...(自己去想) 题目描述 首先所有的灯都是关的(注意是关!),编 ...
- Codeforces 959E. Mahmoud and Ehab and the xor-MST 思路:找规律题,时间复杂度O(log(n))
题目: 解题思路 这题就是0,1,2...n-1总共n个数字形成的最小生成树. 我们可以发现,一个数字k与比它小的数字形成的异或值,一定可以取到k与所有正整数形成的异或值的最小值. 要计算n个数字的情 ...
- Visible Lattice Points(规律题)【数学规律】
Visible Lattice Points 题目链接(点击) Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9031 ...
- Codeforces Round #384 (Div. 2) B. Chloe and the sequence(规律题)
传送门 Description Chloe, the same as Vladik, is a competitive programmer. She didn't have any problems ...
随机推荐
- django 简易博客开发 5 markdown支持、代码高亮、gravatar头像服务
上一篇博客介绍了comments库使用及ajax支持,现在blog已经具备了基本的功能,但是只能发表文字,不支持富文本编辑.今天我们利用markdown添加富文本支持. markdown语法说明: h ...
- 【stl学习笔记】deques
deque双向队列是一种双向开口的连续线性空间,可以高效的在头尾两端插入和删除元素,deque在接口上和vector非常相似.deque的实现比较复杂,内部会维护一个map(注意!不是STL中的map ...
- MySQL 当记录不存在时插入,当记录存在时更新
第一种: 示例一:插入多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语句: INSERT INTO clients (client_id,client_name ...
- 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性
基于.net的分布式系统限流组件 在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...
- 分享:Mac与Phy组成原理的简单分析
原文链接:http://blog.chinaunix.net/uid-20528014-id-3050217.html 1.General 下图是网口结构简图.网口由CPU.MAC和PHY三部分组成. ...
- ganglia监控自己定义metric实践
Ganglia监控系统是UC Berkeley开源的一个项目,设计初衷就是要做好分布式集群的监控.监控层面包含资源层面和业务层面,资源层面包含cpu.memory.disk.IO.网络负载等,至于业务 ...
- 基于github for windows&github的团队协作基本操作
首先,我们要在github上团队协作.先要建立一个team.这个自行百度,在github上操作就是. 点击打开链接 这是我的有道文章(假设看不到图片的话) 今天主要讲的是怎么操作github for ...
- linux 【第五篇】特殊权限及定时任务
特殊权限 [root@VM_141_154_centos ~]# ls -ld /tmp drwxrwxrwt. 8 root root 4096 Apr 5 08:11 /tmp /tmp/ 公共目 ...
- oracle sql 超长报ORA-01460错误
程序查找数据的时候报错了: ORA-01460: 转换请求无法实施或不合理 这是什么鬼?不合理你就提嘛,报错干什么. 程序原本好好的,现在突然报错了.数据库并没有什么更改. 后来猜测是因为执行的SQL ...
- 2016/4/1 jquery 与javascript关系 ①取元素 ②操作内容 ③操作属性 ④操作 样式 ⑤ 事件 点击变色
jQuery的min版本和原版功能是一样的,min版主要应用于已经开发成的网页中,而非min版 的文件比较大,里面有整洁的代码书写规范和注释,主要应用于脚本开发过程当中. JQuery是继protot ...