当前位置: 首页 > news >正文

【CF】Day73——Codeforces Round 887 (Div. 2) B (思维 + 模拟)

B. Fibonaccharsis

题目:

思路:

比C题有意思,但也么意思

对于这一题我们可以考虑最小的情况,即 f0 = 0,f1 =1 时,然后看看什么时候会超过 n 的最大值,我们可以发现 k > 30 时就炸了,所以如果 k > 30 就可以直接输出 0

然后我们讨论 k <= 30 的情况即可,我们发现如果正向考虑是很难的,所以我们反向考虑

我们既然知道最后一位,那我们尝试枚举前一位是什么,其范围一定在 0 ~ n 中,然后根据公式我们直接一个一个往前枚举即可,只要有某一位小于 0,那么就不行,否则最后一定满足 a[0] >= 0,此时我们取这个即可,时间复杂度最坏为 n*30 可以过 

代码:

#include <iostream>
#include <algorithm>
#include<cstring>
#include<cctype>
#include<string>
#include <set>
#include <vector>
#include <cmath>
#include <queue>
#include <unordered_set>
#include <map>
#include <unordered_map>
#include <stack>
#include <memory>
using namespace std;
#define int long long
#define yes cout << "Yes\n"
#define no cout << "No\n"void solve()
{int n, k;cin >> n >> k;if (k >= 30){cout << "0\n";return;}int cnt = 0;vector<int> f(31, 0);f[k] = n;int flag = 0;auto dfs = [&](auto self,int dep) ->void{if (dep < 0){return;}f[dep] = f[dep + 2] - f[dep + 1];if (f[dep] < 0){flag = 0;return;}self(self, dep - 1);};for (int i = 0; i <= n; i++){flag = 1;f[k - 1] = i;dfs(dfs, k - 2);cnt += flag;}cout << cnt << endl;
}signed main()
{cin.tie(0)->sync_with_stdio(false);int t = 1;cin >> t;while (t--){solve();}return 0;
}

http://www.xdnf.cn/news/775765.html

相关文章:

  • 【基于阿里云搭建数据仓库(离线)】DataWorks中删除节点
  • 【C语言预处理详解(上)】--预定义符号,#define定义常量,#define定义宏,带有副作用的宏参数,宏替换的规则,宏和函数的对比
  • 【MIMO稳定裕度】基于数据驱动的多输入多输出系统稳定裕度分析
  • 【HW系列】—安全设备介绍(开源蜜罐的安装以及使用指南)
  • Ubuntu20.04 LTS 升级Ubuntu22.04LTS 依赖错误 系统崩溃重装 Ubuntu22.04 LTS
  • Qt共享内存(QSharedMemory)使用指南
  • openai-java
  • 白银价格查询接口如何用Java进行调用?
  • 【nm】nm命令的使用:查看.so中的符号信息
  • ps自然饱和度调整
  • 江科大RTC实时时钟hal库实现
  • 模块二:C++核心能力进阶(5篇)第三篇:《异常安全:RAII与异常传播的最佳实践》
  • 性能测试的概念和场景设计
  • 【LLM】AI Agents vs. Agentic AI(概念应用挑战)
  • 污痕圣杯:阿瓦隆的陨落 整合包 离线版
  • vite构建工具
  • Invalid value type for attribute ‘factoryBeanObjectType‘: java.lang.String
  • 基于springboot的家政服务预约系统
  • LINUX62软链接;核心目录;错题:rpm -qa |grep<包名> 、rpm -ql<包名>;rm -r rm -rf;合并 cat
  • Ubuntu安装遇依赖包冲突解决方法
  • Flex 布局基础
  • svg与Three.js对比
  • 295. 数据流的中位数
  • DAY01:【ML 第三弹】基本概念和建模流程
  • GNURadio实现MIMO OFDM文件传输
  • 17.进程间通信(三)
  • ps可选颜色调整
  • 每日一道面试题---ArrayList的自动扩容机制(口述版本)
  • LLM模型量化从入门到精通:Shrink, Speed, Repeat
  • Java线程生命周期详解