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先进行操作,他想问 ...
随机推荐
- Html中行内元素有哪些?块级元素有哪些?
1.关于行内元素和块状元素的说明 根据CSS规范的规定,每一个网页元素都有一个display属性,用于确定该元素的类型,每一个元素都有默认的display属性值,比如div元素,它的默认display ...
- sourceTree git 忽略指定文件
按照如下步骤执行(终端命令) 1. git status modified: LovegoMall.xcworkspace/xcuserdata/Tiny.xcuserdatad/xcdebugger ...
- bzoj 3192: [JLOI2013]删除物品
Description 箱子再分配问题需要解决如下问题: (1)一共有N个物品,堆成M堆. (2)所有物品都是一样的,但是它们有不同的优先级. (3)你只能够移动某堆中位于顶端的物品. ( ...
- chattr 命令详解
chattr 作用: 改变文件属性,这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有一下8种模式 模式: a: 让文件或目录仅供附加用途 b: 不更新文件或目录的最后存取时间 ...
- 第四节 mount /who / mkdir /rmdir /rm /cp /mv /touch /cat /tac/head /tail /more /less / chmod /chown /umask /chattr /lsattr /history /echo
***Linux下的文件类型如下: 9 8 7 6 5 4 3 2 1 0- r w x r - x r - x 第9位表示文件类型,可以为p.d.l.s.c.b和-:p表示命名管道文件 -pipe ...
- spring_boot_pay支付宝,微信,银联支付详细代码案例
spring-boot-pay 支付服务:支付宝,微信,银联详细代码案例(除银联支付可以测试以外,支付宝和微信支付测试均需要企业认证,个人无法完成测试),项目启动前请仔细阅读 注意事项 . 友情提示 ...
- 在Ubuntu 12.04系统中安装配置OpenCV 2.4.3的方法
在Ubuntu 12.04系统中安装配置OpenCV 2.4.3的方法 对于,在Linux系统下做图像识别,不像在windows下面我们可以利用Matlab中的图像工具箱来实现,我们必须借助Ope ...
- CSS3背景渐变。。。
CSS3 Gradient 分为 linear-gradient(线性渐变)和 radial-gradient(径向渐变).而我们今天主要是针对线性渐变来剖析其具体的用法.为了更好的应用 CSS3 G ...
- jenkins的搭建
根据官方网站的步骤进行安装 网址:https://wiki.jenkins.io/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions ...
- jq选择器汇总
$("div") //标签 $(".box") //类 $("#box") //ID $("a[href][name]" ...