【题目大意】

有许多木块, 叠放时, 必须正着叠放, 如图1, 左边两块为合法叠放, 右边为不合法叠放.

图1

一个方块被称为稳定的, 当且仅当其放在最底层, 或其正下方有方块且下方的这个方块的四周都有方块. 叠放必须保证所有方块都稳定. 如图2, 左边3个叠放为合法叠放, 右边2个叠放为不合法叠放.

给定一个n,求能叠出的最高稳定建筑的高度

n<=

【解题】考虑每一种高度,至少需要多少个方块,我们计算出这些值,随便维护一下就好了呀qwq

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
#define FO(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout)
long long f,sum;
int n;
int main(){
FO(block);
scanf("%d",&n);
f=sum=;
if(sum>=n){
puts("");return ;
}
for(int i=;;i++){
f=f+(i-)*;
sum=sum+f;
if(sum>=n){
cout<<i-(sum!=n);
return ;
}
}
}

T2 hanoi

【题目大意】

汉诺塔游戏众所皆知, 现在制定一个如下新的汉诺塔游戏规则:

共ABC三柱, 起初所有的盘子按从上到下从小到大的顺序排列在A柱, 移动规则依然是只能移动最顶端的盘子, 且一个盘子只能放在更大的盘子上方. 现增加一个规则, 同一个盘子不能被连续移动两次. 现有序列{AB, AC, BA, BC, CA, CB}(AB即表示将A的最上方的盘子移到B)的任一排序, 每次移动必须是在该序列中找到最早的一个合法的操作, 并移动. .(全部移动到BC任意一个柱子上即视为游戏结束.)

第一行输入一个整数n(n<=20),第二行输入一个操作序列,形同AB, AC, BA, BC, CA, CB

求游戏结束时所用操作数

【解题】

由于第二行的输入只有 6!种 ,可以大胆猜测所有n对于这6!种操作序列的答案是有规律的,发现n=3的时候答案只有三种,那么我们对于操作序列暴力跑一下n=3的情况,判断这个操作序列的答案属于哪一种,直接计算即可

#include<queue>
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
#define FO(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout)
char mov[][];
typedef long long ll;
ll cnt;bool ok;int n;
int top[],qu[][];
void dfs(int lst,int dep){
if(dep>=cnt)return;
if(!top[]&&(!top[]||!top[])){
ok=;
return;
}
for(int i=;i<;i++){
int a=mov[i][]-'A',b=mov[i][]-'A';
if(!top[a]||a==lst)
continue;
int t=qu[a][top[a]];
if(top[b]&&t>qu[b][top[b]]) continue;
--top[a];
qu[b][++top[b]]=t;
dfs(b,dep+);
--top[b];
if(ok) return;
qu[a][++top[a]]=t;
break;
}
}
int luangao(){
ok=;
top[]=top[]=top[]=cnt=;
for(int i=;i>=;i--) qu[][++top[]]=i;
do{
dfs(-,);
++cnt;
if(cnt>) break;
}while(!ok);
int P=cnt-;
return P;
}
void c233(){
ll x=;
for(int i=;i<=n;i++) x=x*;
cout<<x-;
}
void pow2(){
ll x=;
for(int i=;i<=n;i++) x=x*;
cout<<x-;
}
void pow3(){
ll x=;
for(int i=;i<=n;i++) x=x*;
cout<<x;
}
int main(){
FO(hanoi);
//6*???*2^???
scanf("%d",&n);
for(int i=;i<;i++)scanf("%s",mov[i]);
int ans3=luangao();
if(ans3==)c233();
else if(ans3==)pow2();
else if(ans3==)pow3();
else cout<<"规律不对啊 日"; }

