vijos 1557:bzoj:1413: [ZJOI2009]取石子游戏
Description
Input
Output
Sample Input
4
3 1 9 4
Sample Output
数据范围
对于30%的数据 n≤5 ai≤105
对于100%的数据 T≤10 n≤1000 每堆的石子数目≤109
设L = left[i][j - 1], R = right[i][j - 1], X = a[j]. left[i][j]只和L, R, X三个数有关.
一大波情况分类:
当R = X时,left[i][j] = 0。
当X < L且X < R时, left[i][j] = X。
当R < X <= L时, left[i][j] = X - 1。
当L <= X < R时,left[i][j] = X + 1。
当X > L且X > R时,left[i][j] = X。
对于right[i][j]可做同样处理……
要是不看大神题解绝逼想不到这么神的做法……
orz Run Towards End:http://www.cnblogs.com/zcwwzdjn/archive/2012/05/26/2519685.html
#include<cstdio>
#include<algorithm>
using namespace std;
int o,p;
inline int read(){
p=;o=getchar();
while(o<''||o>'') o=getchar();
while(o>=''&&o<='') p=p*+o-,o=getchar();
return p;
}
int t,n,a[],l[][],r[][];
int main(){
register int i,j,k;
t=read();
while(t--){
n=read();
for (i=;i<n;i++) l[i][i]=r[i][i]=a[i]=read();
for (k=;k<n-;k++)
for (i=;i+k<n;i++){
j=i+k;
if (a[j]==r[i][j-]) l[i][j]=;else
if ((a[j]>l[i][j-]&&a[j]>r[i][j-])||(a[j]<l[i][j-]&&a[j]<r[i][j-])) l[i][j]=a[j];else
if (l[i][j-]<=a[j]&&r[i][j-]>a[j]) l[i][j]=a[j]+;else
l[i][j]=a[j]-;
if (a[i]==l[i+][j]) r[i][j]=;else
if ((a[i]>l[i+][j]&&a[i]>r[i+][j])||(a[i]<l[i+][j]&&a[i]<r[i+][j])) r[i][j]=a[i];else
if (l[i+][j]<=a[i]&&r[i+][j]>a[i]) r[i][j]=a[i]+;else
r[i][j]=a[i]-;
}
if (l[][n-]==a[]) printf("0\n");else printf("1\n");
}
}
vijos 1557:bzoj:1413: [ZJOI2009]取石子游戏的更多相关文章
- bzoj 1413 [ZJOI2009]取石子游戏
1413: [ZJOI2009]取石子游戏 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 747 Solved: 490[Submit][Statu ...
- 【刷题】BZOJ 1413 [ZJOI2009]取石子游戏
Description 在研究过Nim游戏及各种变种之后,Orez又发现了一种全新的取石子游戏,这个游戏是这样的: 有n堆石子,将这n堆石子摆成一排.游戏由两个人进行,两人轮流操作,每次操作者都可以从 ...
- 【BZOJ1413】[ZJOI2009]取石子游戏(博弈论,动态规划)
[BZOJ1413][ZJOI2009]取石子游戏(博弈论,动态规划) 题面 BZOJ 洛谷 题解 神仙题.jpg.\(ZJOI\)是真的神仙. 发现\(SG\)函数等东西完全找不到规律,无奈只能翻题 ...
- 【一本通提高博弈论】[ZJOI2009]取石子游戏
[ZJOI2009]取石子游戏 题目描述 在研究过 Nim 游戏及各种变种之后,Orez 又发现了一种全新的取石子游戏,这个游戏是这样的: 有 n n n 堆石子,将这 n n n 堆石子摆成一排.游 ...
- bzoj1413 [ZJOI2009]取石子游戏
Description 在研究过Nim游戏及各种变种之后,Orez又发现了一种全新的取石子游戏,这个游戏是这样的: 有n堆石子,将这n堆石子摆成一排.游戏由两个人进行,两人轮流操作,每次操作者都可以从 ...
- P2599 [ZJOI2009]取石子游戏 做题感想
题目链接 前言 发现自己三岁时的题目都不会做. 我发现我真的是菜得真实. 正文 神仙构造,分讨题. 不敢说有构造,但是分讨我只服这道题. 看上去像是一个类似 \(Nim\) 游戏的变种,经过不断猜测结 ...
- [ZJOI2009]取石子游戏
瞪了题解两三天,直接下转第二篇题解就康懂了 首先我们令 : \(L[i][j]\) 表示当前 \([i,j]\) 区间左侧放置 \(L[i,j]\) 数量的石子后先手必败 \(R[i][j]\) 表示 ...
- 洛谷P2599||bzoj1413 [ZJOI2009]取石子游戏
bzoj1413 洛谷P2599 根本不会啊... 看题解吧 #include<cstdio> #include<algorithm> #include<cstring& ...
- 1874: [BeiJing2009 WinterCamp]取石子游戏 - BZOJ
Description小H和小Z正在玩一个取石子游戏. 取石子游戏的规则是这样的,每个人每次可以从一堆石子中取出若干个石子,每次取石子的个数有限制,谁不能取石子时就会输掉游戏. 小H先进行操作,他想问 ...
随机推荐
- 【java】反射简单示例
package 反射; public class Test反射 { public static void main(String[] args) { System.out.println(Runtim ...
- 【正则表达式】匹配时间格式:hh:mm或h:m
^(0?[0-9]|1[0-9]|2[0-3]):(0?[0-9]|[1-5][0-9])$
- OC学习14——谓词
一.谓词的基本概念与使用 1.谓词(NSPredicate)用于定义一个逻辑条件,通过该条件可执行搜索或内存中的过滤操作.上一篇文章中介绍的集合都提供了使用谓词对集合进行过滤的方法.OC中的谓词操作是 ...
- VR、AR、MR定义区别
近日, 获得谷歌5亿美元融资的技术公司Magic Leap在WSJD展会中放出了一段实录视频,引起不小骚动.如今,也有媒体称他们为MR公司,那么VR.AR.MR之间到底有什么区别呢. VR.AR.MR ...
- VMware的一些总结
一.虚拟主机联网的三种方式: 1.仅主机(Host Only),虚拟主机只能与宿主机联网通信,无法访问外网和宿主机所在局域网的其它主机. 2.桥接(Bridge),在桥接模式下,虚拟主机就像是宿主机所 ...
- 【Linux】Linux学习笔记(完结)
前言 在工作中发现Linux系统的重要性,于是计划重温下Linux,顺便记录笔记方便之后查阅. 磁盘分区 在Linux系统中,每个设备都被当成一个文件来对待:如IDE接口的硬盘文件名为/dev/hd[ ...
- 用原生实现点击删除点击的li
简单的实现方式 <!DOCTYPE html> <html> <head> <title></title> <meta charset ...
- Linux第七节随笔-中 /date / ln /
4.date link 作用:显示或设定系统的日期与时间 参数: -d<字符串> 显示字符串所指的日期与时间.字符串前后必须加上双引号. -s<字符串> 根据字符串来设置日期与 ...
- 7、正确的赚钱方式 - CEO之公司管理经验谈
创业者创办公司,最初的目的就是为了赚钱,而普通的员工来公司上班,为了生计,也是以赚钱为目的.今天我们就讲讲正确的赚钱方式. 一.去公司上班: 来公司上班是第一个主要的赚钱方式.不管是员工还是公司领导, ...
- js解析xml浏览器兼容性处理
/****************************************************************************** 说明:xml解析类 ********** ...