题目链接

题目

题目描述

作为队伍的核心,forever97很受另外两个队友的尊敬。

Trote_w每天都要请forever97吃外卖,但很不幸的是宇宙中心forever97所在的学校周围只有3家forever97爱吃的外卖。

如果Trote_w给forever97买了别家的外卖,forever97就会大喊“我不吃我不吃”。

但是forever97又不喜欢连续三天吃一种外卖。

如果Trote_w哪天忘了这件事并且三天给他买了同一家外卖,那么forever97就会把Trote_w的头摁进手机屏幕里。

作为Trote_w的好朋友,你能告诉他连续请forever97吃n天饭,有多少不同的购买方法吗?

输入描述

多组样例

第一行一个整数T(1<=T<=20)代表测试样例数

接下来t行每行一个整数n,代表Trote_w要请forever97吃n天饭(1<=n<=100000)

输出描述

输出T个整数代表方案数,由于答案太大,你只需要输出mod 1e9+7 后的答案即可。

示例1

输入

2
3
500

输出

24
544984352

题解

知识点:线性dp。

显然是个递推的题,但转移方程稍微有点难想。

考虑 \(dp[i]\) 是第 \(i\) 天的方案数,则第 \(i\) 天可以由 \(i-2\) 天方案再买两次一样但和 \(i-2\) 天不一样的外卖或者 \(i-1\) 天再买一次与 \(i-1\) 天不一样的外卖,因此有转移方程:\(dp[i] = 2(dp[i-1]+dp[i-2])\) 。

时间复杂度 \(O(n)\)

空间复杂度 \(O(n)\)

代码

#include <bits/stdc++.h>
#define ll long long using namespace std; const int mod = 1e9 + 7;
int dp[100007]; bool solve() {
int n;
cin >> n;
dp[1] = 3;
dp[2] = 9;
for (int i = 3;i <= n;i++) dp[i] = 2LL * (dp[i - 1] + dp[i - 2]) % mod;
cout << dp[n] << '\n';
return true;
} ///i-2往后两天一样,但和i-2不一样,2*dp[i-2]
///i-1往后一天,和i-1不一样,2*dp[i-1]
int main() {
std::ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int t = 1;
cin >> t;
while (t--) {
if (!solve()) cout << -1 << '\n';
}
return 0;
}

