首页 > 其他分享 >2990: 【C3】【递推】蟠桃记

2990: 【C3】【递推】蟠桃记

时间:2024-03-25 20:01:06浏览次数:12  
标签:悟空 一半多 2990 int ans C3 dt 桃子 递推

题目描述

喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了,其实你们是有所不知:悟空是在研究一个数学问题! 
什么问题?他研究的问题是蟠桃一共有多少个! 
不过,到最后,他还是没能解决这个难题,呵呵^-^ 
当时的情况是这样的: 
第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。聪明的你,请帮悟空算一下,他第一天开始吃的时候桃子一共有多少个呢?

输入

只有一个数字n(1<n<=30),表示只剩下一个桃子的时候是在第n天发生的。

输出

输出一行:第一天开始吃的时候桃子的总数

样例输入

30

样例输出

1610612734

Code:

#include<bits/stdc++.h>
using namespace std;
long long ans=1;
void dt(int a){
	if(a==0)return; 
	ans=(ans+1)*2;
	dt(a-1);
}
int main(){
	int a;
	cin>>a;
	dt(a-1);
	cout<<ans;
	return 0;
}

标签:悟空,一半多,2990,int,ans,C3,dt,桃子,递推
From: https://blog.csdn.net/yangrenrui/article/details/137023684

相关文章

  • 题解:AT_abc345_c [ABC345C] One Time Swap
    求过审题面翻译给定一个字符串$s$,求执行以下操作一次可以产生的字符串的个数设$N$为$s$的长度。选择一对整数$(i,j)$,使$1≤i<j≤N$,交换$s$的第$i$个和第$j$个字符可以证明,在这个问题的约束条件下,你总是可以得到它思路暴力做法我们可以......
  • AT_abc344_D-String Bags 题解
    明显是DP。然后就开始分析:状态:\(dp_{ij}=\)有\(i\)个袋子且匹配\(T\)的前缀的长度为\(j\)时所需的最少钱数。匹配\(T\)的前缀的长度为\(j\)就是前\(j\)个字符与\(T\)的前\(j\)个字符相同。相对简单。然后看转移。为了方便,咱不妨令\(|S|\)为字符串\(S......
  • CRC32爆破
    爆破工具https://github.com/theonlypwner/crc32文件足够小,一般以字节为单位使用脚本破解密码把每个小文件的crc输入,爆破即可寻找有意义的字符串拼接forum_91ctf_com_66......
  • lc336 回文对
    给定字符串数组words[n],寻找二元组(i,j)满足0<=i,j<n,并且i!=j,而且words[i]+words[j]是回文串,求满足条件的二元组的个数。1<=n<=5000;0<=words[i].length<=300;words[i]由小写英文字母组成。判断回文可以检查正序和逆序的哈希值是否相等来判断;在知道两字符串的长度和哈希的前提......
  • abc346D 生成仅一处相同01串的最小代价
    给定由0和1组成的字符串s[n],翻转第i个字符需要花费c[i],现在修改s,使得有且只有一个i满足s[i]==s[i+1],求最小花费。2<=n<=2e5;1<=c[i]<=1e9可以动态规划,记dp[i][j][k]表示前i个字符,以j结尾,存在k处相等的最小花费,对每个位置,枚举改与不改两种情况进行转移。#include<bits/stdc++.......
  • ABC346
    T1:AdjacentProduct模拟代码实现n=int(input())a=list(map(int,input().split()))foriinrange(n-1):print(a[i]*a[i+1])T2:Piano周期性代码实现#include<bits/stdc++.h>#definerep(i,n)for(inti=0;i<(n);++i)usingnamespacestd;int......
  • ABC346
    D枚举是哪一位相同,情况为\(00\)还是\(11\),然后用前缀和和后缀和求一下即可。\(pre_{j,i}\)表示第一位为\(j\),前\(i\)位的每两个相同的字符均不相同的情况,\(suf\)同理。codeE从后往前考虑。每一种颜色能染上这一行/列没有被染色的格子数,所以记录一下每一行,每一列......
  • C++U4- 04 - 新递推2
     排列 公式 单选 组合数 单选 递推练习[直线分割平面问题]   【参考代码】#include<iostream>usingnamespacestd;inta[1010];//a[i]:第i条直线最多能将这个圆分割成的部分数intmain(){//1、定义变量n,进行输入,数组a进行存储......
  • 线性递推公式的矩阵快速幂技巧
    快速幂顾名思义,快速幂是指快速求解幂运算的技巧。正常求\(a^n\)的值需要执行n次相乘操作,而快速幂能在\(log_2n\)时间复杂度内完成。以求\(a^{27}\)为例,27=1+2+8+16,根据乘法结合律可得\(a^{27}=a^1*a^2*a^8*a^{16}\),即只需要指数转化为二进制并且求得对应位是1的幂再累计......
  • ABC345E
    不得不说这道dp既考察对时间复杂度方面的优化,也要考虑对空间方面的优化。题意首先从暴力说起:首先既然让我们删除\(k\)个数,也就是说保留\(N-k\)个数。显然可以dfs枚举子集加剪枝优化(不过剪不剪的好像没啥区别),这样做是\(O(2^N)\)估计只能过样例。代码://tomxi#inc......