20160722noip模拟赛alexandrali的更多相关文章

  1. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  2. NOI模拟赛 Day1

    [考完试不想说话系列] 他们都会做呢QAQ 我毛线也不会呢QAQ 悲伤ING 考试问题: 1.感觉不是很清醒,有点困╯﹏╰ 2.为啥总不按照计划来!!! 3.脑洞在哪里 4.把模拟赛当作真正的比赛,紧 ...

  3. NOIP第7场模拟赛题解

    NOIP模拟赛第7场题解: 题解见:http://www.cqoi.net:2012/JudgeOnline/problemset.php?page=13 题号为2221-2224. 1.car 边界 ...

  4. contesthunter暑假NOIP模拟赛第一场题解

    contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...

  5. NOIP模拟赛 by hzwer

    2015年10月04日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...

  6. 小奇模拟赛9.13 by hzwer

    2015年9月13日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿(explo) [题目背景] 小奇要开采一些矿物,它驾驶着一台带有钻头(初始能力值w)的飞船,按既定路线依次飞 ...

  7. PKUSC 模拟赛 day1 下午总结

    下午到了机房之后又困又饿,还要被强行摁着看英文题,简直差评 第一题是NOIP模拟赛的原题,随便模拟就好啦 本人模拟功力太渣不小心打错了个变量,居然调了40多分钟QAQ #include<cstd ...

  8. [GRYZ]寒假模拟赛

    写在前面 这是首次广饶一中的OIERS自编自导,自出自做(zuo)的模拟赛. 鉴于水平气压比较低,机(wei)智(suo)的WMY/XYD/HYXZC就上网FQ下海找了不少水(fei)题,经过他们优( ...

  9. BZOJ2741: 【FOTILE模拟赛】L

    2741: [FOTILE模拟赛]L Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 1170  Solved: 303[Submit][Status] ...

随机推荐

  1. [老老实实学WCF] 第九篇 消息通信模式(上) 请求应答与单向

    老老实实学WCF 第九篇 消息通信模式(上) 请求应答与单向 通过前两篇的学习,我们了解了服务模型的一些特性如会话和实例化,今天我们来进一步学习服务模型的另一个重要特性:消息通信模式. WCF的服务端 ...

  2. 总结一下block的几种常用方法

    一.block的简单介绍 block相当于一个参数,有参数的名,有参数的值,有参数的使用,当使用block的时候,它又相当于一个函数,会回调函数体. 声明:void (^block)(void); 实 ...

  3. iOS 数据模型 的 一般设计

  4. 【学习笔记】【C语言】sizeof

    1.用来计算一个变量或者一个常量.一种数据类型所占的内存字节数. 2.sizeof一共有3种形式 1>sizeof( 变量\常量 ) sizeof(10); char c = 'a'; size ...

  5. 9款精美别致的CSS3菜单和按钮

    1.超具立体感的CSS3 3D菜单 菜单项带小图标 记得之前向大家分享过不少CSS3 3D菜单,比如CSS3 3D动画菜单 3D立方体菜单项和HTML5/CSS3自定义下拉框 3D卡片折叠动画,效果都 ...

  6. 9 款赏心悦目的 HTML5/CSS3 特效

    1.HTML5 WebGL实验,超酷的HTML5 Canvas波浪墙 这是一款HTML5 Canvas实验项目,也是波浪特效,只是这不是真正的水波,而是利用柱体高度的变化实现的波浪墙效果. 在线演示 ...

  7. [翻译.每月一译.每日一段]Exploring Fonts with DirectWrite and Modern C++

    Windows with C++ Exploring Fonts with DirectWrite and Modern C++ Kenny Kerr DirectWrite is an incred ...

  8. USB时钟为什么是48MHz

        在学习2440的USB配置时钟中,发现它的时钟需要设置成48MHz固定的,这个我就来兴趣了,为什么这里面USB的时钟一定要是48M呢?在网上找了众多文章,都是讲解如何配置2440的MPLL和U ...

  9. ▲教你如何轻易的做linux计划任务▲——小菜一碟

    一次性计划任务的安排: at :安排作业在某一时刻执行一次(一般都是用它) batch:安排作业在系统负载不重时执行一次 第一步: #service atd start  开启一次性计划任务   at ...

  10. MongoDB与php的配合使用 【windows版】

    通过学习了如何使用和部署MongoDB,尝试了一下如何将mongodb应用到php的程式中去. 1.预备工作 首先得准备好mongodb,并按照相关方法部署以及服务能正常运行中. 对于初学者,可以参考 ...