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 ...
随机推荐
- ABAP,Java和JavaScript的序列化,反序列化
ABAP 1. ABAP提供了一个工具类cl_proxy_xml_transform,通过它的两个方法abap_to_xml_xstring和xml_xstring_to_abap实现两种格式的互换. ...
- [CV笔记]图像特征提取三大法宝:HOG特征,LBP特征,Haar特征
(一)HOG特征 1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和 ...
- 两个有序数列,求中间值 Median of Two Sorted Arrays
原题: There are two sorted arrays nums1 and nums2 of size m and n respectively.Find the median of the ...
- Hbase 操作工具类
依赖jar <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-cli ...
- 使用jquery-validate校验表单
注意: 表单校验(validation校验[需要下载JQuery-validate插件,而且必须要在引入JQuery插件之后,再引入validate插件/*validate是建立在JQuery之上*/ ...
- mutt+msmtp做linux邮件客户端
mutt+msmtp做linux邮件客户端 1. 安装配置msmtp l 安装 wget https://sourceforge.net/projects/msmtp/files/msmtp/1.4 ...
- 遍历Map的两种方式
取出map集合中所有元素的方式一:keySet()方法. 可以将map集合中的键都取出存放到set集合中.对set集合进行迭代.迭代完成,再通过get方法对获取到的键进行值的获取. Set keySe ...
- lua 分割字符串
-- 参数:待分割的字符串,分割字符 -- 返回:子串表.(含有空串) function split(str, split_char) local sub_str_tab = {} while tru ...
- message() 信息提示
//样式部分 .message { position: fixed;top: -100px;width: 400px;left: 50%;margin-left: -200px;z-index: 10 ...
- Android读书笔记一
通过本章的学习真实体会到“移植”的概念:为特定设备定制Android的过程,但是移植的过程中开发最多的就是支持各种硬件设备的Linux驱动程序,本章对Android和Linux做了总体介绍.接着介绍了 ...