ZOJ 3182 Nine Interlinks

  题目大意:把一些带标号的环套到棍子上,标号为1的可以所以操作,标号i的根子在棍子上时,只有它标号比它小的换都不在棍子上,才能把标号为i+1的环,放在棍子上或者取下,问n个环全部放在棍子上需要的最少步骤?

  一个简单的递推题,可是我硬生生想复杂了还把队友带偏了,真是惭愧,还好源源的一发强大的思路,简简单单就过了,源源太强了,tql,orz。我们以4个环全放上棍子为例,我们要先把第3个环放上,然后又把前两个环都取下,然后才能放上第4个环,再又把前两个环都上。听起来有点复杂,我们想一下如果4个都已全放上,要把他们取下呢,那就是先把前两个取下,然后才能取下第4个环,然后再把前2个放上,最后把前3个全取下,虽然中间细节可能不同,但全放上和全取下的操作步骤是一样的。我之前就陷入了,觉得放第i个时,前i-1个环不一定都要存在,然后推来推去把自己推晕了,其实要把i-2个取下,第i-3个就得在,最终就是全在。递推式就是ans[i]=ans[i-1]*2ans[i-2]+1,ans[i]就是前i个环全放上,或者全取下的步骤。

#include<cstdio>
int ans[];
int main()
{
ans[]=,ans[]=;
for(int i=;i<=;i++)
ans[i]=ans[i-]+*ans[i-]+;
int t,n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
printf("%d\n",ans[n]);
}
return ;
}

推推推

HDU - 2842Chinese Rings

  题意一模一样,不同的是这题的数据量大,得把递推式用矩阵快速幂实现。

#include<cstdio>
#include<cstring>
#define ll long long
const ll mod=;
struct Node{
int r,c;
ll a[][];
Node(){
memset(a,,sizeof(a));
}
}A,T;
void init()
{
A.r=,A.c=;
memset(A.a,,sizeof(A.a));
A.a[][]=;A.a[][]=;A.a[][]=;
T.r=,T.c=;
memset(T.a,,sizeof(T.a));
T.a[][]=,T.a[][]=,T.a[][]=;
T.a[][]=T.a[][]=;
}
Node mul(Node n1,Node n2)
{
Node ans;
ans.r=n1.r,ans.c=n2.c;
for(int i=;i<n1.r;i++)
for(int j=;j<n2.c;j++)
for(int k=;k<n1.c;k++)
ans.a[i][j]=(ans.a[i][j]+(n1.a[i][k]*n2.a[k][j])%mod)%mod;
return ans;
}
Node pow(Node n,int b)
{
Node ans;
ans.r=n.r,ans.c=n.c;
for(int i=;i<;i++)
ans.a[i][i]=;
while(b)
{
if(b&)
ans=mul(ans,n);
n=mul(n,n);
b>>=;
}
return ans;
}
int main()
{
int x;
while(scanf("%d",&x)&&x)
{
init();
T=pow(T,x-);
A=mul(T,A);
printf("%lld\n",A.a[][]);
}
return ;
}

再推再推

  反思一下自己的状态,不能老熬夜了,身体是革命的本钱(主要是掉头发掉头发,我不想去主持非常勿扰)

  最后夸一波源源,临危不乱,机智出题,(还有昭哥的nb面积对称法求和,不过臭男人不需要夸)。

