题目

神题!!只有\(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的更多相关文章

  1. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  2. BZOJ 1115: [POI2009]石子游戏Kam

    1115: [POI2009]石子游戏Kam Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 883  Solved: 545[Submit][Stat ...

  3. BZOJ 1142: [POI2009]Tab

    1142: [POI2009]Tab Time Limit: 40 Sec  Memory Limit: 162 MBSubmit: 213  Solved: 80[Submit][Status][D ...

  4. 【BZOJ】【1115】【POI2009】石子游戏KAM

    博弈论 这个题……一看就觉得很捉急啊= =肿么办? 灵光一现:差分一下~ 那么我们看一下差分以后,从第 i 堆中拿走 k 个石子变成了:a[i]-=k; a[i+1]+=k; 嗯这就转化成了阶梯博弈! ...

  5. bzoj 1133: [POI2009]Kon dp

    1133: [POI2009]Kon Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 242  Solved: 81[Submit][Status][D ...

  6. bzoj 1138: [POI2009]Baj 最短回文路 dp优化

    1138: [POI2009]Baj 最短回文路 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 161  Solved: 48[Submit][Sta ...

  7. BZOJ1135: [POI2009]Lyz

    1135: [POI2009]Lyz Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 264  Solved: 106[Submit][Status] ...

  8. BZOJ1119: [POI2009]SLO

    1119: [POI2009]SLO Time Limit: 30 Sec  Memory Limit: 162 MBSubmit: 379  Solved: 181[Submit][Status] ...

  9. 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 ...

随机推荐

  1. easyui常见属性

    4)onBeforeClose:当面板关闭前激活.                 5)onClose:当面板关闭后激活.                 6)onBeforeDestroy:当面板销 ...

  2. 学习lofter 让图片适应各个分辨率的方法

    只要图片的分辨率足够大,那么可以任意的width,不用担心失真 那么就可以根据屏幕的分辨率给图片相应的宽度 大分辨率浏览 小分辨率浏览 两个分辨率的图片地址是一样的,排除了换图的可能 大分辨率下的代码 ...

  3. 第一百九十二节,jQuery EasyUI 使用

    jQuery EasyUI 使用 学习要点: 1.引入必要的文件 2.加载 UI 组件的方式 3.使用 easyload.js 智能加载 4.Parser 解析器 本节课重点了解 EasyUI 的两种 ...

  4. js array filter pop push shift unshift方法

    JavaScript Array filter() 方法  JavaScript Array 对象 实例 返回数组 ages 中所有元素都大于 18 的元素: var ages = [32, 33,  ...

  5. js 数组容易弄混的那些方法

    js数组中 我们很多数组的方法都知道其中的含义 但是每一次用的都不是很顺手 下边我给大家写了一个小小的demo 来理解那些 近似”双胞胎“的东西 // splice方法 var a=[1,2,3,4, ...

  6. ios -WKWebView 高度 准确,留有空白的解决方案

    #import "ViewController.h" #import <WebKit/WebKit.h> @interface ViewController ()< ...

  7. windows 下XAMPP 使用Nginx替代apache作为服务器

    说实话, 在windows下使用Nginx 着实有点不太方便, 但因项目需求, 又不想换系统(虽然可以搞个虚拟机玩), 只能用Nginx了 好了, 不多说了. 开始... 首先我用的是xampp包(A ...

  8. linux 文件文件夹操作

    文件夹下查询哪些文件含有abc内容: find .|xargs grep -ri "abc"

  9. POJ 2479 Maximum sum(双向DP)

    Maximum sum Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 36100   Accepted: 11213 Des ...

  10. Qt 静态编译后的exe太大, 能够这样压缩.

    1. 下载PECompact 下载地址:http://download.csdn.net/download/sniper_bing/7669247 ,  不行大家就去baidu搜索下载就能够了这个是绿 ...