[POI2009]Slw
题目
神题!!只有\(POI\)出得出来的神题!!
只能说好像懂了,不想听蒟蒻废话就右转\(dalao\)的博客
目前网上除官方外仅三篇题解,由于推论无法直观得出且有点复杂,难免不好理解,手玩数据最重要
做法
由于都是以\(H^x(0)\)开始,一下简写成\(H^x\)
性质:
\(~~~~~1.\)斐波那契堆:\(H^x=H^{x-1}+H^{x-2}\)(\(0\longrightarrow 1\longrightarrow 10\longrightarrow 101\longrightarrow 10110\))
\(~~~~~2.\)\(x\)为偶数时\(0\)结尾,为奇数时\(1\)结尾
\(~~~~~3.\)定义\(G^-1\)为\(H^1\)的逆操作,则\(s_1\)为\(s_2\)的子串时,逆操作也有此性质
\(~~~~~4.\)出现\(00\)一定不合法
\(~~~~~5.\)出现\(111\)时则一定不合法,把这个子串化成一般形式为\(10101+0\)
\(~~~~~6.\)\(x≥5\)且\(x\)为奇数时有后缀\(10101\),也就是说\(x≥5\)且\(x+1=0\)时一定不合法
神奇的推导:
\(~~~~~\)我们把所有的\(x\),写成序列\(\{a_1,a_2...a_{n-1},a_n\}\)的形式
\(~~~~~\)当\(\forall v\in \{a_1,a_2...a_{n-1},a_n\}>0\)时我们可以集体减\(1\)
\(~~~~~\)所以考虑\(0\)的特殊情况:
\(~~~~~\)前面为偶数一定不合法(性质\(2\)),考虑奇数:\((1:10\),合并转换为\(2)\);\((3:1010\),转换为两个\(2)\);
\(~~~~~\)剩下的都不合法了
特殊情况:
\(~~~~~\)由于性质\(4\)三子串的出现我们不好判断,而且两个\(1\)转换后不合法但是实际是合法的
\(~~~~~\)\(11\)出现在中间后面只能接\(0\),这种情况会合并的,\(11+x\)按之前的方法会判非法
\(~~~~~\)仅考虑在后面的情况,我们是可以直接去掉最后的\(1\)的,而\(111\)这种非法情况去掉后依然会判非法不用管了
\(~~~~~\)相似的,末尾\(3\)也会出现这种特殊情况改为\(2\)
My complete code
代码是\(copy\)来的
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define M 100100
using namespace std;
int n;
int a[M];
bool Solve(){
int i;
while(n>1){
if(!a[1]) a[1]=2;
if(a[n]==1) n--;
else if(a[n]==3) a[n]=2;
for(i=n;i;i--)
if(!a[i]){
if(a[i-1]==1)
a[i-1]=2,a[i]=-1;
else if(a[i-1]==3)
a[i-1]=2,a[i]=2;
else
return false;
}
int temp=0;
for(i=1;i<=n;i++)
if(a[i]!=-1)
a[++temp]=a[i];
n=temp;
for(i=1;i<=n;i++)
a[i]--;
}
return true;
}
int main(){
int T,i;
for(cin>>T;T;T--){
cin>>n;
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
puts(Solve()?"TAK":"NIE");
}
return 0;
}
[POI2009]Slw的更多相关文章
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- BZOJ 1115: [POI2009]石子游戏Kam
1115: [POI2009]石子游戏Kam Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 883 Solved: 545[Submit][Stat ...
- BZOJ 1142: [POI2009]Tab
1142: [POI2009]Tab Time Limit: 40 Sec Memory Limit: 162 MBSubmit: 213 Solved: 80[Submit][Status][D ...
- 【BZOJ】【1115】【POI2009】石子游戏KAM
博弈论 这个题……一看就觉得很捉急啊= =肿么办? 灵光一现:差分一下~ 那么我们看一下差分以后,从第 i 堆中拿走 k 个石子变成了:a[i]-=k; a[i+1]+=k; 嗯这就转化成了阶梯博弈! ...
- bzoj 1133: [POI2009]Kon dp
1133: [POI2009]Kon Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 242 Solved: 81[Submit][Status][D ...
- bzoj 1138: [POI2009]Baj 最短回文路 dp优化
1138: [POI2009]Baj 最短回文路 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 161 Solved: 48[Submit][Sta ...
- BZOJ1135: [POI2009]Lyz
1135: [POI2009]Lyz Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 264 Solved: 106[Submit][Status] ...
- BZOJ1119: [POI2009]SLO
1119: [POI2009]SLO Time Limit: 30 Sec Memory Limit: 162 MBSubmit: 379 Solved: 181[Submit][Status] ...
- BZOJ1119[POI2009]SLO && BZOJ1697[Usaco2007 Feb]Cow Sorting牛排序
Problem J: [POI2009]SLO Time Limit: 30 Sec Memory Limit: 162 MBSubmit: 622 Solved: 302[Submit][Sta ...
随机推荐
- SecurCRT 远程linux 输入中文及 oracle 查询出文号问题
一. 首先确认你的linux是否设置了支持中文 cat /etc/sysconfig/i18n 其中: LANG 变量是 language 的简称, 这个变量时决定系统的默认语言, 即系统菜单, 程序 ...
- 第一百七十八节,jQuery-UI,知问前端--对话框 UI
jQuery-UI,知问前端--对话框 UI 学习要点: 1.开启多个 dialog 2.修改 dialog 样式 3.dialog()方法的属性 4.dialog()方法的事件 5.dialog 中 ...
- 编译包中的 Servlet
编译包中的类与编译其他的类没有什么大的不同.最简单的方法是让您的 java 文件保留完全限定路径,如上面提到的类,将被保留在 com.myorg 中.您还需要在 CLASSPATH 中添加该目录. 假 ...
- 视频输出hdtv和sdtv
SDTV和HDTV人们分别把它们叫标准清晰度数字电视和高清晰度数字电视,SDTV电视节目很早在欧洲就开始广播,如,DVB-S(卫星数字视频广播).DVB-C(有线数字视频广播).DVB-T(地面数字视 ...
- Servlet线程安全 Filter http://zwchen.iteye.com/blog/91088
概述 在探讨java线程安全前,让我们先简要介绍一下Java语言. 任何语言,如C++,C#,Java,它们都有相通之处,特别是语法,但如果有人问你,Java语言的核心是什么?类库?关键字?语法?似乎 ...
- php 佛祖保佑 永无bug
<pre name="code" class="java">/* _ooOoo_ o8888888o 88" . "88 (| ...
- Linux之(Git)服务之windows配置
设置你自己的昵称与email设置本地机器默认commit的昵称与Email. 请使用有意义的名字与email. git config --global user.name "syavingc ...
- SSH配置免秘钥登录
一. SSH 配置免秘要登录 配置SSH 免秘要登录,虽然就那么几步,但总是会出现点小问题,今天就做下记录.SSH 免秘钥就是让两台机器相互信任,不需要输入密码就能相互登录.配置相互信任就是把各自的 ...
- TP数据查询
[数据查询] select()是数据模型的一个指定方法,可以获得数据表的数据信息 返回一个二维数组信息,当前数据表的全部数据信息 $obj = D(); 创建对象 $obj -> select ...
- No image!使用border-color属性来制作小三角形
border属性在项目中使用的还是蛮频繁的.例如页签.按钮这样的. border简写属性是按照如下属性设置的: border:border-width/border-style/border-colo ...