ZOJ 3182 HDU 2842递推的更多相关文章

  1. HDU 2842 (递推+矩阵快速幂)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2842 题目大意:棒子上套环.第i个环能拿下的条件是:第i-1个环在棒子上,前i-2个环不在棒子上.每个 ...

  2. HDOJ(HDU).2044-2049 递推专题

    HDOJ(HDU).2044-2049 递推专题 点我挑战题目 HDU.2044 题意分析 先考虑递推关系:从1到第n个格子的时候由多少种走法? 如图,当n为下方格子的时候,由于只能向右走,所以有2中 ...

  3. "红色病毒"问题 HDU 2065 递推+找循环节

    题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=2065 递推类题目, 可以考虑用数学方法来做, 但是明显也可以有递推思维来理解. 递推的话基本就是状态 ...

  4. Children’s Queue HDU 1297 递推+大数

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1297 题目大意: 有n个同学, 站成一排, 要求 女生最少是两个站在一起, 问有多少种排列方式. 题 ...

  5. hdu 2044-2050 递推专题

    总结一下做递推题的经验,一般都开成long long (别看项数少,随便就超了) 一般从第 i 项开始推其与前面项的关系(动态规划也是这样),而不是从第i 项推其与后面的项的关系. hdu2044:h ...

  6. hdu 2604 递推 矩阵快速幂

    HDU 2604 Queuing (递推+矩阵快速幂) 这位作者讲的不错,可以看看他的 #include <cstdio> #include <iostream> #inclu ...

  7. hdu 4055 递推

    转自:http://blog.csdn.net/shiqi_614/article/details/7983298 题意:由数字1到n组成的所有排列中,问满足题目所给的n-1个字符的排列有多少个,如果 ...

  8. HDU 3123-GCC(递推)

    GCC Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Subm ...

  9. Recursive sequence HDU - 5950 (递推 矩阵快速幂优化)

    题目链接 F[1] = a, F[2] = b, F[i] = 2 * F[i-2] + F[i-1] + i ^ 4, (i >= 3) 现在要求F[N] 类似于斐波那契数列的递推式子吧, 但 ...

随机推荐

  1. asp.net core-8. 配置的热更新

    在asp.net core 发布了以后,在修改配置文件以后不需要重新发布,要实现只需要修改@inject IOptions<WebApplication1.Class> ClassAcce ...

  2. hdu 6180贪心

    题意:有m个工程,一台机器在同一时间只能运行一个工程,告诉你每个工程的起始时间和结束时间,求出最少要多少个机器以及最小的机器总运行时间(机器开始了就不能停了,直到用完该台机器才停止). 题解:由于这里 ...

  3. LeetCode 1103. Distribute Candies to People

    1103. Distribute Candies to People(分糖果||) 链接:https://leetcode-cn.com/problems/distribute-candies-to- ...

  4. 踩坑记录-nuxt引入vuex报错store/index.js should export a method that returns a Vuex instance.

    错误 store/index.js代码如下: import Vue from 'vue'; import Vuex from 'vuex'; import city from './moudle/ci ...

  5. babel-plugin-transform-remove-strict-mode

    场景:在VUE项目中,需要用到横向滚动条,在引入MUI相关的组件后,模板中的代码如下 在控制台中报错 报错内容说的是在严格模式下(strict mode)类型错误 经过推测,觉得可能是mui.js中用 ...

  6. leetcode-62. Unique Paths · DP + vector

    题面 A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). ...

  7. 升级xcode11&ios13的坑

    Swift Packages 目前Pod跟SPM的兼容还没做好,配置好SPM后,Pod不能进行正常更新,先配置好Pod再集成SPM则没有问题 Pod以后的更新可能会解决这个问题,也会有越来越多的库支持 ...

  8. Vue粒子特效(vue-particles插件)

    ` npm install vue-particles --save-dev ` ` import VueParticles from 'vue-particles' Vue.use(VueParti ...

  9. UMI.js开发知识总结

    五分钟掌握最小知识体系 本文阅读时间大概为5分钟,但是能让你了解基于UMI和DVA构建项目的最小知识体系,你可以粗略的浏览一下本文所提到的知识,在后续的讲解中都会多次重复提起,保证学习效率.由于现在前 ...

  10. 初识cv

    验证码识别的一般套路: 灰度化.图像处理.二值化.选算法.训练.评估调整参数.预测,当然,我在这里二值化与处理的顺序换了一下,灵活处理哈 1 显示图片轮廓 img = cv2.Canny(img,25 ...