2016-2017 ACM Central Region of Russia Quarterfinal Programming Contest BHanoi tower
B Hanoi tower
It has become a good tradition to solve the “Hanoi tower” puzzle at programming contests in Rybinsk. We will review the rules briefly.

2*n/3-1移到C上,再从A移动一个到B上
再把C的n/3-1移到B上,现在所有上面都是1/3了
队友得到了一个神奇的公式2^(n-n/3-1)+2^(n/3-1)-1
但是经过提交是不行的,所以暴力打表找规律
#include <stdio.h>
using namespace std;
int num[],f,f1;
int move(int n,int a,int b)
{
//printf("Move disk %d from %c to %c\n",n,a,b);
num[a]--,num[b]++;
if(num[]==num[]&&num[]==num[])return ;
return ;
}
void hanoi(int n,int a,int b,int c)
{
if(f1)return;
if(n==)
{
if(move(n,a,c))
{
printf("%d\n",f);
f1=;
return;
}
}
else
{
hanoi(n-,a,c,b);
f++;
if(move(n,a,c))
{
printf("%d\n",f);
f1=;
return;
}
hanoi(n-,b,a,c);
}
}
int main()
{
int n;
for(int n=; n<=; n+=)
{
num[]=n,num[]=num[]=f=,f1=;
hanoi(n,,,);
}
return ;
}
很快就会发现偶数的猜想是对的,所以对奇数进行讨论,发现正好是*4+2
暴力代码,交的表,因为莫名RE
import java.math.*;
import java.util.*;
public class Main
{
public static void main(String args[])
{
Scanner cin=new Scanner(System.in);
BigInteger tmp=BigInteger.ZERO;
for(int n=3; n<=300; n+=3)
{
if(n/3%2==1)
{
System.out.println("\""+tmp.multiply(BigInteger.valueOf(4))
.add(BigInteger.valueOf(2))+"\",");
}
else
{
int x=n-n/3-1;
int y=n/3-1;
tmp=cal(x).add(cal(y)).subtract(BigInteger.ONE);
System.out.println("\""+tmp+"\",");
}
}
}
static BigInteger cal(int x)
{
BigInteger ans=BigInteger.ONE;
ans=ans.shiftLeft(x);
return ans;
}
}
2016-2017 ACM Central Region of Russia Quarterfinal Programming Contest BHanoi tower的更多相关文章
- 2016-2017 ACM Central Region of Russia Quarterfinal Programming Contest
2016-2017 ACM Central Region of Russia Quarterfinal Programming Contest A. Fried Fish 题意:有N条鱼,有一个同时可 ...
- 2018浙江省赛(ACM) The 15th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple
我是铁牌选手 这次比赛非常得爆炸,可以说体验极差,是这辈子自己最脑残的事情之一. 天时,地利,人和一样没有,而且自己早早地就想好了甩锅的套路. 按理说不开K就不会这么惨了啊,而且自己也是毒,不知道段错 ...
- 【转】2016/2017 Web 开发者路线图
链接:知乎 [点击查看大图] 原图来自LearnCodeAcademy最火的视频,learncode是YouTube上最火的Web开发教学频道,介绍包括HTML/CSS/JavaScript/Subl ...
- 2017 ACM/ICPC Asia Regional Shenyang Online spfa+最长路
transaction transaction transaction Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 132768/1 ...
- 训练报告 (2014-2015) 2014, Samara SAU ACM ICPC Quarterfinal Qualification Contest
Solved A Gym 100488A Yet Another Goat in the Garden B Gym 100488B Impossible to Guess Solved C Gym ...
- 2017 ACM ICPC Asia Regional - Daejeon
2017 ACM ICPC Asia Regional - Daejeon Problem A Broadcast Stations 题目描述:给出一棵树,每一个点有一个辐射距离\(p_i\)(待确定 ...
- 2017 ACM - ICPC Asia Ho Chi Minh City Regional Contest
2017 ACM - ICPC Asia Ho Chi Minh City Regional Contest A - Arranging Wine 题目描述:有\(R\)个红箱和\(W\)个白箱,将这 ...
- 2017 ACM/ICPC Shenyang Online SPFA+无向图最长路
transaction transaction transaction Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 132768/1 ...
- 2017 ACM/ICPC Asia Regional Qingdao Online
Apple Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submi ...
随机推荐
- document.all.item作用
1.document.all.myCheckBox和 document.all.item通过控件的名字定位控件,item()中是控件的名字例如:<input type="checkbo ...
- JavaScript_8_比较,条件语句
1. 比较运算符 ==(值相等,类型可以不等), ===(值和类型必须都相等), !=, >, <, >=, <= 2. 逻辑运算符 &&.||.! 3. 条件 ...
- ceisum_加载倾斜摄影模型
osgb转换为3Dtiles格式(使用工具转换) 然后加载到cesium中(加载代码见下,可以控制模型高度) var offset = function(height,tileset) { conso ...
- [论文理解] CornerNet: Detecting Objects as Paired Keypoints
[论文理解] CornerNet: Detecting Objects as Paired Keypoints 简介 首先这是一篇anchor free的文章,看了之后觉得方法挺好的,预测左上角和右下 ...
- k8s1.13.0二进制部署-ETCD集群(一)
Kubernetes集群中主要存在两种类型的节点:master.minion节点. Minion节点为运行 Docker容器的节点,负责和节点上运行的 Docker 进行交互,并且提供了代理功能.Ma ...
- Newtonsoft.Json初探
1.序列化 VehicleModelSearchingModel model = new VehicleModelSearchingModel() { brandId = , modelIds=&qu ...
- Bootstrap历练实例:下拉菜单插件方法的使用
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...
- Spring XML配置文件无法自动提示 eclipse中XML配置文件open with打开方式选择 XML Editor:注意它的编辑方式也是有两种的design和source
双击XML配置文件,如果打开方式不正确 则如下图: 都是灰色显示,不会有自动提示,也不会有颜色标注 右击XML配置文件,选择打开方式为XML Editor,则会有颜色标注 如果此时没有自动提示 则要手 ...
- 判断是否是同一人的方法——equals()?在Person类中提供一个比较的方法compare()返回boolean值?对象自己和自己比?
判断是否是同一人的方法——equals() 不能直接用per1==per2,这不是对象内容的比较而是存放对象地址的值得比较 在Person类中提供一个比较的方法compare()返回boolean值 ...
- 哈希表(Hash Table)/散列表(Key-Value)
目录 1. 哈希表的基本思想 2. 哈希表的相关基本概念 1.概念: 2.哈希表和哈希函数的标准定义: 1)冲突: 2)安全避免冲突的条件: 3)冲突不可能完全避免 4)影响冲突的因素 3. 哈希表的 ...