NC20875 舔狗舔到最后一无所有的更多相关文章

  1. 舔狗【2019河北省大学生程序设计竞赛 J题】

    题目描述 > “舔狗舔狗,> 舔到最后,> 一无所有.” 有 n 只舔狗,每只舔狗的心中都有自己朝思暮想的一位. 每个人虽然受到了一万次拒绝,还毅然第一万零一次鼓起勇气. 作为一个不 ...

  2. 被女朋友三番五次拉黑后,我用 Python 写了个“舔狗”必备神器

    在一个阳光明媚的周日,我打开窗户呼吸了一口新鲜空气.阳光灿烂,岁月静好,又是一个约女朋友出去爬山吃饭看电影的好日子. 想到女朋友的大眼睛,我脸上不禁洋溢起了幸福的微笑.打开微信,给女朋友发出去一个美好 ...

  3. 数据改变认知——不知怎么选,用RFM模型看舔狗质量!

    假设我长得很漂亮,拥有众多追求者,但是初出闺房的我对这世界上的男人毫无认知,那么该如何选择呢?这真是一个问题! 妈妈说,愿意为我花钱的男人未必爱我,但不愿意为我花钱的男人必定不爱我,而后传授了一套RF ...

  4. 什么是LTV,舔狗的LTV可以乘以N吗?

    依旧注意一下,数据类文章比较敏感,舔狗只是代词,千万不要以为我是舔狗. 之前我们探讨过如何对自己的用户进行分层:不知怎么选,用RFM模型看舔狗质量! 也探讨了如何判断自己适不适合海后(主播)这个业务: ...

  5. CCPC-Winter Camp div2 day5

    DIV2 有部分div1的题会写 div1的大佬真的太强了 向他们学习 (好像和zqc大佬说过话了hhh,zqc大佬真的是一个超有意思的人啊,羡慕有妹子队友的zqc大佬) A: 你有一棵树,你想把它画 ...

  6. 2019河北省大学生程序设计竞赛(重现赛)J-舔狗 (拓扑排序)

    题目链接:https://ac.nowcoder.com/acm/contest/903/J 题意:给你 n 个舔狗和他喜欢的人,让你俩俩配对(只能和喜欢它的和它喜欢的),求剩下的单身狗数量. 思路: ...

  7. 【Python撩妹合集】微信聊天机器人,推送天气早报、睡前故事、精美图片分享

    福利时间,福利时间,福利时间 如果你还在为不知道怎么撩妹而烦恼,不知道怎么勾搭小仙女而困惑,又或者不知道怎么讨女朋友欢心而长吁短叹. 那么不要犹豫徘徊,往下看.接下来我会分享怎么使用 Python 实 ...

  8. 狗狗有关的知识tips

    <h5>tips1</h5>狗狗脑袋里最关心的事:一是食物,二是性.想教育狗,就要顺应狗狗的想法,而不是一味地以暴力相待.<h5>tips2</h5>” ...

  9. bbbbbeta

    about beta 写在开头:(小声bb,无任何专业知识) 好了正文开始了 = = beta冲刺对于来说可能是让我觉得非常有成就感的叭,相比于alpha,每天都能写代码的感觉真好鸭(认真脸)(虽然天 ...

  10. 王某人从0开始学习lorawan的笔记_0

    最近老板想做lorawan的项目,交给我了,我也应承下来了,但是!!!我TM连lorawan是啥子我都不知道啊啊啊啊啊! 真希望我女朋友可以看穿我的倔强,给我1千万,让我专心当舔狗,等等,我的女朋友? ...

随机推荐

  1. chorm如何静音特定网页

    如图所示,右键想要静音的网页标签,选择将这个网页静音即可

  2. 他凌晨1:30给我开源的游戏加了UI|模拟龙生,挂机冒险

    一.前言 新年就要到了,祝大家新的一年: 龙行龘龘, 前程朤朤! 白泽花了点时间,用 800 行 Go 代码写了一个控制台的小游戏:<模拟龙生>,在游戏中你将模拟一条新生的巨龙,开始无尽的 ...

  3. Laravel - 创建项目

    1,创建目录 ( 路径不要带有中文 ) 2,进入目录,执行下列命令 composer create-project --prefer-dist laravel/laravel project

  4. 07 - HTTP

    HTTP 强烈推荐学习:HTTP | MDN 一 .基础概念 请求和响应报文 客户端发送一个请求报文给服务器,服务器根据请求报文中的信息进行处理,并将处理结果放入响应报文中返回给客户端. 请求报文结构 ...

  5. Python Code_02

    author : 写bug的盼盼 development time : 2021/8/27 19:59 变量定义 name = '阿哈' print(name) print('标识',id(name) ...

  6. [转帖]Linux中的lstopo命令(详细指南)

    https://juejin.cn/post/7117544110856077343 目录: 简介 语法 命令 总结 参考文献 介绍 lstopo命令是用来显示系统的拓扑结构的.它提供了关于NUMA内 ...

  7. [转帖] 记一次使用gdb诊断gc问题全过程

    记一次使用gdb诊断gc问题全过程   原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介# 上次解决了GC长耗时问题后,系统果然平稳了许多,这是之前的文章<G ...

  8. [转帖]xfs_repair命令详解

    https://bbs.qunyingkeji.com/2052/ 1.现状 目前网上出现大量的主机输入输出错误,原因是由于主机文件系统损坏.一线人员大部分采用的是umont 和 mount的方式恢复 ...

  9. [转帖]/etc/profile 和 /etc/profile.d/ 的区别

    https://my.oschina.net/calmsnow/blog/2989570   /etc/profile 是文件, /etc/profile.d/ 是目录,用在设置环境变量方面,/etc ...

  10. antv-x6 使用及总结

    1 简介 AntV是一个数据可视化(https://so.csdn.net/so/search?q=数据可视化&spm=1001.2101.3001.7020 )的工具(https://ant ...